Commit Graph

1176 Commits

Author SHA1 Message Date
Marek Wolan
4d1c0d268e Fix reward data type 2024-01-11 11:05:55 +00:00
Marek Wolan
b11e4c8ccd update changelog 2024-01-11 11:05:00 +00:00
Marek Wolan
f283afc04a Merged PR 256: Align the database backup and corruption processes with IYak
## Summary
**Changed:**
- Copying a file via FTP also copies its health status
- The database automatically attempts to make a backup on step 1
- make the db file a property that is fetched by name from the file system instead of a handle to a file (bruh)
- fixed ftp server re-sending requests back to the client
- fix issue where links with >100% bandwidth cause the observation space to crash
- fix issue where starting a node didn't start services. (not sure how that one passed tests previously)

**To align with Yak:**
- database service removed from uc2 observation space
- sql attack affects the file health status instead of the service
- when the web server fails to fetch data, it goes into compromised state until a successful data fetch

## Test process
Notebooks

## Checklist
- [x] PR is linked to a **work item**
- [x] **acceptance criteria** of linked ticket are met
- [x] performed **self-review** of the code
- [ ] written **tests** for any new functionality added with this PR
- [ ] updated the **documentation** if this PR changes or adds functionality
- [ ] written/updated **design docs** if this PR implements new functionality
- [ ] 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: #2176
2024-01-11 10:54:25 +00:00
Marek Wolan
d2a2472e5f Apply bugfix 2151 2024-01-11 10:49:32 +00:00
Marek Wolan
e57c240b9b Apply cosmetic changes based on review. 2024-01-11 09:55:09 +00:00
Marek Wolan
2d1041e7b3 Fix final bugs 2024-01-10 18:38:37 +00:00
Marek Wolan
1505d08721 Fix backup issues and align with Yak 2024-01-10 18:04:48 +00:00
Marek Wolan
b34f2a5c8c Merged PR 253: Make observations use software health state visible instead of actual.
We already merged this change into dev, I just replicated it for b5.

Related work items: #2161, #2174
2024-01-10 13:53:05 +00:00
Marek Wolan
3486347566 Merged PR 252: Align Software health state enum with CAOS
Related work items: #2175
2024-01-10 13:52:46 +00:00
Marek Wolan
9fce9ceea4 Merged PR 255: Fix issue where red agent acted too early
## Fixed:
- data manipulation red agent now considers episode reset when calculating next action time
- Moved attack logic out of data manipulation bot `run` method into dedicated `attack` method, because `run` is triggered by episode reset logic. This means the attack no longer always happens at step 1 of every episode.

## Test process
*How have you tested this (if applicable)?*

