Merged PR 294: Update actions set in uc2 to match Yak

## Summary
Expand the available actions.

## Checklist
- [x] PR is linked to a **work item**
- [x] **acceptance criteria** of linked ticket are met
- [x] performed **self-review** of the code
- [x] written **tests** for any new functionality added with this PR
- [x] updated the **documentation** if this PR changes or adds functionality
- [ ] written/updated **design docs** if this PR implements new functionality
- [x] updated the **change log**
- [x] ran **pre-commit** checks for code style
- [x] attended to any **TO-DOs** left in the code

Related work items: #2243
This commit is contained in:
Marek Wolan
2024-03-04 14:39:07 +00:00
4 changed files with 607 additions and 253 deletions

View File

@@ -111,6 +111,7 @@ SessionManager.
- **ACLRule Wildcard Masking**: Updated the `ACLRule` class to support IP ranges using wildcard masking. This enhancement allows for more flexible and granular control over traffic filtering, enabling the specification of broader or more specific IP address ranges in ACL rules. - **ACLRule Wildcard Masking**: Updated the `ACLRule` class to support IP ranges using wildcard masking. This enhancement allows for more flexible and granular control over traffic filtering, enabling the specification of broader or more specific IP address ranges in ACL rules.
- Updated `NetworkInterface` documentation to reflect the new NMNE capturing features and how to use them. - Updated `NetworkInterface` documentation to reflect the new NMNE capturing features and how to use them.
- Integration of NMNE capturing functionality within the `NicObservation` class. - Integration of NMNE capturing functionality within the `NicObservation` class.
- Changed blue action set to enable applying node scan, reset, start, and shutdown to every host in data manipulation scenario
### Removed ### Removed
- Removed legacy simulation modules: `acl`, `common`, `environment`, `links`, `nodes`, `pol` - Removed legacy simulation modules: `acl`, `common`, `environment`, `links`, `nodes`, `pol`

View File

