Giter Site home page Giter Site logo

harri-renney / yawning-titan Goto Github PK

View Code? Open in Web Editor NEW

This project forked from dstl/yawning-titan

0.0 0.0 0.0 653 KB

YAWNING TITAN is an abstract, graph based cyber-security simulation environment that supports the training of intelligent agents for autonomous cyber operations.

License: MIT License

Python 96.57% Jupyter Notebook 3.43%

yawning-titan's Introduction

YAWNING TITAN

About The Project

YAWNING TITAN is an abstract, graph based cyber-security simulation environment that supports the training of intelligent agents for autonomous cyber operations. YAWNING TITAN currently only supports defensive autonomous agents who face off against probabilistic red agents.

YAWNING TITAN has been designed with the following things in mind:

  • Simplicity over complexity
  • Minimal Hardware Requirements
  • Support for a wide range of algorithms
  • Enhanced agent/policy evaluation support
  • Flexible environment and game rule setup
  • Generation of evaluation episode visualisations (gifs)

YAWNING TITAN was publicly released on 20th July 2022 under MIT licence. It will continue to be developed through the Autonomous Resilient Cyber Defence (ARCD) project, overseen by Dstl.

Feedback on its operation, and suggestions for enhancements, is gratefully received via the Issues tab.

As the YAWNING TITAN project progresses, updates will be posted on this site.

What's YAWNING TITAN built with

Getting Started with YAWNING TITAN

Pre-Requisites

In order to get YAWNING TITAN installed, you will need to have the following installed:

  • python3.8+
  • python3-pip
  • virtualenv

Installation

  1. Navigate to the YAWNING TITAN folder and create a new python virtual environment
python3 -m venv <name_of_venv>
  1. Activate virtual environment
source <name_of_venv>/bin/activate
  1. Install yawning-titan into the environment along with all of it's dependencies
python3 -m pip install -e .

This will install all of the dependencies including algorithm libraries. These libraries all use torch. If you'd like to install tensorflow for use with Rllib, you can do this manually or install tensorflow as an optional dependency by executing the following command python3 -m pip install -e .[tensorflow].

Documentation

YAWNING TITAN comes with a full set of documentation created using the Sphinx documentation library and these can be built by using the following commands:

This will require the development dependencies to be installed - You can install these by executing python3 -m pip install -e .[dev]

cd docs
make html

This will build the documentation as a collection of HTML files which uses the Read The Docs sphinx theme. Other build options are available but may require additional dependencies such as LaTeX and PDF. Please refer to the Sphinx documentation for your specific output requirements.

Example Notebooks

A collection of example notebooks have been provided in /notebooks and are the best place to start if you want to get a feel for YAWNING TITAN before builidng the docs and exploring further.

Cite This Work

If you would like to include a citation for YAWNING TITAN in your work, please cite the paper published at the ICML 2022 ML4Cyber Workshop.

@inproceedings{inproceedings,
 author = {Andrew, Alex and Spillard, Sam and Collyer, Joshua and Dhir, Neil},
 year = {2022},
 month = {07},
 title = {Developing Optimal Causal Cyber-Defence Agents via Cyber Security Simulation},
 maintitle = {International Confernece on Machine Learning (ICML)},
 booktitle = {Workshop on Machine Learning for Cybersecurity (ML4Cyber)}
}

License

YAWNING TITAN is released under MIT license. Please see LICENSE for details.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.