https://github.com/alan-turing-institute/causal-cyber-defence

This repository contains glue-code necessary to run dynamic Causal Bayesian optimisation within the Yawning Titan cyber-simulation environment.

https://github.com/alan-turing-institute/causal-cyber-defence

Science Score: 20.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: researchgate.net
  • Committers with academic emails
    1 of 3 committers (33.3%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.4%) to scientific vocabulary

Keywords

bayesian-optimization causal-inference causal-models causality cybersecurity decision-making-algorithms decision-making-under-uncertainty dynamics gym-environment time-series
Last synced: 5 months ago · JSON representation

Repository

This repository contains glue-code necessary to run dynamic Causal Bayesian optimisation within the Yawning Titan cyber-simulation environment.

Basic Info
  • Host: GitHub
  • Owner: alan-turing-institute
  • License: mit
  • Language: Jupyter Notebook
  • Default Branch: main
  • Homepage:
  • Size: 1.04 MB
Statistics
  • Stars: 9
  • Watchers: 3
  • Forks: 3
  • Open Issues: 0
  • Releases: 0
Topics
bayesian-optimization causal-inference causal-models causality cybersecurity decision-making-algorithms decision-making-under-uncertainty dynamics gym-environment time-series
Created over 3 years ago · Last pushed over 3 years ago
Metadata Files
Readme License

README.md

Developing Optimal Causal Cyber-Defence Agents via Cyber Security Simulation

This repository holds code for reproducing the results from the experimental section of the paper Developing Optimal Causal Cyber-Defence Agents via Cyber-Security Simulation.

Abstract

In this paper we explore cyber security defence, through the unification of a novel cyber security simulator with models for (causal) decision-making through optimisation. Particular attention is paid to a recently published approach: dynamic causal Bayesian optimisation (DCBO). We propose that DCBO can act as a blue agent when provided with a view of a simulated network and a causal model of how a red agent spreads within that network. To investigate how DCBO can perform optimal interventions on host nodes, in order to reduce the cost of intrusions caused by the red agent. Through this we demonstrate a complete cyber-simulation system, which we use to generate observational data for DCBO and provide numerical quantitative results which lay the foundations for future work in this space.

Installation

Use conda to create the environment from the environment.yml file: bash conda env create -f environment.yml Clone DCBO and YAWNING TITAN to the working directory:

bash cd .. git clone https://github.com/neildhir/DCBO.git git clone https://github.com/dstl/YAWNING-TITAN.git cd causal-cyber-defence Run through the Example.ipynb notebook!

Citation

Please cite the ML4Cyber Workshop paper if you reference this work: @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)} }

Owner

  • Name: The Alan Turing Institute
  • Login: alan-turing-institute
  • Kind: organization
  • Email: info@turing.ac.uk

The UK's national institute for data science and artificial intelligence.

GitHub Events

Total
  • Issues event: 1
  • Watch event: 1
Last Year
  • Issues event: 1
  • Watch event: 1

Committers

Last synced: about 2 years ago

All Time
  • Total Commits: 10
  • Total Committers: 3
  • Avg Commits per committer: 3.333
  • Development Distribution Score (DDS): 0.2
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Sam S3 s****3@n****k 8
Neil Dhir n****r@t****k 1
Neil Dhir n****r@g****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 5 months ago

All Time
  • Total issues: 1
  • Total pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 1
  • Total pull request authors: 0
  • Average comments per issue: 0.0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 1
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 1
  • Pull request authors: 0
  • Average comments per issue: 0.0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • mhauru (1)
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels

Dependencies

environment.yml pypi
  • absl-py ==1.0.0
  • astunparse ==1.6.3
  • async-timeout ==4.0.2
  • attrs ==21.4.0
  • black ==22.3.0
  • cachetools ==5.0.0
  • charset-normalizer ==2.0.12
  • click ==8.1.3
  • cloudpickle ==1.6.0
  • cycler ==0.11.0
  • cython ==0.29.28
  • decorator ==4.4.2
  • deprecated ==1.2.13
  • dill ==0.3.4
  • dowhy ==0.7.1
  • emcee ==3.1.1
  • emukit ==0.4.9
  • filelock ==3.6.0
  • flatbuffers ==2.0
  • gast ==0.4.0
  • gensim ==4.2.0
  • google-auth ==2.6.6
  • google-auth-oauthlib ==0.4.6
  • google-pasta ==0.2.0
  • gpy ==1.10.0
  • grpcio ==1.46.0
  • gym ==0.19.0
  • h5py ==3.6.0
  • idna ==3.3
  • imageio ==2.9.0
  • importlib-metadata ==4.11.3
  • iniconfig ==1.1.1
  • joblib ==1.1.0
  • karateclub ==1.2.2
  • keras ==2.7.0
  • keras-preprocessing ==1.1.2
  • kiwisolver ==1.4.2
  • libclang ==14.0.1
  • markdown ==3.3.7
  • matplotlib ==3.4.2
  • mpmath ==1.2.1
  • msgpack ==1.0.3
  • mypy-extensions ==0.4.3
  • networkx ==2.6.3
  • numpy ==1.22.3
  • oauthlib ==3.2.0
  • opt-einsum ==3.3.0
  • pandas ==1.3.4
  • paramz ==0.9.5
  • pathspec ==0.9.0
  • patsy ==0.5.2
  • pillow ==9.1.0
  • platformdirs ==2.5.2
  • plotly ==5.7.0
  • pluggy ==1.0.0
  • protobuf ==3.20.1
  • py ==1.11.0
  • pyasn1 ==0.4.8
  • pyasn1-modules ==0.2.8
  • pydot ==1.4.2
  • pygraphviz ==1.7
  • pygsp ==0.5.1
  • pyparsing ==3.0.8
  • pytest ==6.2.5
  • python-graphviz ==0.18.2
  • python-levenshtein ==0.12.2
  • python-louvain ==0.16
  • pytz ==2022.1
  • pyyaml ==5.4.1
  • ray ==1.6.0
  • redis ==4.3.1
  • requests ==2.27.1
  • requests-oauthlib ==1.3.1
  • rsa ==4.8
  • scikit-learn ==1.0.1
  • scipy ==1.7.3
  • seaborn ==0.11.2
  • smart-open ==6.0.0
  • stable-baselines3 ==1.2.0
  • statsmodels ==0.13.2
  • sympy ==1.10.1
  • tabulate ==0.8.9
  • tenacity ==8.0.1
  • tensorboard ==2.9.0
  • tensorboard-data-server ==0.6.1
  • tensorboard-plugin-wit ==1.8.1
  • tensorflow ==2.7.0
  • tensorflow-estimator ==2.7.0
  • tensorflow-io-gcs-filesystem ==0.25.0
  • termcolor ==1.1.0
  • threadpoolctl ==3.1.0
  • toml ==0.10.2
  • tomli ==2.0.1
  • torch ==1.11.0
  • tqdm ==4.62.3
  • typing-extensions ==4.2.0
  • urllib3 ==1.26.9
  • werkzeug ==2.1.2
  • wrapt ==1.14.1
  • zipp ==3.8.0