diff --git a/LICENSE b/LICENSE index 93d6f98b..a47c5477 100644 --- a/LICENSE +++ b/LICENSE @@ -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. diff --git a/README.md b/README.md index 326cc27e..d36c687e 100644 --- a/README.md +++ b/README.md @@ -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) diff --git a/pyproject.toml b/pyproject.toml index c2c8076b..a33b2183 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -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",