Skip to content

Commit

Permalink
[external-import] Break loop if run and terminate is enabled (#762)
Browse files Browse the repository at this point in the history
  • Loading branch information
rlynch-ironnet committed Aug 18, 2022
1 parent b2d77e9 commit 1209140
Show file tree
Hide file tree
Showing 64 changed files with 368 additions and 158 deletions.
3 changes: 2 additions & 1 deletion external-import/alienvault/src/alienvault/builder.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
from typing import Callable, List, Mapping, NamedTuple, Optional, Set

import stix2
from stix2.v21 import _DomainObject, _Observable # type: ignore

from alienvault.models import Pulse, PulseIndicator
from alienvault.utils import (
OBSERVATION_FACTORY_CRYPTOCURRENCY_WALLET,
Expand Down Expand Up @@ -41,7 +43,6 @@
create_vulnerability_external_reference,
get_tlp_string_marking_definition,
)
from stix2.v21 import _DomainObject, _Observable # type: ignore

log = logging.getLogger(__name__)

Expand Down
3 changes: 2 additions & 1 deletion external-import/alienvault/src/alienvault/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,11 @@
from datetime import datetime
from typing import List

from alienvault.models import Pulse
from OTXv2 import OTXv2 # type: ignore
from pydantic import parse_obj_as

from alienvault.models import Pulse


class AlienVaultClient:
"""AlienVault client."""
Expand Down
19 changes: 13 additions & 6 deletions external-import/alienvault/src/alienvault/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,17 @@

import datetime
import os
import sys
import time
from typing import Any, Dict, List, Mapping, Optional

import stix2
import yaml
from pycti.connector.opencti_connector_helper import ( # type: ignore
OpenCTIConnectorHelper,
get_config_variable,
)

from alienvault.client import AlienVaultClient
from alienvault.importer import PulseImporter, PulseImporterConfig
from alienvault.utils import (
Expand All @@ -16,10 +22,6 @@
get_tlp_string_marking_definition,
)
from alienvault.utils.constants import DEFAULT_TLP_MARKING_DEFINITION
from pycti.connector.opencti_connector_helper import ( # type: ignore
OpenCTIConnectorHelper,
get_config_variable,
)


class AlienVault:
Expand Down Expand Up @@ -263,10 +265,15 @@ def run(self):
"Connector will not run, next run in: {0} seconds", next_run
)

self._sleep(delay_sec=run_interval)
except (KeyboardInterrupt, SystemExit):
self._info("Connector stop")
exit(0)
sys.exit(0)

if self.helper.connect_run_and_terminate:
self.helper.log_info("Connector stop")
sys.exit(0)

self._sleep(delay_sec=run_interval)

@classmethod
def _sleep(cls, delay_sec: Optional[int] = None) -> None:
Expand Down
9 changes: 5 additions & 4 deletions external-import/alienvault/src/alienvault/importer.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,16 @@
from typing import Any, Dict, List, Mapping, NamedTuple, Optional, Set

import stix2
from alienvault.builder import PulseBundleBuilder, PulseBundleBuilderConfig
from alienvault.client import AlienVaultClient
from alienvault.models import Pulse
from alienvault.utils import iso_datetime_str_to_datetime
from pycti.connector.opencti_connector_helper import (
OpenCTIConnectorHelper,
) # type: ignore
from stix2.exceptions import STIXError # type: ignore

from alienvault.builder import PulseBundleBuilder, PulseBundleBuilderConfig
from alienvault.client import AlienVaultClient
from alienvault.models import Pulse
from alienvault.utils import iso_datetime_str_to_datetime


class PulseImporterConfig(NamedTuple):
"""Pulse importer configuration."""
Expand Down
16 changes: 11 additions & 5 deletions external-import/amitt/src/amitt.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import os
import sys
import time
import urllib.request
from datetime import datetime
Expand Down Expand Up @@ -116,21 +117,26 @@ def run(self):
+ str(round(self.get_interval() / 60 / 60 / 24, 2))
+ " days"
)
time.sleep(60)
else:
new_interval = self.get_interval() - (timestamp - last_run)
self.helper.log_info(
"Connector will not run, next run in: "
+ str(round(new_interval / 60 / 60 / 24, 2))
+ " days"
)
time.sleep(60)

except (KeyboardInterrupt, SystemExit):
self.helper.log_info("Connector stop")
exit(0)
sys.exit(0)

except Exception as e:
self.helper.log_error(str(e))
time.sleep(60)

if self.helper.connect_run_and_terminate:
self.helper.log_info("Connector stop")
sys.exit(0)

time.sleep(60)


if __name__ == "__main__":
Expand All @@ -140,4 +146,4 @@ def run(self):
except Exception as e:
print(e)
time.sleep(10)
exit(0)
sys.exit(0)
8 changes: 7 additions & 1 deletion external-import/cape/src/main.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
import os
import sys
import time
from datetime import datetime

import yaml
from pycti import OpenCTIConnectorHelper, get_config_variable

from cape.cape import cuckoo, cuckooReport
from cape.telemetry import openCTIInterface
from pycti import OpenCTIConnectorHelper, get_config_variable


class capeConnector:
Expand Down Expand Up @@ -179,6 +181,10 @@ def run(self):
f"Run Complete. Sleeping until next run in " f"{self.interval} Minutes"
)

if self.helper.connect_run_and_terminate:
self.helper.log_info("Connector stop")
sys.exit(0)

time.sleep(self.get_interval())


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -148,9 +148,11 @@ def process_data(self):
+ str(round(new_interval / 60 / 60 / 24, 2))
+ " days"
)

except (KeyboardInterrupt, SystemExit):
self.helper.log_info("Connector stop")
sys.exit(0)

