Welcome to the Yawning-Titan docs!#
What is Yawning-Titan?#
Yawning-Titan is a collection of abstract, graph based cyber-security simulation environments that supports the training of intelligent agents for autonomous cyber operations based on OpenAI Gym. Yawning-Titan focuses on providing a fast simulation to support the development of defensive autonomous agents who face off against probabilistic red agents.
Yawning-Titan contains a small number of specific, self contained OpenAI Gym environments for autonomous cyber defence research, which are great for learning and debugging, as well as a flexible, highly configurable generic environment which can be used to represent a range of scenarios of increasing complexity and scale. The generic environment only needs a network topology and a settings file in order to create an OpenAI Gym compliant environment which also enables open research and enhanced reproducibility.
How can Yawning-Titan be used?#
Yawning-Titan can be used either through the CLI app or vie the GUI. The idea of this is to make Yawning-Titan as accessible as possible to all users out of the box whilst not compromising the ability for users to make in-depth modifications to the source code.
Design Principles#
- Yawning-Titan has been designed with the following key principles in mind:
Simplicity over complexity
Minimal Hardware Requirements
Operating System agnostic
Support for a wide range of algorithms
Enhanced agent/policy evaluation support
Flexible environment and game rule configuration
What is Yawning-Titan built with#
Yawning-Titan is built on the shoulders of giants and heavily relies on the following libraries:
OpenAI’s Gym is used as the basis for all of the environments
Networkx is used as the underlying data structure used for all environments
Stable Baselines 3 is used as a source of RL algorithms
Rllib (part of Ray) is used as another source of RL algorithms
Typer is used to provide a command-line interface
Django is used to provide the management and elements of the GUI
Cytoscape JS is used to provide a lightweight and intuitive network editor
Yawning-Titan Quick start#
pip install <Yawning-Titan .whl file>
yawning-titan setup
yawning-titan gui
Where next?#
The best place to start is diving into the Getting Started, or just straight into the Yawning-Titan GUI.
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)}
}