Commit Graph

2646 Commits

Author SHA1 Message Date
Marek Wolan
317549225f Merge remote-tracking branch 'origin/dev' into feature/1463-multidiscrete-observation-option 2023-05-31 10:46:18 +01:00
SunilSamra
82371b210e Merge remote-tracking branch 'origin/dev' into feature/893-node-acl-into-one-action-space 2023-05-31 10:34:42 +01:00
Sunil Samra
c0f67af204 Merged PR 64: 1443-check-reward-function
In reward.py, the comparisons for the IF statements used when assigning config_values reward values currently compares the initial state to the reference state. However, it should be comparing the reference state (What it should be without any blue/red agent interference) and the final state (state after red and blue actions have taken affect).

Change the IF statement logic to say if `reference_node_os_state` and then in the following IF statement if `final_node_os_state` to compare it.
Do this for all reward functions
Write tests to evaluate step rewards

Related work items: #1443
2023-05-31 09:31:01 +00:00
Marek Wolan
6294a873ea Added pull_request_template.md 2023-05-31 09:26:40 +00:00
Sunil Samra
f843f6e149 Apply suggestions from code review 2023-05-31 08:09:09 +00:00
Marek Wolan
3eaf210d93 Update docs on MultiDiscrete observation spaces. 2023-05-30 16:54:34 +01:00
Marek Wolan
082e3b7307 Add test for new multidiscrete spaces 2023-05-30 15:48:11 +01:00
Marek Wolan
7bc938229b Update configs and transactions to include new obs 2023-05-30 15:24:13 +01:00
Marek Wolan
23f0f41378 Fix observation node shape 2023-05-30 15:16:14 +01:00
Marek Wolan
3a1f0b7659 Configure observation type MULTIDISCRETE 2023-05-30 15:11:41 +01:00
Marek Wolan
847c0fe2ae Setup testing scripts 2023-05-30 13:14:43 +01:00
SunilSamra
7aa8d89dfe 1443 - updated test_reward.py to reflect updates to reward.py so that the correct config values are called i.e. compromisedShouldBeGood on the correct steps during the training run 2023-05-30 11:50:54 +01:00
SunilSamra
9d34dceddc 1443 - changed IF statements from if initial ... if reference to if reference ... if final to compare the final state (state after red and blue actions) with the reference state (state with no red or blue action and with green normal network traffic occurring) 2023-05-30 11:40:40 +01:00
Marek Wolan
dd780b7451 Make reward calculation consider red POL 2023-05-30 08:50:57 +00:00
Marek Wolan
843f32bf71 Fix minor logic errors in main script 2023-05-26 14:50:15 +01:00
SunilSamra
e2fb03b9bd 1429 - added code from ADSP branch to primaite_env.py and added NONE = 0 to NodePOLType in enums.py 2023-05-26 14:29:02 +01:00
SunilSamra
3cd5864f25 1429 - created new branch from dev, added enums to enums.py, created agents package and utils.py file, added option to primaite_env.py for ANY action type and changed the action spaces are defined using ADSP branch 2023-05-26 10:17:45 +01:00
Christopher McCarthy
f7638ddb0c Merged PR 60: #1355 - Carried out full renaming in node.py, active_node.py, passive_node.py...
**The following changes are made to constructor params in the Node class and its children (ActiveNode, PassiveNode, and ServiceNode):**
- _id -> node_id
- _name -> name
- _type -> node_type
- _priority -> priority
- _state -> hardware_state
- _ip_address -> ip_address
- _os_state -> software state
- _file_system_state -> file_system_state
- _config_values -> config_values
- Add type hints to all params.

(node_id, name, and ip_address are str, states and other defines types are the respective enums, leave config_values without a type for now.)

**The following changes are made to instance variables in the Node class and its children:**
- self.type -> self.node_type
- self.operating_state -> self.hardware_state
- self.os_state -> self.software_state
- Add type hints to all instance variables.

(node_id, name, and ip_address are str, states and other defines types are the respective enums, leave config_values without a type for now.)

**The following changes are made to the config files where itemType is NODE:**
- itemType -> item_type
- id -> node_id
- portsList -> ports_list
- serviceList -> service_list
- baseType -> base_type
- nodeType -> node_type
- hardwareState -> hardware_state
- ipAddress -> ip_address
- softwareState -> software_state
- fileSystemState -> file_system_state

**The following changes are made in the primaite/environment/primaite_env.py module:
In the create_node function, the id of the node needs to be retrieved using the new "node_id" key.**
- _id -> node_id
- _name -> name
- _type -> node_type
- _priority -> priority
- _state -> hardware_state
- _ip_address -> ip_address
- _os_state -> software state
- _file_system_state -> file_system_state
- _config_values -> config_values

**Few other cosmetic/code style changes too:**
- Enum classes renamed to use CamelCase.
Started refactoring out unnescessary getters and setters by using `@property` and `@<property name>.setter`.
- Have started to add Type Hints.
- Have started to move docstrings over to the Sphinx ReStructured text format.

Related work items: #1355
2023-05-26 09:01:21 +00:00
Chris McCarthy
b62ea525e9 #1355 - Renamed the NodeType custom type in custom_typing.py as it clased with the NodeType enum in enums.py 2023-05-26 09:43:37 +01:00
Chris McCarthy
32a4d9e459 #1355 - Carried out full renaming in node.py, active_node.py, passive_node.py, and service_node.py to make params and variable names explicit.
- Made the same renaming in the yaml laydown config files.
- Added Type hints wherever I've been.
- Added a custom NodeType in custom_typing.py to encompass the Union of ActiveNode, PassiveNode, ServiceNode.
2023-05-25 21:03:11 +01:00
Christopher McCarthy
00e9d1f88d Merged PR 56: #902 - Fix the reward functionality for node operating system state
#902 - replaced 'final_node_<placeholder>' with 'reference_node_<placeholder>' in methods for scoring of os_state, file_system_state, service state and operating state. This fixed the reward function so it is checked at each step for node operating system state, operating state, file system state and service state.
- Added unit tests.

