diff --git a/monkey/monkey_island/cc/environment/aws.py b/monkey/monkey_island/cc/environment/aws.py index 3d3544a32..797a395aa 100644 --- a/monkey/monkey_island/cc/environment/aws.py +++ b/monkey/monkey_island/cc/environment/aws.py @@ -9,6 +9,7 @@ __author__ = 'itay.mizeretz' class AwsEnvironment(Environment): def __init__(self): super(AwsEnvironment, self).__init__() + # Not suppressing error here on purpose. This is critical if we're on AWS env. self.aws_info = AwsInstance() self._instance_id = self._get_instance_id() self.region = self._get_region() diff --git a/monkey/monkey_island/cc/services/remote_run_aws.py b/monkey/monkey_island/cc/services/remote_run_aws.py index 78df00721..77b6d95ea 100644 --- a/monkey/monkey_island/cc/services/remote_run_aws.py +++ b/monkey/monkey_island/cc/services/remote_run_aws.py @@ -1,3 +1,5 @@ +import logging + from monkey_island.cc.services.config import ConfigService from common.cloud.aws_instance import AwsInstance from common.cloud.aws_service import AwsService @@ -7,6 +9,8 @@ from common.cmd.cmd_runner import CmdRunner __author__ = "itay.mizeretz" +logger = logging.getLogger(__name__) + class RemoteRunAwsService: aws_instance = None @@ -23,7 +27,15 @@ class RemoteRunAwsService: :return: None """ if RemoteRunAwsService.aws_instance is None: + RemoteRunAwsService.try_init_aws_instance() + + @staticmethod + def try_init_aws_instance(): + # noinspection PyBroadException + try: RemoteRunAwsService.aws_instance = AwsInstance() + except Exception: + logger.error("Failed init aws instance. Exception info: ", exc_info=True) @staticmethod def run_aws_monkeys(instances, island_ip): @@ -119,7 +131,7 @@ class RemoteRunAwsService: return r"[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {" \ r"$true}; (New-Object System.Net.WebClient).DownloadFile('https://" + island_ip + \ r":5000/api/monkey/download/monkey-windows-" + bit_text + r".exe','.\\monkey.exe'); " \ - r";Start-Process -FilePath '.\\monkey.exe' -ArgumentList 'm0nk3y -s " + island_ip + r":5000'; " + r";Start-Process -FilePath '.\\monkey.exe' -ArgumentList 'm0nk3y -s " + island_ip + r":5000'; " @staticmethod def _get_run_monkey_cmd_line(is_linux, is_64bit, island_ip): diff --git a/monkey/monkey_island/cc/services/reporting/aws_exporter.py b/monkey/monkey_island/cc/services/reporting/aws_exporter.py index 84940df56..b01f349d4 100644 --- a/monkey/monkey_island/cc/services/reporting/aws_exporter.py +++ b/monkey/monkey_island/cc/services/reporting/aws_exporter.py @@ -24,6 +24,7 @@ class AWSExporter(Exporter): logger.info('No issues were found by the monkey, no need to send anything') return True + # Not suppressing error here on purpose. current_aws_region = AwsInstance().get_region() for machine in issues_list: @@ -70,6 +71,7 @@ class AWSExporter(Exporter): configured_product_arn = load_server_configuration_from_file()['aws'].get('sec_hub_product_arn', '') product_arn = 'arn:aws:securityhub:{region}:{arn}'.format(region=region, arn=configured_product_arn) instance_arn = 'arn:aws:ec2:' + str(region) + ':instance:{instance_id}' + # Not suppressing error here on purpose. account_id = AwsInstance().get_account_id() logger.debug("aws account id acquired: {}".format(account_id)) diff --git a/monkey/monkey_island/cc/services/reporting/exporter_init.py b/monkey/monkey_island/cc/services/reporting/exporter_init.py index de478bfe7..f64d4b4aa 100644 --- a/monkey/monkey_island/cc/services/reporting/exporter_init.py +++ b/monkey/monkey_island/cc/services/reporting/exporter_init.py @@ -22,5 +22,5 @@ def try_add_aws_exporter_to_manager(manager): RemoteRunAwsService.init() if RemoteRunAwsService.is_running_on_aws() and ('aws' == env.get_deployment()): manager.add_exporter_to_list(AWSExporter) - except Exception as err: - logger.error("Failed adding aws exporter to manager.", exc_info=True) + except Exception: + logger.error("Failed adding aws exporter to manager. Exception info:", exc_info=True)