## Checklist
- [x] PR is linked to a **work item**
- [x] **acceptance criteria** of linked ticket are met
- [x] performed **self-review** of the code
- [ ] written **tests** for any new functionality added with this PR
- [na] updated the **documentation** if this PR changes or adds functionality
- [na] 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: #2173
2024-01-10 13:52:33 +00:00
Czar Echavez
62197fe72b Merged PR 254: #2151: remove changing of health_state_actual in actions and tests
## Summary
Removed the changing of health_state_actual from the actions - only few places where the health_state_actual is changed:
- compromised in specific scripted events
- set to good when started (if the state is still at UNUSED
- set to good after patching

## Test process
unit tests
https://dev.azure.com/ma-dev-uk/PrimAITE/_git/PrimAITE/pullrequest/254?_a=files&path=/tests/unit_tests/_primaite/_simulator/_system/_services/test_services.py

## 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
- [ ] updated the **documentation** if this PR changes or adds functionality
- [ ] written/updated **design docs** if this PR implements new functionality
- [ ] updated the **change log**
- [X] ran **pre-commit** checks for code style
- [ ] attended to any **TO-DOs** left in the code

#2151: remove changing of health_state_actual in actions and tests

Related work items: #2151, #2166
2024-01-10 13:35:51 +00:00
Marek Wolan
9d06284edb Merge remote-tracking branch 'origin/dev-v3.0.0b5' into bugfix/2176-attack-observation-symptoms 2024-01-10 13:07:23 +00:00
Marek Wolan
66a42ebc69 Make database failure based on file status not service status 2024-01-10 13:06:48 +00:00
Czar Echavez
c985b8793d #2151 and #2166: added tests for application being unused + even more tests 2024-01-10 11:58:36 +00:00
Marek Wolan
b6e414bd70 Update changelog 2024-01-10 09:14:07 +00:00
Marek Wolan
b7cc940e9d Remove temporary print statements 2024-01-10 09:07:51 +00:00
Marek Wolan
e73783f6fa Fixed issue where data manipulation was always executing 2024-01-09 17:10:12 +00:00
Czar Echavez
a4d372d3eb #2151: utilise set_health_state method instead of directly changing software states 2024-01-09 16:29:40 +00:00
Czar Echavez
9eb0102069 Merge remote-tracking branch 'origin/dev' into bugfix/2151-service-status-set-to-overwhelmed-at-incorrect-actions 2024-01-09 15:29:49 +00:00
Czar Echavez
6fc4e15660 #2151: remove changing of health_state_actual in actions and tests 2024-01-09 15:18:31 +00:00
Marek Wolan
daa34385e5 Add agent reset for episodes 2024-01-09 14:53:15 +00:00
Marek Wolan
f2a496893c Bump VERSION 2024-01-09 14:33:24 +00:00
Marek Wolan
716bd626a5 Hide software health state until scan. 2024-01-09 14:29:23 +00:00
Marek Wolan
91addee09d Merged PR 248: Make observation flattening optional for agents.
## Summary
Same as other PR but this time we are merging into DEV.

The Proxy agent has a new config option, `flatten_obs`. If true, we use gymnasium flatten.

## Test process
Unit tests and inspection.

Related work items: #2143, #2154, #2161
2024-01-09 14:28:36 +00:00
Marek Wolan
82cd8780f9 Align Software health state enum with CAOS 2024-01-09 14:03:10 +00:00
Marek Wolan
5d89820a15 Apply PR review suggestions 2024-01-09 12:38:01 +00:00
Marek Wolan
7c0ff8e3f0 Add acl remove rule integration test. 2024-01-08 16:24:09 +00:00
Marek Wolan
534f84ccd1 Add action tests. 2024-01-08 13:29:17 +00:00
Marek Wolan
294c8b982f Add convenience method for router acl 2024-01-08 13:28:55 +00:00
Marek Wolan
27f70204ed Fix minor issues in actions 2024-01-08 13:28:34 +00:00
Christopher McCarthy
7c0ab1a19e Merged PR 243: #2139 - Implemented routing
## Summary
- Integrated the RouteTable into the Routers frame processing.
- Frames are now dropped when their TTL reaches 0

## Test process
Added five tests that check routing passes and fails with correct/incorrect route tables.

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

#2139 - Implemented routing

Related work items: #2139
2024-01-08 11:17:16 +00:00
Marek Wolan
2f97dcb6f9 Merge remote-tracking branch 'origin/dev' into feature/2137-refactor-request-api 2024-01-08 10:39:24 +00:00
Chris McCarthy
8b43f6abe3 #2139 - updated docstring in send_arp_request function in base.py 2024-01-08 10:30:38 +00:00
Chris McCarthy
59d1a6668e #2139 - Updated the CHANGELOG.md with broadcast entry 2024-01-05 22:19:54 +00:00
Chris McCarthy
d2d628b676 #2139 - Fixed unicast and broadcast functionality properly 2024-01-05 22:11:37 +00:00
Chris McCarthy
ddf7fbf88b #2139 - Included a test that tests services over multi-hop routing. Added some PR suggestions around logging. 2024-01-05 15:27:10 +00:00
Marek Wolan
33f72db1cb Updated VERSION 2024-01-05 14:03:06 +00:00
Marek Wolan
0d07364669 Merged PR 246: Make flattening observation spaces optional.
## Summary
Simple change that gives the user an option to turn on/off observation space flattening.

## Test process
Confirmed that if the new setting is set to 'false', SB3 complains about composite spaces, but RL agents notebook works fine.

## Checklist
- [x] PR is linked to a **work item**
- [x] **acceptance criteria** of linked ticket are met
- [x] performed **self-review** of the code
- [ ] 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

Make flattening observation spaces optional.

Related work items: #2161
2024-01-05 13:50:22 +00:00
Marek Wolan
d038f63fda Clear notebook output 2024-01-05 13:11:47 +00:00
Marek Wolan
f75c10aafb Make flattening observation spaces optional. 2024-01-05 13:10:49 +00:00
Marek Wolan
b8312b8a2b Merged PR 244: Make pcap and sys logging optional (beta 4)
## Summary
Very straightforward change. Just added some config parameters to make pcap and sys logs optional. These options default to false.

## Test process
Verified that both options produce the desired result by running a primaite session with logs enabled and disabled in the config. Unit tests still pass.

## Checklist
- [x] PR is linked to a **work item**
- [x] **acceptance criteria** of linked ticket are met
- [x] performed **self-review** of the code
- [ ] written **tests** for any new functionality added with this PR
- [ ] 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: #2143, #2154
2024-01-05 12:40:13 +00:00
Marek Wolan
4266618ba5 Make pcap logs and sys logs optional 2024-01-05 11:25:57 +00:00
Marek Wolan
81734e7ad3 Merged PR 241: Add service patch and fix apply timestep issues.
## Summary
Replaces Action ID 13 in UC2 with SERVICE.PATCH.
Fixes issue where apply_timestep was not happening at all
Fixes issue where file actions were not correctly being forwarded

## Test process
All pytests passing including a new one for service patch.

## 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
- [ ] updated the **documentation** if this PR changes or adds functionality
- [ ] written/updated **design docs** if this PR implements new functionality
- [ ] 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: #2143
2024-01-05 09:58:16 +00:00
Marek Wolan
bc08db6b7e Merged PR 240: Add service patch action and fix some clangers.
## Summary
- Replaces Action ID 13 in UC2 with SERVICE.PATCH.
- Fixes issue where `apply_timestep` was not happening at all
- Fixes issue where file actions were not correctly being forwarded

## Test process
Unit tests passing
Running primaite session works without errors
Ran primaite session on UC2 in debug mode and inspected that correct changes are being reflected after actions are applied.

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

Related work items: #2143
2024-01-05 09:56:33 +00:00
Marek Wolan
7d81b1cb07 Merged PR 242: Change software describe state keys
## Summary
Tiny change to change the names of the keys in `software.describe_state()`
Also fixed the observation to use the visible health state instead of the actual health state (and therefore the blue agent will actually have to scan to learn the health state)

## Test process
Unit tests pass

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

Change software describe state keys

Related work items: #2160
2024-01-04 14:50:37 +00:00
Marek Wolan
ec7723732b Merge remote-tracking branch 'origin/dev' into feature/2137-refactor-request-api 2024-01-04 14:40:20 +00:00
Marek Wolan
bc367222a8 Change software describe state keys 2024-01-04 12:55:46 +00:00
Marek Wolan
528e3b22a9 Add integration tests 2024-01-04 12:47:35 +00:00
Marek Wolan
25c8ec2ec9 Add skeleton for action integration and unit tests 2024-01-03 18:19:10 +00:00
Marek Wolan
48f1d13fd8 Minor refactor and add comment 2024-01-03 16:23:44 +00:00