@@ -351,22 +351,119 @@ agents:
node_id: 2 node_id: 2
folder_id: 0 folder_id: 0
18: 18:
action: "NODE_OS_SCAN"
options:
node_id: 0
19:
action: "NODE_SHUTDOWN"
options:
node_id: 0
20:
action: NODE_STARTUP
options:
node_id: 0
21:
action: NODE_RESET
options:
node_id: 0
22:
action: "NODE_OS_SCAN"
options:
node_id: 1
23:
action: "NODE_SHUTDOWN"
options:
node_id: 1
24:
action: NODE_STARTUP
options:
node_id: 1
25:
action: NODE_RESET
options:
node_id: 1
26: # old action num: 18
action: "NODE_OS_SCAN" action: "NODE_OS_SCAN"
options: options:
node_id: 2 node_id: 2
19: # shutdown client 1 27:
action: "NODE_SHUTDOWN"
options:
node_id: 2
28:
action: NODE_STARTUP
options:
node_id: 2
29:
action: NODE_RESET
options:
node_id: 2
30:
action: "NODE_OS_SCAN"
options:
node_id: 3
31:
action: "NODE_SHUTDOWN"
options:
node_id: 3
32:
action: NODE_STARTUP
options:
node_id: 3
33:
action: NODE_RESET
options:
node_id: 3
34:
action: "NODE_OS_SCAN"
options:
node_id: 4
35:
action: "NODE_SHUTDOWN"
options:
node_id: 4
36:
action: NODE_STARTUP
options:
node_id: 4
37:
action: NODE_RESET
options:
node_id: 4
38:
action: "NODE_OS_SCAN"
options:
node_id: 5
39: # old action num: 19 # shutdown client 1
action: "NODE_SHUTDOWN" action: "NODE_SHUTDOWN"
options: options:
node_id: 5 node_id: 5
20: 40: # old action num: 20
action: "NODE_STARTUP" action: NODE_STARTUP
options: options:
node_id: 5 node_id: 5
21: 41: # old action num: 21
action: "NODE_RESET" action: NODE_RESET
options: options:
node_id: 5 node_id: 5
22: # "ACL: ADDRULE - Block outgoing traffic from client 1" 42:
action: "NODE_OS_SCAN"
options:
node_id: 6
43:
action: "NODE_SHUTDOWN"
options:
node_id: 6
44:
action: NODE_STARTUP
options:
node_id: 6
45:
action: NODE_RESET
options:
node_id: 6
46: # old action num: 22 # "ACL: ADDRULE - Block outgoing traffic from client 1"
action: "NETWORK_ACL_ADDRULE" action: "NETWORK_ACL_ADDRULE"
options: options:
position: 1 position: 1
@@ -376,7 +473,7 @@ agents:
source_port_id: 1 source_port_id: 1
dest_port_id: 1 dest_port_id: 1
protocol_id: 1 protocol_id: 1
23: # "ACL: ADDRULE - Block outgoing traffic from client 2" 47: # old action num: 23 # "ACL: ADDRULE - Block outgoing traffic from client 2"
action: "NETWORK_ACL_ADDRULE" action: "NETWORK_ACL_ADDRULE"
options: options:
position: 2 position: 2
@@ -386,7 +483,7 @@ agents:
source_port_id: 1 source_port_id: 1
dest_port_id: 1 dest_port_id: 1
protocol_id: 1 protocol_id: 1
24: # block tcp traffic from client 1 to web app 48: # old action num: 24 # block tcp traffic from client 1 to web app
action: "NETWORK_ACL_ADDRULE" action: "NETWORK_ACL_ADDRULE"
options: options:
position: 3 position: 3
@@ -396,7 +493,7 @@ agents:
source_port_id: 1 source_port_id: 1
dest_port_id: 1 dest_port_id: 1
protocol_id: 3 protocol_id: 3
25: # block tcp traffic from client 2 to web app 49: # old action num: 25 # block tcp traffic from client 2 to web app
action: "NETWORK_ACL_ADDRULE" action: "NETWORK_ACL_ADDRULE"
options: options:
position: 4 position: 4
@@ -406,7 +503,7 @@ agents:
source_port_id: 1 source_port_id: 1
dest_port_id: 1 dest_port_id: 1
protocol_id: 3 protocol_id: 3
26: 50: # old action num: 26
action: "NETWORK_ACL_ADDRULE" action: "NETWORK_ACL_ADDRULE"
options: options:
position: 5 position: 5
@@ -416,7 +513,7 @@ agents:
source_port_id: 1 source_port_id: 1
dest_port_id: 1 dest_port_id: 1
protocol_id: 3 protocol_id: 3
27: 51: # old action num: 27
action: "NETWORK_ACL_ADDRULE" action: "NETWORK_ACL_ADDRULE"
options: options:
position: 6 position: 6
@@ -426,128 +523,129 @@ agents:
source_port_id: 1 source_port_id: 1
dest_port_id: 1 dest_port_id: 1
protocol_id: 3 protocol_id: 3
28: 52: # old action num: 28
action: "NETWORK_ACL_REMOVERULE" action: "NETWORK_ACL_REMOVERULE"
options: options:
position: 0 position: 0
29: 53: # old action num: 29
action: "NETWORK_ACL_REMOVERULE" action: "NETWORK_ACL_REMOVERULE"
options: options:
position: 1 position: 1
30: 54: # old action num: 30
action: "NETWORK_ACL_REMOVERULE" action: "NETWORK_ACL_REMOVERULE"
options: options:
position: 2 position: 2
31: 55: # old action num: 31
action: "NETWORK_ACL_REMOVERULE" action: "NETWORK_ACL_REMOVERULE"
options: options:
position: 3 position: 3
32: 56: # old action num: 32
action: "NETWORK_ACL_REMOVERULE" action: "NETWORK_ACL_REMOVERULE"
options: options:
position: 4 position: 4
33: 57: # old action num: 33
action: "NETWORK_ACL_REMOVERULE" action: "NETWORK_ACL_REMOVERULE"
options: options:
position: 5 position: 5
34: 58: # old action num: 34
action: "NETWORK_ACL_REMOVERULE" action: "NETWORK_ACL_REMOVERULE"
options: options:
position: 6 position: 6
35: 59: # old action num: 35
action: "NETWORK_ACL_REMOVERULE" action: "NETWORK_ACL_REMOVERULE"
options: options:
position: 7 position: 7
36: 60: # old action num: 36
action: "NETWORK_ACL_REMOVERULE" action: "NETWORK_ACL_REMOVERULE"
options: options:
position: 8 position: 8
37: 61: # old action num: 37
action: "NETWORK_ACL_REMOVERULE" action: "NETWORK_ACL_REMOVERULE"
options: options:
position: 9 position: 9
38: 62: # old action num: 38
action: "NETWORK_NIC_DISABLE" action: "NETWORK_NIC_DISABLE"
options: options:
node_id: 0 node_id: 0
nic_id: 0 nic_id: 0
39: 63: # old action num: 39
action: "NETWORK_NIC_ENABLE" action: "NETWORK_NIC_ENABLE"
options: options:
node_id: 0 node_id: 0
nic_id: 0 nic_id: 0
40: 64: # old action num: 40
action: "NETWORK_NIC_DISABLE" action: "NETWORK_NIC_DISABLE"
options: options:
node_id: 1 node_id: 1
nic_id: 0 nic_id: 0
41: 65: # old action num: 41
action: "NETWORK_NIC_ENABLE" action: "NETWORK_NIC_ENABLE"
options: options:
node_id: 1 node_id: 1
nic_id: 0 nic_id: 0
42: 66: # old action num: 42
action: "NETWORK_NIC_DISABLE" action: "NETWORK_NIC_DISABLE"
options: options:
node_id: 2 node_id: 2
nic_id: 0 nic_id: 0
43: 67: # old action num: 43
action: "NETWORK_NIC_ENABLE" action: "NETWORK_NIC_ENABLE"
options: options:
node_id: 2 node_id: 2
nic_id: 0 nic_id: 0
44: 68: # old action num: 44
action: "NETWORK_NIC_DISABLE" action: "NETWORK_NIC_DISABLE"
options: options:
node_id: 3 node_id: 3
nic_id: 0 nic_id: 0
45: 69: # old action num: 45
action: "NETWORK_NIC_ENABLE" action: "NETWORK_NIC_ENABLE"
options: options:
node_id: 3 node_id: 3
nic_id: 0 nic_id: 0
46: 70: # old action num: 46
action: "NETWORK_NIC_DISABLE" action: "NETWORK_NIC_DISABLE"
options: options:
node_id: 4 node_id: 4
nic_id: 0 nic_id: 0
47: 71: # old action num: 47
action: "NETWORK_NIC_ENABLE" action: "NETWORK_NIC_ENABLE"
options: options:
node_id: 4 node_id: 4
nic_id: 0 nic_id: 0
48: 72: # old action num: 48
action: "NETWORK_NIC_DISABLE" action: "NETWORK_NIC_DISABLE"
options: options:
node_id: 4 node_id: 4
nic_id: 1 nic_id: 1
49: 73: # old action num: 49
action: "NETWORK_NIC_ENABLE" action: "NETWORK_NIC_ENABLE"
options: options:
node_id: 4 node_id: 4
nic_id: 1 nic_id: 1
50: 74: # old action num: 50
action: "NETWORK_NIC_DISABLE" action: "NETWORK_NIC_DISABLE"
options: options:
node_id: 5 node_id: 5
nic_id: 0 nic_id: 0
51: 75: # old action num: 51
action: "NETWORK_NIC_ENABLE" action: "NETWORK_NIC_ENABLE"
options: options:
node_id: 5 node_id: 5
nic_id: 0 nic_id: 0
52: 76: # old action num: 52
action: "NETWORK_NIC_DISABLE" action: "NETWORK_NIC_DISABLE"
options: options:
node_id: 6 node_id: 6
nic_id: 0 nic_id: 0
53: 77: # old action num: 53
action: "NETWORK_NIC_ENABLE" action: "NETWORK_NIC_ENABLE"
options: options:
node_id: 6 node_id: 6
nic_id: 0 nic_id: 0
options: options:
nodes: nodes:
- node_name: domain_controller - node_name: domain_controller

