From 8daa6db81f0233c9ebc6c8db8ed1e58d6366316d Mon Sep 17 00:00:00 2001 From: Shreya Malviya Date: Thu, 14 Jul 2022 14:18:38 +0530 Subject: [PATCH] Island: Modify all telemetry processing functions to accept an extra agent configuration argument --- .../cc/services/telemetry/processing/aws_info.py | 2 +- .../monkey_island/cc/services/telemetry/processing/exploit.py | 2 +- .../cc/services/telemetry/processing/post_breach.py | 2 +- .../cc/services/telemetry/processing/processing.py | 4 +++- monkey/monkey_island/cc/services/telemetry/processing/scan.py | 2 +- .../monkey_island/cc/services/telemetry/processing/state.py | 3 ++- .../monkey_island/cc/services/telemetry/processing/tunnel.py | 2 +- 7 files changed, 10 insertions(+), 7 deletions(-) diff --git a/monkey/monkey_island/cc/services/telemetry/processing/aws_info.py b/monkey/monkey_island/cc/services/telemetry/processing/aws_info.py index 020f236f0..1821b9e15 100644 --- a/monkey/monkey_island/cc/services/telemetry/processing/aws_info.py +++ b/monkey/monkey_island/cc/services/telemetry/processing/aws_info.py @@ -5,7 +5,7 @@ from monkey_island.cc.models.monkey import Monkey logger = logging.getLogger(__name__) -def process_aws_telemetry(telemetry_json): +def process_aws_telemetry(telemetry_json, _): relevant_monkey = Monkey.get_single_monkey_by_guid(telemetry_json["monkey_guid"]) if "instance_id" in telemetry_json["data"]: diff --git a/monkey/monkey_island/cc/services/telemetry/processing/exploit.py b/monkey/monkey_island/cc/services/telemetry/processing/exploit.py index dc5b2e638..cc6bd2c03 100644 --- a/monkey/monkey_island/cc/services/telemetry/processing/exploit.py +++ b/monkey/monkey_island/cc/services/telemetry/processing/exploit.py @@ -14,7 +14,7 @@ from monkey_island.cc.services.telemetry.zero_trust_checks.machine_exploited imp ) -def process_exploit_telemetry(telemetry_json): +def process_exploit_telemetry(telemetry_json, _): encrypt_exploit_creds(telemetry_json) edge = get_edge_by_scan_or_exploit_telemetry(telemetry_json) update_network_with_exploit(edge, telemetry_json) diff --git a/monkey/monkey_island/cc/services/telemetry/processing/post_breach.py b/monkey/monkey_island/cc/services/telemetry/processing/post_breach.py index e4f83947e..401589027 100644 --- a/monkey/monkey_island/cc/services/telemetry/processing/post_breach.py +++ b/monkey/monkey_island/cc/services/telemetry/processing/post_breach.py @@ -32,7 +32,7 @@ POST_BREACH_TELEMETRY_PROCESSING_FUNCS = { } -def process_post_breach_telemetry(telemetry_json): +def process_post_breach_telemetry(telemetry_json, _): def convert_telem_data_to_list(data): modified_data = [data] if type(data["result"][0]) is list: # multiple results in one pba diff --git a/monkey/monkey_island/cc/services/telemetry/processing/processing.py b/monkey/monkey_island/cc/services/telemetry/processing/processing.py index a1db59b45..ee2d2d065 100644 --- a/monkey/monkey_island/cc/services/telemetry/processing/processing.py +++ b/monkey/monkey_island/cc/services/telemetry/processing/processing.py @@ -34,7 +34,9 @@ def process_telemetry(telemetry_json, agent_configuration: AgentConfiguration): try: telem_category = telemetry_json.get("telem_category") if telem_category in TELEMETRY_CATEGORY_TO_PROCESSING_FUNC: - TELEMETRY_CATEGORY_TO_PROCESSING_FUNC[telem_category](telemetry_json) + TELEMETRY_CATEGORY_TO_PROCESSING_FUNC[telem_category]( + telemetry_json, agent_configuration + ) else: logger.info("Got unknown type of telemetry: %s" % telem_category) diff --git a/monkey/monkey_island/cc/services/telemetry/processing/scan.py b/monkey/monkey_island/cc/services/telemetry/processing/scan.py index 54379dc45..2a29b7762 100644 --- a/monkey/monkey_island/cc/services/telemetry/processing/scan.py +++ b/monkey/monkey_island/cc/services/telemetry/processing/scan.py @@ -14,7 +14,7 @@ from monkey_island.cc.services.telemetry.zero_trust_checks.segmentation import ( ) -def process_scan_telemetry(telemetry_json): +def process_scan_telemetry(telemetry_json, _): if not _host_responded(telemetry_json["data"]["machine"]): return diff --git a/monkey/monkey_island/cc/services/telemetry/processing/state.py b/monkey/monkey_island/cc/services/telemetry/processing/state.py index 87e7797c2..f0146fce7 100644 --- a/monkey/monkey_island/cc/services/telemetry/processing/state.py +++ b/monkey/monkey_island/cc/services/telemetry/processing/state.py @@ -1,5 +1,6 @@ import logging +from common.configuration import AgentConfiguration from monkey_island.cc.models import Monkey from monkey_island.cc.services.node import NodeService from monkey_island.cc.services.telemetry.zero_trust_checks.segmentation import ( @@ -9,7 +10,7 @@ from monkey_island.cc.services.telemetry.zero_trust_checks.segmentation import ( logger = logging.getLogger(__name__) -def process_state_telemetry(telemetry_json): +def process_state_telemetry(telemetry_json, agent_configuration: AgentConfiguration): monkey = NodeService.get_monkey_by_guid(telemetry_json["monkey_guid"]) NodeService.add_communication_info(monkey, telemetry_json["command_control_channel"]) if telemetry_json["data"]["done"]: diff --git a/monkey/monkey_island/cc/services/telemetry/processing/tunnel.py b/monkey/monkey_island/cc/services/telemetry/processing/tunnel.py index 4464eb82a..6bd1fd711 100644 --- a/monkey/monkey_island/cc/services/telemetry/processing/tunnel.py +++ b/monkey/monkey_island/cc/services/telemetry/processing/tunnel.py @@ -5,7 +5,7 @@ from monkey_island.cc.services.telemetry.zero_trust_checks.tunneling import ( ) -def process_tunnel_telemetry(telemetry_json): +def process_tunnel_telemetry(telemetry_json, _): check_tunneling_violation(telemetry_json) monkey_id = NodeService.get_monkey_by_guid(telemetry_json["monkey_guid"])["_id"] if telemetry_json["data"]["proxy"] is not None: