Commit Graph

824 Commits

Author SHA1 Message Date
Chris McCarthy
af036f63f1 #2357 - Allowed the config to not have nodes, links and agents and still be parsed 2024-03-01 22:37:51 +00:00
Czar Echavez
78ff658e30 #2356: optional dmz port + optional external acl rules 2024-03-01 16:48:05 +00:00
Czar Echavez
69b7ca1703 Merge remote-tracking branch 'origin/dev' into feature/2257-router-routes-cannot-be-represented-in-config-file 2024-02-29 15:21:20 +00:00
Czar Echavez
49a4e1fb56 #2257: added common node attributes page + ability to set node operating state via config + tests 2024-02-29 15:20:54 +00:00
Chris McCarthy
8f0de8521e #2326 - removed port_name print statement 2024-02-29 14:08:42 +00:00
Chris McCarthy
cf0674ce22 #2326 - Network Interface port name/num fixed so that it carries through to sys log and PCAP outputs. 2024-02-29 13:00:27 +00:00
Czar Echavez
eefc2739c8 Merge remote-tracking branch 'origin/dev' into feature/2257-router-routes-cannot-be-represented-in-config-file 2024-02-29 11:34:56 +00:00
Marek Wolan
ce39387f92 Merge 'origin/dev' into feature/2317-refactor-reset 2024-02-29 10:16:42 +00:00
Marek Wolan
8730330f73 Apply PR suggestions 2024-02-29 10:14:31 +00:00
Czar Echavez
13db07dc11 Merge remote-tracking branch 'origin/dev' into feature/2257-router-routes-cannot-be-represented-in-config-file 2024-02-28 15:09:23 +00:00
Czar Echavez
6d43c61058 #2257: apply PR suggestions 2024-02-28 15:08:00 +00:00
Chris McCarthy
63ea5478ab #2238 - Updated uc2_demo.ipynb to explain the NMNE in observation space 2024-02-28 13:56:19 +00:00
Chris McCarthy
d55b6a5b48 #2238 - Fixed the observations issue causing tests to fail 2024-02-28 12:03:58 +00:00
Marek Wolan
33d2ecc26a Apply suggestions from code review. 2024-02-26 16:58:43 +00:00
Czar Echavez
f2d7a2fc16 #2257: added way to ensure nodes are on at start + more test to make sure nodes are on when added via config 2024-02-26 14:34:34 +00:00
Marek Wolan
2076b011ba Put back default router rules 2024-02-26 14:26:47 +00:00
Marek Wolan
a5043a8fbe Modify tests based on refactoring 2024-02-26 12:15:53 +00:00
Czar Echavez
d738a23709 #2257: list of db payloads 2024-02-26 11:35:17 +00:00
Marek Wolan
e5982c4599 Change agents list in game object to dictionary 2024-02-26 10:26:28 +00:00
Marek Wolan
63c9a36c30 Fix typos 2024-02-25 18:36:20 +00:00
Marek Wolan
994dbc3501 Finalise the refactor. It works well now. 2024-02-25 17:44:41 +00:00
Marek Wolan
a34cf08209 Merge remote-tracking branch 'origin/dev' into feature/2317-refactor-reset 2024-02-25 16:41:40 +00:00
Marek Wolan
c115095157 Fix router from config using wrong method 2024-02-25 16:17:12 +00:00
Czar Echavez
fb148dc4fb #2257: applications and services docs 2024-02-23 16:49:01 +00:00
Chris McCarthy
52677538a8 #2238 - Tidied up code, added more docstrings, and implemented suggestions from PR. 2024-02-23 15:12:46 +00:00
Marek Wolan
f933341df5 eod commit 2024-02-23 10:06:48 +00:00
Czar Echavez
ef61fe219c Merge remote-tracking branch 'origin/dev' into feature/2257-router-routes-cannot-be-represented-in-config-file 2024-02-23 08:56:35 +00:00
Chris McCarthy
771a68dccb #2238 - Implement NMNE detection and logging in NetworkInterface.
- Enhance NicObservation for detailed NMNE event monitoring.
- Add nmne_config options to simulation settings for customizable NMNE capturing.
- Update documentation and tests for new NMNE features and simulation config.
2024-02-22 22:43:14 +00:00
Czar Echavez
98fb28cbbc #2257: setting up application and service docs 2024-02-21 18:19:16 +00:00
Czar Echavez
deb7a3aa9d #2257: massive docs addition for config file 2024-02-21 14:49:59 +00:00
Marek Wolan
8f85555709 Merged PR 278: Enable the red agent to vary its start node
## Summary
- Made the data manipulation red agent be able to choose between the two clients to start operating on
- changed the attacker name in the config to 'data_manipulation_attacker' to because it is no longer tied to any client
- Updated the documentation notebook accordingly.
- Fixed a bug where the database client made a new connection every time it sent a SQL query (it tries to reuse its most recent one instead)
- Fixed a bug where link loads were not being cleared between episodes (?)

**warning** - the green agents are not working properly after reset right now, but I'm gonna fix this in the next ticket where I refactor episode reset.

