diff --git a/README.md b/README.md index da71d6c2..a93eb3a1 100755 --- a/README.md +++ b/README.md @@ -241,11 +241,11 @@ In the current state, we support a single scenario: Data exfiltration to a remot For the data exfiltration we support 3 variants. The full scenario contains 5 clients (where the attacker can start) and 5 servers where the data that is supposed to be exfiltrated can be located. *scenario1_small* is a variant with a single client (the attacker always starts there) and all 5 servers. *scenario1_tiny* contains only a single server with data. The tiny scenario is trivial and intended only for debugging purposes. - +
Scenario 1Scenario 1 - smallScenario 1 -tiny
Scenario 1 - Data exfiltrationScenario 1 - smallScenario 1 - tiny
Scenario 1 - Data exfiltrationScenario 1 - smallScenario 1 - tiny
3-nets scenario
- Scenario 1 - Data exfiltration + Scenario 1 - Data exfiltration
diff --git a/readme_images/scenario 1_small.png b/docs/figures/scenarios/scenario 1_small.png similarity index 100% rename from readme_images/scenario 1_small.png rename to docs/figures/scenarios/scenario 1_small.png diff --git a/readme_images/scenario_1.png b/docs/figures/scenarios/scenario_1.png similarity index 100% rename from readme_images/scenario_1.png rename to docs/figures/scenarios/scenario_1.png diff --git a/readme_images/scenario_1_tiny.png b/docs/figures/scenarios/scenario_1_tiny.png similarity index 100% rename from readme_images/scenario_1_tiny.png rename to docs/figures/scenarios/scenario_1_tiny.png diff --git a/readme_images/three_nets.png b/docs/figures/scenarios/three_nets.png similarity index 100% rename from readme_images/three_nets.png rename to docs/figures/scenarios/three_nets.png diff --git a/trajectory_paper_task_config.yaml b/trajectory_paper_task_config.yaml deleted file mode 100644 index caca26e2..00000000 --- a/trajectory_paper_task_config.yaml +++ /dev/null @@ -1,94 +0,0 @@ -# Configuration file for the NetSecGame environment - -coordinator: - # Define the conf for all the 'attacker' agents. - agents: - attackers: - goal: - description: "Exfiltrate data to '213.47.23.195'" - # Put randomize_goal_every_episode in True if you put any of the goal values in 'random' - is_any_part_of_goal_random: False - known_networks: [] - #known_networks: [192.168.1.0/24, 192.168.3.0/24] - known_hosts: [] - #known_hosts: [192.168.1.1, 192.168.1.2] - controlled_hosts: [] - #controlled_hosts: [213.47.23.195, 192.168.1.3] - # Services are defined as a target host where the service must be, and then a description in the form 'name,type,version,is_local' - known_services: {} - #known_services: {192.168.1.3: [Local system, lanman server, 10.0.19041, False], 192.168.1.4: [Other system, SMB server, 21.2.39421, False]} - # In data, put the target host that must have the data and which data in format user,data - # Example to fix the data in one host - known_data: {213.47.23.195: [[User1,DataFromServer1]]} - # Example to fix two data in one host - #known_data: {213.47.23.195: [[User1,DataFromServer1], [User5,DataFromServer5]]} - # Example to fix the data in two host - #known_data: {213.47.23.195: [User1,DataFromServer1], 192.168.3.1: [User3,Data3FromServer3]} - # Example to ask a random data in a specific server. Putting 'random' in the data, forces the env to randomly choose where the goal data is - # known_data: {213.47.23.195: [random]} - - start_position: - known_networks: [] - known_hosts: [] - # The attacker must always at least control the CC if the goal is to exfiltrate there - # Example of fixing the starting point of the agent in a local host - controlled_hosts: [213.47.23.195, random] - # Example of asking a random position to start the agent - # controlled_hosts: [213.47.23.195, random] - # Services are defined as a target host where the service must be, and then a description in the form 'name,type,version,is_local' - known_services: {} - # known_services: {192.168.1.3: [Local system, lanman server, 10.0.19041, False], 192.168.1.4: [Other system, SMB server, 21.2.39421, False]} - # Same format as before - known_data: {} - - defenders: - # types are StochasticDefender and NoDefender - #type: 'StochasticDefender' - type: 'StochasticWithThreshold' - # type: 'NoDefender' - tw_size: 5 - thresholds: - scan_network: # if both conditions are true, you are never detected - consecutive_actions: 2 # min amount of consecutive actions you can do without detection - tw_ratio: 0.25 # min ratio of actions in the tw below which you are not detected - find_services: - consecutive_actions: 3 - tw_ratio: 0.3 - exploit_service: - repeated_actions_episode: 2 - tw_ratio: 0.25 - find_data: - tw_ratio: 0.5 - repeated_actions_episode: 2 - exfiltrate_data: - consecutive_actions: 2 - tw_ratio: 0.25 - action_detetection_prob: - scan_network: 0.05 - find_services: 0.075 - exploit_service: 0.1 - find_data: 0.025 - exfiltrate_data: 0.025 -env: - # random means to choose the seed in a random way, so it is not fixed - random_seed: 'random' - # Or you can fix the seed - # random_seed: 42 - scenario: 'scenario1' - max_steps: 100 - store_replay_buffer: True - use_dynamic_addresses: False - goal_reward: 100 - detection_reward: -5 - step_reward: -1 - actions: - scan_network: - prob_success: 1.0 - find_services: - prob_success: 1.0 - exploit_service: - prob_success: 1.0 - find_data: - prob_success: 1.0 - exfiltrate_data: - prob_success: 1.0