2023-07-17 19:57:34 +01:00
|
|
|
# Crown Owned Copyright (C) Dstl 2023. DEFCON 703. Shared in confidence.
|
2023-06-30 09:08:13 +01:00
|
|
|
# Training Config File
|
|
|
|
|
|
|
|
|
|
# Sets which agent algorithm framework will be used.
|
|
|
|
|
# Options are:
|
|
|
|
|
# "SB3" (Stable Baselines3)
|
|
|
|
|
# "RLLIB" (Ray RLlib)
|
|
|
|
|
# "CUSTOM" (Custom Agent)
|
|
|
|
|
agent_framework: CUSTOM
|
|
|
|
|
|
|
|
|
|
# Sets which Agent class will be used.
|
|
|
|
|
# Options are:
|
|
|
|
|
# "A2C" (Advantage Actor Critic coupled with either SB3 or RLLIB agent_framework)
|
|
|
|
|
# "PPO" (Proximal Policy Optimization coupled with either SB3 or RLLIB agent_framework)
|
|
|
|
|
# "HARDCODED" (The HardCoded agents coupled with an ACL or NODE action_type)
|
|
|
|
|
# "DO_NOTHING" (The DoNothing agents coupled with an ACL or NODE action_type)
|
|
|
|
|
# "RANDOM" (primaite.agents.simple.RandomAgent)
|
|
|
|
|
# "DUMMY" (primaite.agents.simple.DummyAgent)
|
|
|
|
|
agent_identifier: RANDOM
|
2023-05-26 10:17:45 +01:00
|
|
|
|
2023-06-09 13:11:14 +01:00
|
|
|
# Sets How the Action Space is defined:
|
|
|
|
|
# "NODE"
|
|
|
|
|
# "ACL"
|
|
|
|
|
# "ANY" node and acl actions
|
|
|
|
|
action_type: ANY
|
2023-07-07 14:13:47 +01:00
|
|
|
# Number of episodes for training to run per session
|
|
|
|
|
num_train_episodes: 10
|
|
|
|
|
|
|
|
|
|
# Number of time_steps for training per episode
|
|
|
|
|
num_train_steps: 256
|
|
|
|
|
|
|
|
|
|
# Number of episodes for evaluation to run per session
|
|
|
|
|
num_eval_episodes: 10
|
|
|
|
|
|
|
|
|
|
# Number of time_steps for evaluation per episode
|
|
|
|
|
num_eval_steps: 256
|
2023-05-26 10:17:45 +01:00
|
|
|
# Time delay between steps (for generic agents)
|
2023-06-09 13:11:14 +01:00
|
|
|
time_delay: 1
|
2023-05-26 10:17:45 +01:00
|
|
|
# Type of session to be run (TRAINING or EVALUATION)
|
2023-06-30 09:08:13 +01:00
|
|
|
session_type: EVAL
|
2023-05-26 10:17:45 +01:00
|
|
|
# Determine whether to load an agent from file
|
2023-06-09 13:11:14 +01:00
|
|
|
load_agent: False
|
2023-05-26 10:17:45 +01:00
|
|
|
# File path and file name of agent if you're loading one in
|
2023-06-09 13:11:14 +01:00
|
|
|
agent_load_file: C:\[Path]\[agent_saved_filename.zip]
|
2023-05-26 10:17:45 +01:00
|
|
|
|
|
|
|
|
# Environment config values
|
|
|
|
|
# The high value for the observation space
|
2023-06-09 13:11:14 +01:00
|
|
|
observation_space_high_value: 1000000000
|
2023-05-26 10:17:45 +01:00
|
|
|
|
2023-07-13 11:04:11 +01:00
|
|
|
# Choice whether to have an ALLOW or DENY implicit rule or not (TRUE or FALSE)
|
2023-06-13 08:54:33 +01:00
|
|
|
implicit_acl_rule: DENY
|
|
|
|
|
max_number_acl_rules: 10
|
2023-05-26 10:17:45 +01:00
|
|
|
# Reward values
|
|
|
|
|
# Generic
|
2023-06-09 13:11:14 +01:00
|
|
|
all_ok: 0
|
2023-05-26 10:17:45 +01:00
|
|
|
# Node Operating State
|
2023-06-09 13:11:14 +01:00
|
|
|
off_should_be_on: -10
|
|
|
|
|
off_should_be_resetting: -5
|
|
|
|
|
on_should_be_off: -2
|
|
|
|
|
on_should_be_resetting: -5
|
|
|
|
|
resetting_should_be_on: -5
|
|
|
|
|
resetting_should_be_off: -2
|
2023-05-26 10:17:45 +01:00
|
|
|
resetting: -3
|
|
|
|
|
# Node O/S or Service State
|
2023-06-09 13:11:14 +01:00
|
|
|
good_should_be_patching: 2
|
|
|
|
|
good_should_be_compromised: 5
|
|
|
|
|
good_should_be_overwhelmed: 5
|
|
|
|
|
patching_should_be_good: -5
|
|
|
|
|
patching_should_be_compromised: 2
|
|
|
|
|
patching_should_be_overwhelmed: 2
|
2023-05-26 10:17:45 +01:00
|
|
|
patching: -3
|
2023-06-09 13:11:14 +01:00
|
|
|
compromised_should_be_good: -20
|
|
|
|
|
compromised_should_be_patching: -20
|
|
|
|
|
compromised_should_be_overwhelmed: -20
|
2023-05-26 10:17:45 +01:00
|
|
|
compromised: -20
|
2023-06-09 13:11:14 +01:00
|
|
|
overwhelmed_should_be_good: -20
|
|
|
|
|
overwhelmed_should_be_patching: -20
|
|
|
|
|
overwhelmed_should_be_compromised: -20
|
2023-05-26 10:17:45 +01:00
|
|
|
overwhelmed: -20
|
|
|
|
|
# Node File System State
|
2023-06-09 13:11:14 +01:00
|
|
|
good_should_be_repairing: 2
|
|
|
|
|
good_should_be_restoring: 2
|
|
|
|
|
good_should_be_corrupt: 5
|
|
|
|
|
good_should_be_destroyed: 10
|
|
|
|
|
repairing_should_be_good: -5
|
|
|
|
|
repairing_should_be_restoring: 2
|
|
|
|
|
repairing_should_be_corrupt: 2
|
|
|
|
|
repairing_should_be_destroyed: 0
|
2023-05-26 10:17:45 +01:00
|
|
|
repairing: -3
|
2023-06-09 13:11:14 +01:00
|
|
|
restoring_should_be_good: -10
|
|
|
|
|
restoring_should_be_repairing: -2
|
|
|
|
|
restoring_should_be_corrupt: 1
|
|
|
|
|
restoring_should_be_destroyed: 2
|
2023-05-26 10:17:45 +01:00
|
|
|
restoring: -6
|
2023-06-09 13:11:14 +01:00
|
|
|
corrupt_should_be_good: -10
|
|
|
|
|
corrupt_should_be_repairing: -10
|
|
|
|
|
corrupt_should_be_restoring: -10
|
|
|
|
|
corrupt_should_be_destroyed: 2
|
2023-05-26 10:17:45 +01:00
|
|
|
corrupt: -10
|
2023-06-09 13:11:14 +01:00
|
|
|
destroyed_should_be_good: -20
|
|
|
|
|
destroyed_should_be_repairing: -20
|
|
|
|
|
destroyed_should_be_restoring: -20
|
|
|
|
|
destroyed_should_be_corrupt: -20
|
2023-05-26 10:17:45 +01:00
|
|
|
destroyed: -20
|
|
|
|
|
scanning: -2
|
|
|
|
|
# IER status
|
2023-06-09 13:11:14 +01:00
|
|
|
red_ier_running: -5
|
|
|
|
|
green_ier_blocked: -10
|
2023-05-26 10:17:45 +01:00
|
|
|
|
|
|
|
|
# Patching / Reset durations
|
2023-06-09 13:11:14 +01:00
|
|
|
os_patching_duration: 5 # The time taken to patch the OS
|
|
|
|
|
node_reset_duration: 5 # The time taken to reset a node (hardware)
|
|
|
|
|
service_patching_duration: 5 # The time taken to patch a service
|
|
|
|
|
file_system_repairing_limit: 5 # The time take to repair the file system
|
|
|
|
|
file_system_restoring_limit: 5 # The time take to restore the file system
|
|
|
|
|
file_system_scanning_limit: 5 # The time taken to scan the file system
|