Skip to main content

FIREWHEEL is an experiment orchestration tool that assists a user in building, controlling, observing, and analyzing repeatable experiments of distributed network systems at any scale.

Project description

https://sandialabs.github.io/firewheel/_static/logo_horizontal.png https://img.shields.io/badge/python-3.8%20%7C%203.9%20%7C%203.10%7C%203.11%7C%203.12%7C%203.13-blue https://www.bestpractices.dev/projects/9722/badge https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg

FIREWHEEL is an experiment orchestration tool that assists a user in building and controlling, repeatable experiments of distributed network systems at any scale.

FIREWHEEL was developed as part of Sandia National Laboratories Emulytics program. With FIREWHEEL, users can easily construct modular parts of a cyber system, called Model Components. These Model Components can be combined to form an experiment. Most experiments are then instantiated using an emulation tool, such as minimega. Actions can be scheduled to occur within the experiment to enable fully automated experimentation. FIREWHEEL enables easily logging the results of these actions so that they can be analyzed. Therefore, it is trivial to run hundreds of experiments and collect results on the outcome.

Getting Started

  • For a crash course on key FIREWHEEL concepts and on using FIREWHEEL please see our quickstart-guide guide.

  • To learn why experimentation may be the right tool to answer certain kinds of questions (and when it is probably the wrong tool) review our documentation on Cyber Experimentation.

  • An overview of FIREWHEEL including how FIREWHEEL can help a researcher implement high-quality emulation-based experiments, hardware requirements, software architecture, and known security security concerns is provided in our System Overview.

  • An in-depth review of important FIREWHEEL concepts, is located here.

  • The CLI reference documentation can be found here.

Questions, Feedback, or Bugs

If you have questions you’d like to ask the developers which our documentation does not answer, or feedback you’d like to provide, feel free to use the mailing list: firewheel AT sandia DOT gov

Please report any bugs that you find on our GitHub page. We happily accept pull requests (PR), big or small. Please see the Contributor Guide for more information.

Any security-related issues should be reported directly to the developers at: firewheel AT sandia DOT gov (see SECURITY.md) for more information.

License

Copyright 2024 National Technology & Engineering Solutions of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with NTESS, the U.S. Government retains certain rights in this software.

Please see LICENSE for more information.

Research Using FIREWHEEL

To cite FIREWHEEL please use the following publication:

Kasimir Georg Gabert, Adam Vail, Tan Q. Thai, Ian Burns, Michael J. McDonald, Steven Elliott, John Vivian Montoya, Jenna Marie Kallaher, and Stephen T. Jones. 2015. “Firewheel - A Platform for Cyber Analysis.” United States. https://www.osti.gov/servlets/purl/1333803.

A non-comprehensive list of research/projects using FIREWHEEL includes:

  • Sean Oesch, Amul Chaulagain, Brian Weber, Matthew Dixson, Amir Sadovnik, Benjamin Roberson, Cory Watson, and Phillipe Austria. 2024. “Towards a High Fidelity Training Environment for Autonomous Cyber Defense Agents.” In Proceedings of the 17th Cyber Security Experimentation and Test Workshop (CSET ‘24). Association for Computing Machinery, New York, NY, USA, 91–99. https://doi.org/10.1145/3675741.3675752

  • Michael Stickland, Justin D. Li, Thomas D. Tarman, and Laura Painton Swiler. 2021. “Uncertainty Quantification in Cyber Experimentation.” United States. https://www.osti.gov/biblio/1867999.

  • Michael Stickland, Justin D. Li, Laura Painton Swiler, and Thomas Tarman. 2021. “Foundations of Rigorous Cyber Experimentation.” United States. https://www.osti.gov/biblio/1854751.

  • Russell Van Dam, Thien-Nam Dinh, Christopher Cordi, Gregory Jacobus, Nicholas Pattengale, and Steven Elliott. 2019. “Proteus: A DLT-Agnostic Emulation and Analysis Framework.” In 12th USENIX Workshop on Cyber Security Experimentation and Test (CSET 19), Santa Clara, CA. USENIX Association. https://www.usenix.org/conference/cset19/presentation/vandam.

  • Nicholas D. Pattengale and David Rushton Farley. 2019. “Prototype Distributed Ledger Technology of UF6 Cylinder Tracking in Ethereum.” United States. https://www.osti.gov/biblio/1770508.

  • Laura Painton Swiler, Michael Stickland, and Thomas D. Tarman. 2019. “Design of Experiments for Cyber Experimentation.” United States. https://www.osti.gov/biblio/1640123.

  • Michael Stickland, Kasimir Georg Gabert, and John Jacobellis. 2017. “In Situ Training Environment for Autonomous Cyber.” United States. https://www.osti.gov/biblio/1464674.

  • Stephen T. Jones, Kasimir G. Gabert, and Thomas D. Tarman. 2017. “Evaluating Emulation-based Models of Distributed Computing Systems.” United States. https://www.osti.gov/biblio/1398865.

  • Isaac Polinsky. 2017. “A Platform for Developing and Evaluating Security Apps in Software Defined Networks.” United States. https://www.osti.gov/biblio/1507916.

  • John Frank Floren, Jerrold A. Friesen, Craig D. Ulmer, and Stephen T. Jones. 2017. “A Reference Architecture For Emulytics Clusters.” United States. https://www.osti.gov/biblio/1823205.

  • Kasimir Gabert, Ian Burns, Steven Elliott, Jenna Marie Kallaher, and Adam Vail. 2016. “Staghorn: An Automated Large-Scale Distributed System Analysis Platform.” United States. https://www.osti.gov/biblio/1411885.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

firewheel-2.10.0.tar.gz (9.5 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

firewheel-2.10.0-py3-none-any.whl (376.0 kB view details)

Uploaded Python 3

File details

Details for the file firewheel-2.10.0.tar.gz.

File metadata

  • Download URL: firewheel-2.10.0.tar.gz
  • Upload date:
  • Size: 9.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.23

File hashes

Hashes for firewheel-2.10.0.tar.gz
Algorithm Hash digest
SHA256 ff83221b442f1975a46d53b8bc05a7d587444c11eda08049ed5bd89a844e0df2
MD5 108c7b727bef4edbcd4ec4a31cd6c84f
BLAKE2b-256 fa5f43639f83dad2b88d44b1ee9fc4bfc37fb010bca671814aee9ce7af74040c

See more details on using hashes here.

File details

Details for the file firewheel-2.10.0-py3-none-any.whl.

File metadata

  • Download URL: firewheel-2.10.0-py3-none-any.whl
  • Upload date:
  • Size: 376.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.23

File hashes

Hashes for firewheel-2.10.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f6f179e2ecd9d7ae6d4ca93d6e3ea366d332fe04f2e8f663623a964b68be9ffc
MD5 6a497c381b1e8d052a8c1a0072d510c8
BLAKE2b-256 61050e32ffaabb41413a568a255ad0948db8a26387b43394850c1af49268af37

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page