Related work items: #902
2023-05-25 15:28:19 +00:00
Christopher McCarthy
b462af0061 Merged PR 59: v1.2.1
v1.2.1
2023-05-25 14:23:55 +00:00
Christopher McCarthy
3e1ff0db17 Merged PR 58: v1.2.1
v1.2.1
2023-05-25 14:21:16 +00:00
Chris McCarthy
2e9b43f43b v1.2.1 v.1.2.1 2023-05-25 15:20:19 +01:00
SunilSamra
cabbe4797d 902 - changed test comment to explain the outcome of the average reward 2023-05-25 14:36:26 +01:00
Christopher McCarthy
af62d85aea Merged PR 57: Resync dev with v1.2.0
Resync dev with v1.2.0
2023-05-25 13:16:29 +00:00
Christopher McCarthy
b9fb2775c9 Merged PR 55: Release v1.2.0
Updated artifact-release-pipeline.yaml pipeline to build for Python 3.8 to 3.10 and MacOS, Windows, and Linux.
2023-05-25 13:11:20 +00:00
Chris McCarthy
fc1b374cb2 #902 - replaced 'final_node_<placeholder>' with 'reference_node_<placeholder>' in methods for scoring of os_state, file_system_state, service state and operating state. This fixed the reward function so it is checked at each step for node operating system state, operating state, file system state and service state.
- Added unit tests.
2023-05-25 14:05:53 +01:00
Christopher McCarthy
75581921ea Merged PR 54: #1356 - added if statements to set class methods for file system state, os st...
#1356 - added if statements to set class methods for file system state, os state and service states. Refactored file enums.py
- Added unit tests

Related work items: #1356
2023-05-25 12:33:16 +00:00
Chris McCarthy
4c13f79b06 Updated artifact-release-pipeline.yaml pipeline to build for Python 3.8 to 3.10 and MacOS, Windows, and Linux. v1.2.0 2023-05-25 13:24:49 +01:00
Christopher McCarthy
79ece6f78a Merged PR 53: release v1.2.0 2023-05-25 12:03:54 +00:00
Chris McCarthy
e1bcbd1a34 #1356 - added if statements to set class methods for file system state, os state and service states. Refactored file enums.py
- Added unit tests
2023-05-25 13:02:15 +01:00
Christopher McCarthy
e35360edb8 Merged PR 52: #1378 - Ordering of actions in step
#1378 - Re-arranged the action step function in the following order:
1. Implement the Blue Action
2. Perform any time-based activities
3. Apply PoL
4. Implement Red Action
5. Calculate reward signal
6. Output Verbose (currently disabled)
7. Update env_obs
8. Add transaction to the list of transactions

Related work items: #1378
2023-05-25 11:42:19 +00:00
Chris McCarthy
07cebc0a63 #1378 - Re-added post blue and snapshots 2023-05-25 12:37:42 +01:00
Chris McCarthy
958506ef33 #1378 - Re-arranged the action step function in the following order:
1. Implement the Blue Action
2. Perform any time-based activities
3. Apply PoL
4. Implement Red Action
5. Calculate reward signal
6. Output Verbose (currently disabled)
7. Update env_obs
8. Add transaction to the list of transactions
2023-05-25 11:58:54 +01:00
Chris McCarthy
4eb1658966 Ran pre-commit hook on all files and performed changes to fix flake8 failures 2023-05-25 11:42:19 +01:00
Chris McCarthy
aa8284897a Package restructuring and renaming for 1.2.0 2023-05-25 10:52:29 +01:00
Chris McCarthy
4f0d8807d6 Package restructuring 2023-05-25 10:31:37 +01:00
Christopher McCarthy
3aec6e5a96 Merged PR 7: v1.1.0
v1.1.0
v1.1.0
2023-04-06 10:07:40 +00:00
Chris McCarthy
73004f9bf9 Bumped version number to 1.1.0 in setup.py 2023-04-06 11:06:55 +01:00
Chris McCarthy
aa3f601b78 Committed the v1.1.0 code provided by James Short. Had to add setuptools==66 to setup.py as older versions of Gym are uninstallable with setuptools>=67 2023-04-06 11:04:09 +01:00
Christopher McCarthy
5063e221f2 Merged PR 2: Added Python version to release pipeline
Added Python version to release pipeline
v1.0.0
2023-03-28 16:39:10 +00:00
Chris McCarthy
7ff22cee0a Added Python version to release pipeline 2023-03-28 17:38:30 +01:00
Christopher McCarthy
20d6ed12b5 Merged PR 1: v1.0.0
Initial commit of v1.0.0. Updated the .gitignore for the standard Python gitignore. Added Azure DevOps release pipeline for proper artifact release from the start.
2023-03-28 16:36:07 +00:00
Chris McCarthy
7800f1f66e Initial commit of v1.0.0. Updated the .gitignore for the standard Python gitignore. Added Azure DevOps release pipeline for proper artifact release from the start. 2023-03-28 17:33:34 +01:00
Christopher McCarthy
fdbd5903bc Added README.md 2023-03-28 16:31:07 +00:00