View File

@@ -36,6 +36,11 @@ agents:
- ref: client_2_green_user - ref: client_2_green_user
team: GREEN team: GREEN
type: ProbabilisticAgent type: ProbabilisticAgent
agent_settings:
action_probabilities:
0: 0.3
1: 0.6
2: 0.1
observation_space: observation_space:
type: UC2GreenObservation type: UC2GreenObservation
action_space: action_space:
@@ -47,24 +52,38 @@ agents:
- node_name: client_2 - node_name: client_2
applications: applications:
- application_name: WebBrowser - application_name: WebBrowser
- application_name: DatabaseClient
max_folders_per_node: 1 max_folders_per_node: 1
max_files_per_folder: 1 max_files_per_folder: 1
max_services_per_node: 1 max_services_per_node: 1
max_applications_per_node: 1 max_applications_per_node: 2
action_map:
0:
action: DONOTHING
options: {}
1:
action: NODE_APPLICATION_EXECUTE
options:
node_id: 0
application_id: 0
2:
action: NODE_APPLICATION_EXECUTE
options:
node_id: 0
application_id: 1
reward_function: reward_function:
reward_components: reward_components:
- type: DUMMY - type: DUMMY
agent_settings:
start_settings:
start_step: 5
frequency: 4
variance: 3
- ref: client_1_green_user - ref: client_1_green_user
team: GREEN team: GREEN
type: ProbabilisticAgent type: ProbabilisticAgent
agent_settings:
action_probabilities:
0: 0.3
1: 0.6
2: 0.1
observation_space: observation_space:
type: UC2GreenObservation type: UC2GreenObservation
action_space: action_space:
@@ -76,10 +95,26 @@ agents:
- node_name: client_1 - node_name: client_1
applications: applications:
- application_name: WebBrowser - application_name: WebBrowser
- application_name: DatabaseClient
max_folders_per_node: 1 max_folders_per_node: 1
max_files_per_folder: 1 max_files_per_folder: 1
max_services_per_node: 1 max_services_per_node: 1
max_applications_per_node: 1 max_applications_per_node: 2
action_map:
0:
action: DONOTHING
options: {}
1:
action: NODE_APPLICATION_EXECUTE
options:
node_id: 0
application_id: 0
2:
action: NODE_APPLICATION_EXECUTE
options:
node_id: 0
application_id: 1
reward_function: reward_function:
reward_components: reward_components:
- type: DUMMY - type: DUMMY
@@ -87,6 +122,7 @@ agents:
- ref: data_manipulation_attacker - ref: data_manipulation_attacker
team: RED team: RED
type: RedDatabaseCorruptingAgent type: RedDatabaseCorruptingAgent
@@ -317,22 +353,119 @@ agents:
node_id: 2 node_id: 2
folder_id: 0 folder_id: 0
18: 18:
action: "NODE_OS_SCAN"
options:
node_id: 0
19:
action: "NODE_SHUTDOWN"
options:
node_id: 0
20:
action: NODE_STARTUP
options:
node_id: 0
21:
action: NODE_RESET
options:
node_id: 0
22:
action: "NODE_OS_SCAN"
options:
node_id: 1
23:
action: "NODE_SHUTDOWN"
options:
node_id: 1
24:
action: NODE_STARTUP
options:
node_id: 1
25:
action: NODE_RESET
options:
node_id: 1
26: # old action num: 18
action: "NODE_OS_SCAN" action: "NODE_OS_SCAN"
options: options:
node_id: 2 node_id: 2
19: # shutdown client 1 27:
action: "NODE_SHUTDOWN"
options:
node_id: 2
28:
action: NODE_STARTUP
options:
node_id: 2
29:
action: NODE_RESET
options:
node_id: 2
30:
action: "NODE_OS_SCAN"
options:
node_id: 3
31:
action: "NODE_SHUTDOWN"
options:
node_id: 3
32:
action: NODE_STARTUP
options:
node_id: 3
33:
action: NODE_RESET
options:
node_id: 3
34:
action: "NODE_OS_SCAN"
options:
node_id: 4
35:
action: "NODE_SHUTDOWN"
options:
node_id: 4
36:
action: NODE_STARTUP
options:
node_id: 4
37:
action: NODE_RESET
options:
node_id: 4
38:
action: "NODE_OS_SCAN"
options:
node_id: 5
39: # old action num: 19 # shutdown client 1
action: "NODE_SHUTDOWN" action: "NODE_SHUTDOWN"
options: options:
node_id: 5 node_id: 5
20: 40: # old action num: 20
action: "NODE_STARTUP" action: NODE_STARTUP
options: options:
node_id: 5 node_id: 5
21: 41: # old action num: 21
action: "NODE_RESET" action: NODE_RESET
options: options:
node_id: 5 node_id: 5
22: # "ACL: ADDRULE - Block outgoing traffic from client 1" 42:
action: "NODE_OS_SCAN"
options:
node_id: 6
43:
action: "NODE_SHUTDOWN"
options:
node_id: 6
44:
action: NODE_STARTUP
options:
node_id: 6
45:
action: NODE_RESET
options:
node_id: 6
46: # old action num: 22 # "ACL: ADDRULE - Block outgoing traffic from client 1"
action: "NETWORK_ACL_ADDRULE" action: "NETWORK_ACL_ADDRULE"
options: options:
position: 1 position: 1
@@ -342,7 +475,7 @@ agents:
source_port_id: 1 source_port_id: 1
dest_port_id: 1 dest_port_id: 1
protocol_id: 1 protocol_id: 1
23: # "ACL: ADDRULE - Block outgoing traffic from client 2" 47: # old action num: 23 # "ACL: ADDRULE - Block outgoing traffic from client 2"
action: "NETWORK_ACL_ADDRULE" action: "NETWORK_ACL_ADDRULE"
options: options:
position: 2 position: 2
@@ -352,7 +485,7 @@ agents:
source_port_id: 1 source_port_id: 1
dest_port_id: 1 dest_port_id: 1
protocol_id: 1 protocol_id: 1
24: # block tcp traffic from client 1 to web app 48: # old action num: 24 # block tcp traffic from client 1 to web app
action: "NETWORK_ACL_ADDRULE" action: "NETWORK_ACL_ADDRULE"
options: options:
position: 3 position: 3
@@ -362,7 +495,7 @@ agents:
source_port_id: 1 source_port_id: 1
dest_port_id: 1 dest_port_id: 1
protocol_id: 3 protocol_id: 3
25: # block tcp traffic from client 2 to web app 49: # old action num: 25 # block tcp traffic from client 2 to web app
action: "NETWORK_ACL_ADDRULE" action: "NETWORK_ACL_ADDRULE"
options: options:
position: 4 position: 4
@@ -372,7 +505,7 @@ agents:
source_port_id: 1 source_port_id: 1
dest_port_id: 1 dest_port_id: 1
protocol_id: 3 protocol_id: 3
26: 50: # old action num: 26
action: "NETWORK_ACL_ADDRULE" action: "NETWORK_ACL_ADDRULE"
options: options:
position: 5 position: 5
@@ -382,7 +515,7 @@ agents:
source_port_id: 1 source_port_id: 1
dest_port_id: 1 dest_port_id: 1
protocol_id: 3 protocol_id: 3
27: 51: # old action num: 27
action: "NETWORK_ACL_ADDRULE" action: "NETWORK_ACL_ADDRULE"
options: options:
position: 6 position: 6
@@ -392,122 +525,122 @@ agents:
source_port_id: 1 source_port_id: 1
dest_port_id: 1 dest_port_id: 1
protocol_id: 3 protocol_id: 3
28: 52: # old action num: 28
action: "NETWORK_ACL_REMOVERULE" action: "NETWORK_ACL_REMOVERULE"
options: options:
position: 0 position: 0
29: 53: # old action num: 29
action: "NETWORK_ACL_REMOVERULE" action: "NETWORK_ACL_REMOVERULE"
options: options:
position: 1 position: 1
30: 54: # old action num: 30
action: "NETWORK_ACL_REMOVERULE" action: "NETWORK_ACL_REMOVERULE"
options: options:
position: 2 position: 2
31: 55: # old action num: 31
action: "NETWORK_ACL_REMOVERULE" action: "NETWORK_ACL_REMOVERULE"
options: options:
position: 3 position: 3
32: 56: # old action num: 32
action: "NETWORK_ACL_REMOVERULE" action: "NETWORK_ACL_REMOVERULE"
options: options:
position: 4 position: 4
33: 57: # old action num: 33
action: "NETWORK_ACL_REMOVERULE" action: "NETWORK_ACL_REMOVERULE"
options: options:
position: 5 position: 5
34: 58: # old action num: 34
action: "NETWORK_ACL_REMOVERULE" action: "NETWORK_ACL_REMOVERULE"
options: options:
position: 6 position: 6
35: 59: # old action num: 35
action: "NETWORK_ACL_REMOVERULE" action: "NETWORK_ACL_REMOVERULE"
options: options:
position: 7 position: 7
36: 60: # old action num: 36
action: "NETWORK_ACL_REMOVERULE" action: "NETWORK_ACL_REMOVERULE"
options: options:
position: 8 position: 8
37: 61: # old action num: 37
action: "NETWORK_ACL_REMOVERULE" action: "NETWORK_ACL_REMOVERULE"
options: options:
position: 9 position: 9
38: 62: # old action num: 38
action: "NETWORK_NIC_DISABLE" action: "NETWORK_NIC_DISABLE"
options: options:
node_id: 0 node_id: 0
nic_id: 0 nic_id: 0
39: 63: # old action num: 39
action: "NETWORK_NIC_ENABLE" action: "NETWORK_NIC_ENABLE"
options: options:
node_id: 0 node_id: 0
nic_id: 0 nic_id: 0
40: 64: # old action num: 40
action: "NETWORK_NIC_DISABLE" action: "NETWORK_NIC_DISABLE"
options: options:
node_id: 1 node_id: 1
nic_id: 0 nic_id: 0
41: 65: # old action num: 41
action: "NETWORK_NIC_ENABLE" action: "NETWORK_NIC_ENABLE"
options: options:
node_id: 1 node_id: 1
nic_id: 0 nic_id: 0
42: 66: # old action num: 42
action: "NETWORK_NIC_DISABLE" action: "NETWORK_NIC_DISABLE"
options: options:
node_id: 2 node_id: 2
nic_id: 0 nic_id: 0
43: 67: # old action num: 43
action: "NETWORK_NIC_ENABLE" action: "NETWORK_NIC_ENABLE"
options: options:
node_id: 2 node_id: 2
nic_id: 0 nic_id: 0
44: 68: # old action num: 44
action: "NETWORK_NIC_DISABLE" action: "NETWORK_NIC_DISABLE"
options: options:
node_id: 3 node_id: 3
nic_id: 0 nic_id: 0
45: 69: # old action num: 45
action: "NETWORK_NIC_ENABLE" action: "NETWORK_NIC_ENABLE"
options: options:
node_id: 3 node_id: 3
nic_id: 0 nic_id: 0
46: 70: # old action num: 46
action: "NETWORK_NIC_DISABLE" action: "NETWORK_NIC_DISABLE"
options: options:
node_id: 4 node_id: 4
nic_id: 0 nic_id: 0
47: 71: # old action num: 47
action: "NETWORK_NIC_ENABLE" action: "NETWORK_NIC_ENABLE"
options: options:
node_id: 4 node_id: 4
nic_id: 0 nic_id: 0
48: 72: # old action num: 48
action: "NETWORK_NIC_DISABLE" action: "NETWORK_NIC_DISABLE"
options: options:
node_id: 4 node_id: 4
nic_id: 1 nic_id: 1
49: 73: # old action num: 49
action: "NETWORK_NIC_ENABLE" action: "NETWORK_NIC_ENABLE"
options: options:
node_id: 4 node_id: 4
nic_id: 1 nic_id: 1
50: 74: # old action num: 50
action: "NETWORK_NIC_DISABLE" action: "NETWORK_NIC_DISABLE"
options: options:
node_id: 5 node_id: 5
nic_id: 0 nic_id: 0
51: 75: # old action num: 51
action: "NETWORK_NIC_ENABLE" action: "NETWORK_NIC_ENABLE"
options: options:
node_id: 5 node_id: 5
nic_id: 0 nic_id: 0
52: 76: # old action num: 52
action: "NETWORK_NIC_DISABLE" action: "NETWORK_NIC_DISABLE"
options: options:
node_id: 6 node_id: 6
nic_id: 0 nic_id: 0
53: 77: # old action num: 53
action: "NETWORK_NIC_ENABLE" action: "NETWORK_NIC_ENABLE"
options: options:
node_id: 6 node_id: 6
@@ -574,6 +707,14 @@ agents:
weight: 0.33 weight: 0.33
options: options:
node_hostname: client_2 node_hostname: client_2
- type: GREEN_ADMIN_DATABASE_UNREACHABLE_PENALTY
weight: 0.1
options:
node_hostname: client_1
- type: GREEN_ADMIN_DATABASE_UNREACHABLE_PENALTY
weight: 0.1
options:
node_hostname: client_2
agent_settings: agent_settings:
@@ -771,22 +912,119 @@ agents:
node_id: 2 node_id: 2
folder_id: 0 folder_id: 0
18: 18:
action: "NODE_OS_SCAN"
options:
node_id: 0
19:
action: "NODE_SHUTDOWN"
options:
node_id: 0
20:
action: NODE_STARTUP
options:
node_id: 0
21:
action: NODE_RESET
options:
node_id: 0
22:
action: "NODE_OS_SCAN"
options:
node_id: 1
23:
action: "NODE_SHUTDOWN"
options:
node_id: 1
24:
action: NODE_STARTUP
options:
node_id: 1
25:
action: NODE_RESET
options:
node_id: 1
26: # old action num: 18
action: "NODE_OS_SCAN" action: "NODE_OS_SCAN"
options: options:
node_id: 2 node_id: 2
19: # shutdown client 1 27:
action: "NODE_SHUTDOWN"
options:
node_id: 2
28:
action: NODE_STARTUP
options:
node_id: 2
29:
action: NODE_RESET
options:
node_id: 2
30:
action: "NODE_OS_SCAN"
options:
node_id: 3
31:
action: "NODE_SHUTDOWN"
options:
node_id: 3
32:
action: NODE_STARTUP
options:
node_id: 3
33:
action: NODE_RESET
options:
node_id: 3
34:
action: "NODE_OS_SCAN"
options:
node_id: 4
35:
action: "NODE_SHUTDOWN"
options:
node_id: 4
36:
action: NODE_STARTUP
options:
node_id: 4
37:
action: NODE_RESET
options:
node_id: 4
38:
action: "NODE_OS_SCAN"
options:
node_id: 5
39: # old action num: 19 # shutdown client 1
action: "NODE_SHUTDOWN" action: "NODE_SHUTDOWN"
options: options:
node_id: 5 node_id: 5
20: 40: # old action num: 20
action: "NODE_STARTUP" action: NODE_STARTUP
options: options:
node_id: 5 node_id: 5
21: 41: # old action num: 21
action: "NODE_RESET" action: NODE_RESET
options: options:
node_id: 5 node_id: 5
22: # "ACL: ADDRULE - Block outgoing traffic from client 1" 42:
action: "NODE_OS_SCAN"
options:
node_id: 6
43:
action: "NODE_SHUTDOWN"
options:
node_id: 6
44:
action: NODE_STARTUP
options:
node_id: 6
45:
action: NODE_RESET
options:
node_id: 6
46: # old action num: 22 # "ACL: ADDRULE - Block outgoing traffic from client 1"
action: "NETWORK_ACL_ADDRULE" action: "NETWORK_ACL_ADDRULE"
options: options:
position: 1 position: 1
@@ -796,7 +1034,7 @@ agents:
source_port_id: 1 source_port_id: 1
dest_port_id: 1 dest_port_id: 1
protocol_id: 1 protocol_id: 1
23: # "ACL: ADDRULE - Block outgoing traffic from client 2" 47: # old action num: 23 # "ACL: ADDRULE - Block outgoing traffic from client 2"
action: "NETWORK_ACL_ADDRULE" action: "NETWORK_ACL_ADDRULE"
options: options:
position: 2 position: 2
@@ -806,7 +1044,7 @@ agents:
source_port_id: 1 source_port_id: 1
dest_port_id: 1 dest_port_id: 1
protocol_id: 1 protocol_id: 1
24: # block tcp traffic from client 1 to web app 48: # old action num: 24 # block tcp traffic from client 1 to web app
action: "NETWORK_ACL_ADDRULE" action: "NETWORK_ACL_ADDRULE"
options: options:
position: 3 position: 3
@@ -816,7 +1054,7 @@ agents:
source_port_id: 1 source_port_id: 1
dest_port_id: 1 dest_port_id: 1
protocol_id: 3 protocol_id: 3
25: # block tcp traffic from client 2 to web app 49: # old action num: 25 # block tcp traffic from client 2 to web app
action: "NETWORK_ACL_ADDRULE" action: "NETWORK_ACL_ADDRULE"
options: options:
position: 4 position: 4
@@ -826,7 +1064,7 @@ agents:
source_port_id: 1 source_port_id: 1
dest_port_id: 1 dest_port_id: 1
protocol_id: 3 protocol_id: 3
26: 50: # old action num: 26
action: "NETWORK_ACL_ADDRULE" action: "NETWORK_ACL_ADDRULE"
options: options:
position: 5 position: 5
@@ -836,7 +1074,7 @@ agents:
source_port_id: 1 source_port_id: 1
dest_port_id: 1 dest_port_id: 1
protocol_id: 3 protocol_id: 3
27: 51: # old action num: 27
action: "NETWORK_ACL_ADDRULE" action: "NETWORK_ACL_ADDRULE"
options: options:
position: 6 position: 6
@@ -846,128 +1084,129 @@ agents:
source_port_id: 1 source_port_id: 1
dest_port_id: 1 dest_port_id: 1
protocol_id: 3 protocol_id: 3
28: 52: # old action num: 28
action: "NETWORK_ACL_REMOVERULE" action: "NETWORK_ACL_REMOVERULE"
options: options:
position: 0 position: 0
29: 53: # old action num: 29
action: "NETWORK_ACL_REMOVERULE" action: "NETWORK_ACL_REMOVERULE"
options: options:
position: 1 position: 1
30: 54: # old action num: 30
action: "NETWORK_ACL_REMOVERULE" action: "NETWORK_ACL_REMOVERULE"
options: options:
position: 2 position: 2
31: 55: # old action num: 31
action: "NETWORK_ACL_REMOVERULE" action: "NETWORK_ACL_REMOVERULE"
options: options:
position: 3 position: 3
32: 56: # old action num: 32
action: "NETWORK_ACL_REMOVERULE" action: "NETWORK_ACL_REMOVERULE"
options: options:
position: 4 position: 4
33: 57: # old action num: 33
action: "NETWORK_ACL_REMOVERULE" action: "NETWORK_ACL_REMOVERULE"
options: options:
position: 5 position: 5
34: 58: # old action num: 34
action: "NETWORK_ACL_REMOVERULE" action: "NETWORK_ACL_REMOVERULE"
options: options:
position: 6 position: 6
35: 59: # old action num: 35
action: "NETWORK_ACL_REMOVERULE" action: "NETWORK_ACL_REMOVERULE"
options: options:
position: 7 position: 7
36: 60: # old action num: 36
action: "NETWORK_ACL_REMOVERULE" action: "NETWORK_ACL_REMOVERULE"
options: options:
position: 8 position: 8
37: 61: # old action num: 37
action: "NETWORK_ACL_REMOVERULE" action: "NETWORK_ACL_REMOVERULE"
options: options:
position: 9 position: 9
38: 62: # old action num: 38
action: "NETWORK_NIC_DISABLE" action: "NETWORK_NIC_DISABLE"
options: options:
node_id: 0 node_id: 0
nic_id: 0 nic_id: 0
39: 63: # old action num: 39
action: "NETWORK_NIC_ENABLE" action: "NETWORK_NIC_ENABLE"
options: options:
node_id: 0 node_id: 0
nic_id: 0 nic_id: 0
40: 64: # old action num: 40
action: "NETWORK_NIC_DISABLE" action: "NETWORK_NIC_DISABLE"
options: options:
node_id: 1 node_id: 1
nic_id: 0 nic_id: 0
41: 65: # old action num: 41
action: "NETWORK_NIC_ENABLE" action: "NETWORK_NIC_ENABLE"
options: options:
node_id: 1 node_id: 1
nic_id: 0 nic_id: 0
42: 66: # old action num: 42
action: "NETWORK_NIC_DISABLE" action: "NETWORK_NIC_DISABLE"
options: options:
node_id: 2 node_id: 2
nic_id: 0 nic_id: 0
43: 67: # old action num: 43
action: "NETWORK_NIC_ENABLE" action: "NETWORK_NIC_ENABLE"
options: options:
node_id: 2 node_id: 2
nic_id: 0 nic_id: 0
44: 68: # old action num: 44
action: "NETWORK_NIC_DISABLE" action: "NETWORK_NIC_DISABLE"
options: options:
node_id: 3 node_id: 3
nic_id: 0 nic_id: 0
45: 69: # old action num: 45
action: "NETWORK_NIC_ENABLE" action: "NETWORK_NIC_ENABLE"
options: options:
node_id: 3 node_id: 3
nic_id: 0 nic_id: 0
46: 70: # old action num: 46
action: "NETWORK_NIC_DISABLE" action: "NETWORK_NIC_DISABLE"
options: options:
node_id: 4 node_id: 4
nic_id: 0 nic_id: 0
47: 71: # old action num: 47
action: "NETWORK_NIC_ENABLE" action: "NETWORK_NIC_ENABLE"
options: options:
node_id: 4 node_id: 4
nic_id: 0 nic_id: 0
48: 72: # old action num: 48
action: "NETWORK_NIC_DISABLE" action: "NETWORK_NIC_DISABLE"
options: options:
node_id: 4 node_id: 4
nic_id: 1 nic_id: 1
49: 73: # old action num: 49
action: "NETWORK_NIC_ENABLE" action: "NETWORK_NIC_ENABLE"
options: options:
node_id: 4 node_id: 4
nic_id: 1 nic_id: 1
50: 74: # old action num: 50
action: "NETWORK_NIC_DISABLE" action: "NETWORK_NIC_DISABLE"
options: options:
node_id: 5 node_id: 5
nic_id: 0 nic_id: 0
51: 75: # old action num: 51
action: "NETWORK_NIC_ENABLE" action: "NETWORK_NIC_ENABLE"
options: options:
node_id: 5 node_id: 5
nic_id: 0 nic_id: 0
52: 76: # old action num: 52
action: "NETWORK_NIC_DISABLE" action: "NETWORK_NIC_DISABLE"
options: options:
node_id: 6 node_id: 6
nic_id: 0 nic_id: 0
53: 77: # old action num: 53
action: "NETWORK_NIC_ENABLE" action: "NETWORK_NIC_ENABLE"
options: options:
node_id: 6 node_id: 6
nic_id: 0 nic_id: 0
options: options:
nodes: nodes:
- node_name: domain_controller - node_name: domain_controller
@@ -1028,6 +1267,14 @@ agents:
weight: 0.33 weight: 0.33
options: options:
node_hostname: client_2 node_hostname: client_2
- type: GREEN_ADMIN_DATABASE_UNREACHABLE_PENALTY
weight: 0.1
options:
node_hostname: client_1
- type: GREEN_ADMIN_DATABASE_UNREACHABLE_PENALTY
weight: 0.1
options:
node_hostname: client_2
agent_settings: agent_settings:
@@ -1046,8 +1293,8 @@ simulation:
nodes: nodes:
- ref: router_1 - ref: router_1
type: router
hostname: router_1 hostname: router_1
type: router
num_ports: 5 num_ports: 5
ports: ports:
1: 1:
@@ -1082,18 +1329,18 @@ simulation:
protocol: ICMP protocol: ICMP
- ref: switch_1 - ref: switch_1
type: switch
hostname: switch_1 hostname: switch_1
type: switch
num_ports: 8 num_ports: 8
- ref: switch_2 - ref: switch_2
type: switch
hostname: switch_2 hostname: switch_2
type: switch
num_ports: 8 num_ports: 8
- ref: domain_controller - ref: domain_controller
type: server
hostname: domain_controller hostname: domain_controller
type: server
ip_address: 192.168.1.10 ip_address: 192.168.1.10
subnet_mask: 255.255.255.0 subnet_mask: 255.255.255.0
default_gateway: 192.168.1.1 default_gateway: 192.168.1.1
@@ -1105,8 +1352,8 @@ simulation:
arcd.com: 192.168.1.12 # web server arcd.com: 192.168.1.12 # web server
- ref: web_server - ref: web_server
type: server
hostname: web_server hostname: web_server
type: server
ip_address: 192.168.1.12 ip_address: 192.168.1.12
subnet_mask: 255.255.255.0 subnet_mask: 255.255.255.0
default_gateway: 192.168.1.1 default_gateway: 192.168.1.1
@@ -1122,8 +1369,8 @@ simulation:
- ref: database_server - ref: database_server
type: server
hostname: database_server hostname: database_server
type: server
ip_address: 192.168.1.14 ip_address: 192.168.1.14
subnet_mask: 255.255.255.0 subnet_mask: 255.255.255.0
default_gateway: 192.168.1.1 default_gateway: 192.168.1.1
@@ -1137,8 +1384,8 @@ simulation:
type: FTPClient type: FTPClient
- ref: backup_server - ref: backup_server
type: server
hostname: backup_server hostname: backup_server
type: server
ip_address: 192.168.1.16 ip_address: 192.168.1.16
subnet_mask: 255.255.255.0 subnet_mask: 255.255.255.0
default_gateway: 192.168.1.1 default_gateway: 192.168.1.1
@@ -1148,8 +1395,8 @@ simulation:
type: FTPServer type: FTPServer
- ref: security_suite - ref: security_suite
type: server
hostname: security_suite hostname: security_suite
type: server
ip_address: 192.168.1.110 ip_address: 192.168.1.110
subnet_mask: 255.255.255.0 subnet_mask: 255.255.255.0
default_gateway: 192.168.1.1 default_gateway: 192.168.1.1
@@ -1160,8 +1407,8 @@ simulation:
subnet_mask: 255.255.255.0 subnet_mask: 255.255.255.0
- ref: client_1 - ref: client_1
type: computer
hostname: client_1 hostname: client_1
type: computer
ip_address: 192.168.10.21 ip_address: 192.168.10.21
subnet_mask: 255.255.255.0 subnet_mask: 255.255.255.0
default_gateway: 192.168.10.1 default_gateway: 192.168.10.1
@@ -1178,13 +1425,17 @@ simulation:
type: WebBrowser type: WebBrowser
options: options:
target_url: http://arcd.com/users/ target_url: http://arcd.com/users/
- ref: client_1_database_client
type: DatabaseClient
options:
db_server_ip: 192.168.1.14
services: services:
- ref: client_1_dns_client - ref: client_1_dns_client
type: DNSClient type: DNSClient
- ref: client_2 - ref: client_2
type: computer
hostname: client_2 hostname: client_2
type: computer
ip_address: 192.168.10.22 ip_address: 192.168.10.22
subnet_mask: 255.255.255.0 subnet_mask: 255.255.255.0
default_gateway: 192.168.10.1 default_gateway: 192.168.10.1
@@ -1201,6 +1452,10 @@ simulation:
data_manipulation_p_of_success: 0.8 data_manipulation_p_of_success: 0.8
payload: "DELETE" payload: "DELETE"
server_ip: 192.168.1.14 server_ip: 192.168.1.14
- ref: client_2_database_client
type: DatabaseClient
options:
db_server_ip: 192.168.1.14
services: services:
- ref: client_2_dns_client - ref: client_2_dns_client
type: DNSClient type: DNSClient

