Added GFX license conditions. Included LICENSE file in build. Fixed a few character issues in README.md
This commit is contained in:
28
LICENSE
Normal file
28
LICENSE
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
GFX License
|
||||||
|
|
||||||
|
GFX 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):
|
||||||
|
|
||||||
|
- PrimAITE Overview
|
||||||
|
- Access to PrimAITE & user instructions
|
||||||
|
- Track 2 tech support
|
||||||
|
|
||||||
|
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.
|
||||||
28
README.md
28
README.md
@@ -1,38 +1,38 @@
|
|||||||
# PrimAITE
|
# PrimAITE
|
||||||
|
|
||||||
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 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 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;
|
- 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.
|
- Operates at machine-speed to enable fast training cycles.
|
||||||
|
|
||||||
PrimAITE presents the following features:
|
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;
|
- 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;
|
- 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;
|
- 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);
|
- 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);
|
- 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;
|
- 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;
|
- 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);
|
- 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.
|
- NetworkX provides laydown visualisation capability.
|
||||||
|
|
||||||
## Getting Started with PrimAITE
|
## Getting Started with PrimAITE
|
||||||
|
|
||||||
### 💫 Install & Run
|
### 💫 Install & Run
|
||||||
**PrimAITE** is designed to be OS-agnostic, and thus should work on most variations/distros of Linux, Windows, and MacOS.
|
**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)
|
#### Windows (PowerShell)
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ build-backend = "setuptools.build_meta"
|
|||||||
name = "primaite"
|
name = "primaite"
|
||||||
description = "PrimAITE (Primary-level AI Training Environment) is a simulation environment for training AI under the ARCD programme."
|
description = "PrimAITE (Primary-level AI Training Environment) is a simulation environment for training AI under the ARCD programme."
|
||||||
authors = [{name="Defence Science and Technology Laboratory UK", email="oss@dstl.gov.uk"}]
|
authors = [{name="Defence Science and Technology Laboratory UK", email="oss@dstl.gov.uk"}]
|
||||||
license = {text = "GFX"}
|
license = {file = "LICENSE"}
|
||||||
requires-python = ">=3.8, <3.11"
|
requires-python = ">=3.8, <3.11"
|
||||||
dynamic = ["version", "readme"]
|
dynamic = ["version", "readme"]
|
||||||
classifiers = [
|
classifiers = [
|
||||||
@@ -47,6 +47,7 @@ readme = {file = ["README.md"]}
|
|||||||
[tool.setuptools]
|
[tool.setuptools]
|
||||||
package-dir = {"" = "src"}
|
package-dir = {"" = "src"}
|
||||||
include-package-data = true
|
include-package-data = true
|
||||||
|
license-files = ["LICENSE"]
|
||||||
|
|
||||||
|
|
||||||
[project.optional-dependencies]
|
[project.optional-dependencies]
|
||||||
|
|||||||
Reference in New Issue
Block a user