## Test process
- unit tests pass
- UC2 notebook passes with both clients. (currently this doesn't work after an episode reset, but the very next thing I'm gonna work on is refactoring the reset, so I don't want to waste time fixing this.)

## 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
- [x] updated the **change log**
- [x] ran **pre-commit** checks for code style
- [n] attended to any **TO-DOs** left in the code

Related work items: #2232
2024-02-20 20:22:20 +00:00
Marek Wolan
72f4cc0a50 Remove reset methods from most classes 2024-02-20 16:56:25 +00:00
Marek Wolan
f82506023b Delete set_original_state method definitions 2024-02-20 16:29:27 +00:00
Marek Wolan
64b9ba3ecf Make environment reset reinstantiate the game 2024-02-20 16:21:03 +00:00
Marek Wolan
88f8e9cb42 Add todo comment. 2024-02-20 12:09:32 +00:00
Marek Wolan
f7c1da3118 Update MARL config. 2024-02-20 12:06:30 +00:00
Marek Wolan
4a3c66bdc6 Clear notebook code cells. 2024-02-20 12:04:07 +00:00
Marek Wolan
701781b23e Clear link load in new timestep 2024-02-20 11:05:09 +00:00
Marek Wolan
945db1341b Make database client try to use most recent connection instead of generating new one 2024-02-20 11:04:53 +00:00
Czar Echavez
48d7f9f85a Merge remote-tracking branch 'origin/dev' into feature/2257-router-routes-cannot-be-represented-in-config-file 2024-02-15 15:45:44 +00:00
Czar Echavez
b739823318 #2257: add firewall via config + fix router hop ip address + shuffling around tests 2024-02-15 15:45:18 +00:00
Czar Echavez
23a56ca59f Merged PR 270: #2258: DoSBot cannot be added via configuration file
## Summary
- Added ability to set DoSBot in nodes via config file
- Fixed missing configuration items in other services/applications
- Created a variable which contains the list of applications and services
- Moved `DatabaseClient` from list of services to list of applications

## Test process
Created a configuration file where a node has all services and applications installed, this is then used by an integration test which loads the configuration file. The test checks to make sure that the configuration file is correctly read and the Service and Application objects are properly created

## Checklist
- [X] PR is linked to a **work item**
- [ ] **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**
- [ ] ran **pre-commit** checks for code style
- [ ] attended to any **TO-DOs** left in the code

Related work items: #2258
2024-02-15 09:36:08 +00:00
Nick Todd
4a38672fea 2306: Handle INSERT query 2024-02-14 13:18:20 +00:00
Czar Echavez
ab7c7b9c06 Merge remote-tracking branch 'origin/dev' into feature/2257-router-routes-cannot-be-represented-in-config-file 2024-02-13 17:37:34 +00:00
Czar Echavez
98a4fbecb5 Merge remote-tracking branch 'origin/dev' into feature/2258-dosbot-cannot-be-added-via-configuration-file 2024-02-13 16:04:02 +00:00
Christopher McCarthy
9835b31dc5 Merged PR 272: #2205 - Firewall Node
## Description:

This pull request introduces the Firewall class and extends the ACLRule functionality within PrimAITE to provide comprehensive network traffic management and security capabilities. These enhancements enable detailed control over data flow through network simulations, mimicking real-world firewall operations and ACL configurations. The updates focus on the addition of a Firewall node that extends the Router class functionalities and the enhancement of ACLRule to support IP ranges through wildcard masking, thus offering granular traffic filtering based on IP addresses, protocols, ports, and more.

## Key Features:

**Firewall Class:** A new class that extends the Router class, incorporating firewall-specific logic for inspecting, directing, and filtering traffic between the internal, external, and DMZ (De-Militarized Zone) network interfaces. The Firewall class supports configuring network interfaces and applying Access Control Lists (ACLs) for inbound and outbound traffic control.

**Enhanced ACLRule:** The ACLRule class has been updated to support IP ranges using wildcard masking. This allows for more flexible rule definitions, enabling users to specify broad network ranges or individual IP addresses in ACL rules.

**Comprehensive ACL Configuration:** Six distinct ACLs (internal inbound, internal outbound, DMZ inbound, DMZ outbound, external inbound, and external outbound) provide meticulous control over traffic flow, ensuring robust network security. Examples included in the documentation illustrate how to configure ACLs for common scenarios, such as blocking external threats, permitting specific services, and restricting access to sensitive internal resources.

**Intuitive Interface and ACL Management:** Simplified methods for configuring firewall interfaces and ACL rules enhance usability. The Firewall class offers intuitive functions for rule management, including adding, removing, and listing ACL rules.

**Detailed Documentation and Examples:** Accompanying the code updates, comprehensive documentation and example configurations are provided, detailing the use and configuration of the Firewall node and ACL rules within PrimAITE simulations.

## Impact:

The introduction of the Firewall class and the enhancement of ACLRule significantly broaden PrimAITE's capabilities for simulating realistic network security scenarios. Users can now accurately model the behavior of firewalls in their network simulations, applying complex ACLs to control traffic flow and enforce security policies. This update enables more detailed network security analyses, teaching, and experimentation within the PrimAITE environment.

## Test process
Extensive unit tests have been added to cover the new functionality, ensuring reliability and correctness. Tests include scenarios for firewall configuration, ACL rule application, traffic filtering based on various criteria, and interaction between different network zones.

## Checklist
- [X] PR is linked to ...
2024-02-13 13:56:56 +00:00
Czar Echavez
b277034e8b #2257: temporarily commit changes - added startup and shut down durations to node config + adding routes 2024-02-13 13:02:24 +00:00
Chris McCarthy
7b64d99a63 #2205 - Final suggestions from PR 2024-02-13 12:56:41 +00:00
Czar Echavez
f4369a4fff Merge remote-tracking branch 'origin/dev' into feature/2257-router-routes-cannot-be-represented-in-config-file 2024-02-13 10:50:45 +00:00
Nick Todd
fa08e53b15 2297: Convert NTP Client and Server to UDP 2024-02-12 17:01:53 +00:00