View File

@@ -307,17 +307,17 @@
"- `1`: Scan the web service - this refreshes the health status in the observation space\n", "- `1`: Scan the web service - this refreshes the health status in the observation space\n",
"- `9`: Scan the database file - this refreshes the health status of the database file\n", "- `9`: Scan the database file - this refreshes the health status of the database file\n",
"- `13`: Patch the database service - This triggers the database to restore data from the backup server\n", "- `13`: Patch the database service - This triggers the database to restore data from the backup server\n",
"- `19`: Shut down client 1\n", "- `39`: Shut down client 1\n",
"- `20`: Start up client 1\n", "- `40`: Start up client 1\n",
"- `22`: Block outgoing traffic from client 1\n", "- `46`: Block outgoing traffic from client 1\n",
"- `23`: Block outgoing traffic from client 2\n", "- `47`: Block outgoing traffic from client 2\n",
"- `26`: Block TCP traffic from client 1 to the database node\n", "- `50`: Block TCP traffic from client 1 to the database node\n",
"- `27`: Block TCP traffic from client 2 to the database node\n", "- `51`: Block TCP traffic from client 2 to the database node\n",
"- `28-37`: Remove ACL rules 1-10\n", "- `52-61`: Remove ACL rules 1-10\n",
"- `42`: Disconnect client 1 from the network\n", "- `66`: Disconnect client 1 from the network\n",
"- `43`: Reconnect client 1 to the network\n", "- `67`: Reconnect client 1 to the network\n",
"- `44`: Disconnect client 2 from the network\n", "- `68`: Disconnect client 2 from the network\n",
"- `45`: Reconnect client 2 to the network\n", "- `69`: Reconnect client 2 to the network\n",
"\n", "\n",
"The other actions will either have no effect or will negatively impact the network, so the blue agent should avoid taking them." "The other actions will either have no effect or will negatively impact the network, so the blue agent should avoid taking them."
] ]
@@ -559,10 +559,10 @@
"env.step(13) # Patch the database\n", "env.step(13) # Patch the database\n",
"print(f\"step: {env.game.step_counter}, Red action: {info['agent_actions']['data_manipulation_attacker'][0]}, Blue reward:{reward:.2f}\" )\n", "print(f\"step: {env.game.step_counter}, Red action: {info['agent_actions']['data_manipulation_attacker'][0]}, Blue reward:{reward:.2f}\" )\n",
"\n", "\n",
"env.step(26) # Block client 1\n", "env.step(50) # Block client 1\n",
"print(f\"step: {env.game.step_counter}, Red action: {info['agent_actions']['data_manipulation_attacker'][0]}, Blue reward:{reward:.2f}\" )\n", "print(f\"step: {env.game.step_counter}, Red action: {info['agent_actions']['data_manipulation_attacker'][0]}, Blue reward:{reward:.2f}\" )\n",
"\n", "\n",
"env.step(27) # Block client 2\n", "env.step(51) # Block client 2\n",
"print(f\"step: {env.game.step_counter}, Red action: {info['agent_actions']['data_manipulation_attacker'][0]}, Blue reward:{reward:.2f}\" )\n", "print(f\"step: {env.game.step_counter}, Red action: {info['agent_actions']['data_manipulation_attacker'][0]}, Blue reward:{reward:.2f}\" )\n",
"\n", "\n",
"for step in range(30):\n", "for step in range(30):\n",
@@ -608,9 +608,9 @@
"source": [ "source": [
"if obs['NODES'][6]['NETWORK_INTERFACES'][1]['nmne']['outbound'] == 1:\n", "if obs['NODES'][6]['NETWORK_INTERFACES'][1]['nmne']['outbound'] == 1:\n",
" # client 1 has NMNEs, let's unblock client 2\n", " # client 1 has NMNEs, let's unblock client 2\n",
" env.step(34) # remove ACL rule 6\n", " env.step(58) # remove ACL rule 6\n",
"elif obs['NODES'][7]['NETWORK_INTERFACES'][1]['nmne']['outbound'] == 1:\n", "elif obs['NODES'][7]['NETWORK_INTERFACES'][1]['nmne']['outbound'] == 1:\n",
" env.step(33) # remove ACL rule 5\n", " env.step(57) # remove ACL rule 5\n",
"else:\n", "else:\n",
" print(\"something went wrong, neither client has NMNEs\")" " print(\"something went wrong, neither client has NMNEs\")"
] ]