* config_main.yaml - used to define the top-level settings of the PrimAITE environment, and the session that is to be run.
* config_[name].yaml - used to define the low-level settings of a session, including the network laydown, green / red agent information exchange requirements (IERSs), Access Control Rules, Action Space type, and the number of steps in each episode.
This defines the number of episodes that the agent will train or be evaluated over. Each episode consists of a number of steps (with step number defined in the config_[name].yaml file)
The high value to use for values in the observation space. This is set to 1000000000 by default, and should not need changing in most cases
**Reward-Based Config Values**
***Generic [allOk]** [int]
The score to give when the current situation (for a given component) is no different from that expected in the baseline (i.e. as though no blue or red agent actions had been undertaken)
***Node Operating State [offShouldBeOn]** [int]
The score to give when the node should be on, but is off
***Node Operating State [offShouldBeResetting]** [int]
The score to give when the node should be resetting, but is off
***Node Operating State [onShouldBeOff]** [int]
The score to give when the node should be off, but is on
***Node Operating State [onShouldBeResetting]** [int]
The score to give when the node should be resetting, but is on
***Node Operating State [resettingShouldBeOn]** [int]
The score to give when the node should be on, but is resetting
***Node Operating State [resettingShouldBeOff]** [int]
The score to give when the node should be off, but is resetting
Defines a node included in the system laydown being simulated. It should consist of the following attributes:
***id** [int]: Unique ID for this YAML item
***name** [freetext]: Human-readable name of the component
***baseType** [enum]: Relates to the base type of the node. Can be SERVICE, ACTIVE or PASSIVE. PASSIVE nodes do not have an operating system or services. ACTIVE nodes have an operating system, but no services. SERVICE nodes have both an operating system and one or more services
***nodeType** [enum]: Relates to the component type. Can be one of CCTV, SWITCH, COMPUTER, LINK, MONITOR, PRINTER, LOP, RTU, ACTUATOR or SERVER
***priority** [enum]: Provides a priority for each node. Can be one of P1, P2, P3, P4 or P5 (which P1 being the highest)
***hardwareState** [enum]: The initial hardware state of the node. Can be one of ON, OFF or RESETTING
***ipAddress** [IP address]: The IP address of the component in format xxx.xxx.xxx.xxx
***softwareState** [enum]: The intial state of the node operating system. Can be GOOD, PATCHING or COMPROMISED
***type** [enum]: The type of PoL to apply. Can be one of OPERATING, OS or SERVICE
***protocol** [freetext]: The protocol to be affected if SERVICE type is chosen. Must match a value in the services list
***state** [enuum]: The state to apply to the node (which represents the PoL change). Can be one of ON, OFF or RESETTING (for node state) or GOOD, PATCHING or COMPROMISED (for operating system state) or GOOD, PATCHING, COMPROMISED or OVERWHELMED (for service state)
***itemType: RED_POL**
Defines a red agent pattern-of-life instruction. It should consist of:
***id** [int]: Unique ID for this YAML item
***startStep** [int]: The start step (in the episode) for this PoL to begin
***endStep** [int]: Not currently used. Default to same as start step
***state** [enum]: The state to apply to the node (which represents the PoL change). Can be one of ON, OFF or RESETTING (for node state) or GOOD, PATCHING or COMPROMISED (for operating system state) or GOOD, PATCHING, COMPROMISED or OVERWHELMED (for service state) or GOOD, CORRUPT, DESTROYED, REPAIRING or RESTORING (for file system state)
***sourceNodeId** [int] The ID of the source node containing the service to check (used for SERVICE initiator)
***sourceNodeService** [freetext]: The service on the source node to check (used for SERVICE initiator). Must match a value in the services list for this node
***sourceNodeServiceState** [enum]: The state of the source node service to check (used for SERVICE initiator). Can be one of GOOD, PATCHING, COMPROMISED or OVERWHELMED