Merge pull request #4 from Autonomous-Resilient-Cyber-Defence/dev

v2.0.0
This commit is contained in:
Chris McCarthy
2023-07-27 11:42:13 +01:00
committed by GitHub
3 changed files with 53 additions and 20 deletions

41
LICENSE
View File

@@ -1,21 +1,28 @@
MIT License
GFX License
Copyright (c) 2023 - 2025 Defence Science and Technology Laboratory UK (https://dstl.gov.uk)
GFX Conditions
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
These GFX conditions confirm the provision of the following artefacts as GFX by Defence Science and Technology
Laboratory UK (DSTL) to QinetiQ Training and Simulation Ltd (QTSL) (and subcontractors engaged in activity on task by
request to the QQ mailbox):
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
- PrimAITE Overview
- Access to PrimAITE & user instructions
- Track 2 tech support
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Suppliers will be required to sign up to the QTSL Collaborative Working Environment (CWE) SyOPs and fill out a User
Access Request Form. Provided they have a minimum of Cyber Essentials, and the user has the required clearance, they
will then be provided with credentials to access the site by QQ.
DSTL mandate that any changes made to the PrimAITE source code be passed back to QTSL (during or on termination of the
task) so that QQ can capture any potential enhancements to PrimAITE.
This contains OFFICIAL information to be used to inform work on ARCD tasks (under SERAPIS).
The material is supplied in confidence to QQ and their subcontractors under SERAPIS, and is issued to inform only those
that need to know its contents in the course of their official duties whilst engaged in activities under the contract.
The material consists of proprietary information which is the property of the Crown. The information contained within
the material may constitute valuable technical information and be commercially sensitive in relation to third parties;
therefore it may not be used or copied for any non-Governmental or commercial purpose without the prior written consent
of DSTL. The material must be stored and protected appropriately.All material must be destroyed at the end of the task.
Please note the contractual obligations relating to provision of these materials.

View File

@@ -1,12 +1,38 @@
# PrimAITE
PrimAITE (Primary-level AI Training Environment) is a simulation environment for training AI under the ARCD programme.
The ARCD Primary-level AI Training Environment (**PrimAITE**) provides an effective simulation capability for the purposes of training and evaluating AI in a cyber-defensive role. It incorporates the functionality required of a primary-level ARCD environment, which includes:
- The ability to model a relevant platform / system context;
- The ability to model key characteristics of a platform / system by representing connections, IP addresses, ports, traffic loading, operating systems, services and processes;
- Operates at machine-speed to enable fast training cycles.
PrimAITE presents the following features:
- Highly configurable (via YAML files) to provide the means to model a variety of platform / system laydowns, mission profiles and adversarial attack scenarios;
- A Reinforcement Learning (RL) reward function based on (a) the ability to counter the specific modelled adversarial cyber-attack, and (b) the ability to ensure mission success;
- Provision of logging to support AI evaluation and metrics gathering;
- Uses the concept of Information Exchange Requirements (IERs) to model background pattern of life, adversarial behaviour and mission data (on a sliding scale of criticality);
- An Access Control List (ACL) function, mimicking the behaviour of a network firewall, is applied across the model, following standard ACL rule format (e.g. DENY/ALLOW, source IP address, destination IP address, protocol and port);
- Application of IERs to the platform / system laydown adheres to the ACL ruleset;
- Presents an OpenAI gym or RLLib interface to the environment, allowing integration with any OpenAI gym compliant defensive agents;
- Full capture of discrete logs relating to agent training (full system state, agent actions taken, instantaneous and average reward for every step of every episode);
- NetworkX provides laydown visualisation capability.
## Getting Started with PrimAITE
### 💫 Install & Run
**PrimAITE** is designed to be OS-agnostic, and thus should work on most variations/distros of Linux, Windows, and MacOS.
Currently, the PRimAITE wheel can only be installed from GitHub. This may change in the future with release to PyPi.
Currently, the PrimAITE wheel can only be installed from GitHub. This may change in the future with release to PyPi.
#### Windows (PowerShell)

View File

@@ -10,7 +10,7 @@ license = {file = "LICENSE"}
requires-python = ">=3.8, <3.11"
dynamic = ["version", "readme"]
classifiers = [
"License :: OSI Approved :: MIT License",
"License :: GFX",
"Development Status :: 5 - Production/Stable",
"Operating System :: Microsoft :: Windows",
"Operating System :: MacOS",