except Exception as e:
self.helper.log_error(str(e))

Expand Down
21 changes: 17 additions & 4 deletions external-import/crowdstrike/src/crowdstrike/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,16 @@
"""OpenCTI CrowdStrike connector core module."""

import os
import sys
import time
from typing import Any, Dict, List, Mapping, Optional

import stix2
import yaml
from crowdstrike_client.client import CrowdStrikeClient
from pycti import OpenCTIConnectorHelper # type: ignore
from pycti.connector.opencti_connector_helper import get_config_variable # type: ignore

from crowdstrike.actor.importer import ActorImporter
from crowdstrike.importer import BaseImporter
from crowdstrike.indicator.importer import IndicatorImporter, IndicatorImporterConfig
Expand All @@ -20,9 +25,6 @@
timestamp_to_datetime,
)
from crowdstrike.utils.constants import DEFAULT_TLP_MARKING_DEFINITION
from crowdstrike_client.client import CrowdStrikeClient
from pycti import OpenCTIConnectorHelper # type: ignore
from pycti.connector.opencti_connector_helper import get_config_variable # type: ignore


class CrowdStrike:
Expand Down Expand Up @@ -381,12 +383,23 @@ def run(self):
"Connector will not run, next run in: {0} seconds", next_run
)

if self.helper.connect_run_and_terminate:
self.helper.log_info("Connector stop")
sys.exit(0)

self._sleep(delay_sec=run_interval)

except (KeyboardInterrupt, SystemExit):
self._info("CrowdStrike connector stopping...")
exit(0)
sys.exit(0)

except Exception as e: # noqa: B902
self._error("CrowdStrike connector internal error: {0}", str(e))

if self.helper.connect_run_and_terminate:
self.helper.log_info("Connector stop")
sys.exit(0)

self._sleep()

def _initiate_work(self, timestamp: int) -> str:
Expand Down
16 changes: 11 additions & 5 deletions external-import/cryptolaemus/src/cryptolaemus.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import os
import sys
import time
from datetime import datetime

Expand Down Expand Up @@ -234,21 +235,26 @@ def run(self):
+ str(round(self.get_interval() / 60 / 60 / 24, 2))
+ " days"
)
time.sleep(60)
else:
new_interval = self.get_interval() - (timestamp - last_run)
self.helper.log_info(
"Connector will not run, next run in: "
+ str(round(new_interval / 60 / 60 / 24, 2))
+ " days"
)
time.sleep(60)

except (KeyboardInterrupt, SystemExit):
self.helper.log_info("Connector stop")
exit(0)
sys.exit(0)

except Exception as e:
self.helper.log_error(str(e))
time.sleep(60)

if self.helper.connect_run_and_terminate:
self.helper.log_info("Connector stop")
sys.exit(0)

time.sleep(60)


if __name__ == "__main__":
Expand All @@ -258,4 +264,4 @@ def run(self):
except Exception as e:
print(e)
time.sleep(10)
exit(0)
sys.exit(0)
8 changes: 7 additions & 1 deletion external-import/cuckoo/src/main.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
import os
import sys
import time
from datetime import datetime

import yaml
from pycti import OpenCTIConnectorHelper, get_config_variable

from cuckoo.cuckoo import cuckoo
from cuckoo.telemetry import openCTIInterface
from pycti import OpenCTIConnectorHelper, get_config_variable


class cuckooConnector:
Expand Down Expand Up @@ -181,6 +183,10 @@ def run(self):
f"Run Complete. Sleeping until next run in " f"{self.interval} Minutes"
)

if self.helper.connect_run_and_terminate:
self.helper.log_info("Connector stop")
sys.exit(0)

time.sleep(self.get_interval())


Expand Down
10 changes: 7 additions & 3 deletions external-import/cve/src/cve.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,17 @@
import os
import shutil
import ssl
import sys
import time
import urllib.request
from datetime import datetime

import certifi
import yaml
from cvetostix2 import convert
from pycti import OpenCTIConnectorHelper, get_config_variable

from cvetostix2 import convert


class Cve:
def __init__(self):
Expand Down Expand Up @@ -150,9 +152,11 @@ def process_data(self):
+ str(round(new_interval / 60 / 60 / 24, 2))
+ " days"
)

except (KeyboardInterrupt, SystemExit):
self.helper.log_info("Connector stop")
exit(0)
sys.exit(0)

except Exception as e:
self.helper.log_error(str(e))

Expand All @@ -174,4 +178,4 @@ def run(self):
except Exception as e:
print(e)
time.sleep(10)
exit(0)
sys.exit(0)
15 changes: 10 additions & 5 deletions external-import/cybercrime-tracker/src/cybercrime-tracker.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import datetime
import os
import sys
import time
from urllib.parse import quote, urlparse

Expand Down Expand Up @@ -366,7 +367,6 @@ def run(self):
str(round(self.interval, 2))
)
)
time.sleep(60)
else:
new_interval = self.interval - (timestamp - last_run)
self.helper.log_info(
Expand All @@ -375,14 +375,19 @@ def run(self):
str(round(new_interval, 2))
)
)
time.sleep(60)

except (KeyboardInterrupt, SystemExit):
self.helper.log_info("Connector stop")
exit(0)
sys.exit(0)

except Exception as e:
self.helper.log_error(str(e))
time.sleep(60)

if self.helper.connect_run_and_terminate:
self.helper.log_info("Connector stop")
sys.exit(0)

time.sleep(60)


if __name__ == "__main__":
Expand All @@ -392,4 +397,4 @@ def run(self):
except Exception as e:
print(e)
time.sleep(10)
exit(0)
sys.exit(0)
Loading

0 comments on commit 1209140

Please sign in to comment.