diff --git a/src/primaite/simulator/system/services/red_services/data_manipulation_bot.py b/src/primaite/simulator/system/services/red_services/data_manipulation_bot.py index 17b89386..6db9e1aa 100644 --- a/src/primaite/simulator/system/services/red_services/data_manipulation_bot.py +++ b/src/primaite/simulator/system/services/red_services/data_manipulation_bot.py @@ -128,16 +128,16 @@ class DataManipulationBot(DatabaseClient): # perform the attack if not self.connected: self.connect() - if self.connected: - self.query(self.payload) - self.sys_log.info(f"{self.name} payload delivered: {self.payload}") - attack_successful = True - if attack_successful: - self.sys_log.info(f"{self.name}: Data manipulation successful") - self.attack_stage = DataManipulationAttackStage.COMPLETE - else: - self.sys_log.info(f"{self.name}: Data manipulation failed") - self.attack_stage = DataManipulationAttackStage.FAILED + if self.connected: + self.query(self.payload) + self.sys_log.info(f"{self.name} payload delivered: {self.payload}") + attack_successful = True + if attack_successful: + self.sys_log.info(f"{self.name}: Data manipulation successful") + self.attack_stage = DataManipulationAttackStage.COMPLETE + else: + self.sys_log.info(f"{self.name}: Data manipulation failed") + self.attack_stage = DataManipulationAttackStage.FAILED def run(self): """ diff --git a/tests/unit_tests/_primaite/_simulator/_system/_services/_red_services/test_data_manipulation_bot.py b/tests/unit_tests/_primaite/_simulator/_system/_services/_red_services/test_data_manipulation_bot.py index 8a78beae..936f7c5c 100644 --- a/tests/unit_tests/_primaite/_simulator/_system/_services/_red_services/test_data_manipulation_bot.py +++ b/tests/unit_tests/_primaite/_simulator/_system/_services/_red_services/test_data_manipulation_bot.py @@ -4,6 +4,7 @@ from primaite.simulator.network.hardware.base import Node from primaite.simulator.network.networks import arcd_uc2_network from primaite.simulator.network.transmission.network_layer import IPProtocol from primaite.simulator.network.transmission.transport_layer import Port +from primaite.simulator.system.applications.application import ApplicationOperatingState from primaite.simulator.system.services.red_services.data_manipulation_bot import ( DataManipulationAttackStage, DataManipulationBot, @@ -64,6 +65,7 @@ def test_dm_bot_perform_data_manipulation_no_success(dm_bot): def test_dm_bot_perform_data_manipulation_success(dm_bot): dm_bot.attack_stage = DataManipulationAttackStage.PORT_SCAN + dm_bot.operating_state = ApplicationOperatingState.RUNNING dm_bot._perform_data_manipulation(p_of_success=1.0)