Skip to main content

Purple-team attack replay platform for SOC and detection validation

Project description

Gloamfire

Purple-team attack replay and detection validation platform


Gloamfire is a local-first, Docker-native adversary simulation and detection validation framework for SOC teams, purple teams, homelabs, and detection engineers.

It safely simulates attack techniques inside isolated Docker containers, validates that your detections fire, and maps everything to MITRE ATT&CK — fully offline with no cloud dependencies.

This is NOT malware. All simulations are safe, sandboxed, and deterministic.


Quick Start

Prerequisites: Python 3.12+, Docker Engine with Compose plugin, 4 GB RAM free.

# Kali / Debian / Ubuntu — venv required on externally-managed Python
python3 -m venv .venv && source .venv/bin/activate
pip install gloamfire

Or from source:

git clone https://github.com/CommonHuman-Lab/gloamfire.git
cd gloamfire
python3 -m venv .venv && source .venv/bin/activate
pip install -e .

Boot the full lab (victims + Wazuh SIEM + Suricata IDS)

gloamfire up

This single command:

  • Starts three victim containers on an isolated network
  • Builds and starts the Wazuh manager, indexer, and dashboard
  • Downloads 50,000+ Emerging Threats rules into Suricata

Tear down

gloamfire down

Web Dashboard

gloamfire dashboard

Opens a browser to http://127.0.0.1:7100 with a live dashboard.

See CLI commands for the full command reference — simulations, PCAP capture, ATT&CK Navigator export, and independent stack management.


Available Scenarios

20 scenarios covering ~55 MITRE ATT&CK techniques across 11 of 14 tactics.

All available scenarios


Architecture

  • Plugin registry — Attack modules self-register at import time; adding a simulation is one Python file.
  • YAML-driven scenarios — Scenarios are data, not code.
  • File-based collection — No API or OpenSearch connection needed; collectors read bind-mounted log files directly.
  • Isolated network — Victim containers run on gloamfire-attack-net (172.30.0.0/24).

Development

pip install -e ".[dev]"

pytest tests/unit/ tests/scenarios/   # no Docker required
pytest                                 # full suite (requires Docker)

ruff check gloamfire/ tests/
ruff format gloamfire/ tests/
mypy gloamfire/

#UI
cd ui
npm install
npm run dev       # dev server at :5173, proxies /api to :7100
npm run build     # outputs to gloamfire/api/static/ (served by FastAPI)

Related

OctoRig — Docker-based vulnerable lab launcher (Juice Shop, DVWA, Metasploitable, and more).


License

Licensed under the AGPLv3. You are free to use, modify, and distribute this software. If you run it as a service or distribute it, the source must remain open.

For commercial licensing, contact the author.

Project details


Download files

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

Source Distribution

gloamfire-0.1.1.tar.gz (57.8 kB view details)

Uploaded Source

Built Distribution

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

gloamfire-0.1.1-py3-none-any.whl (80.5 kB view details)

Uploaded Python 3

File details

Details for the file gloamfire-0.1.1.tar.gz.

File metadata

  • Download URL: gloamfire-0.1.1.tar.gz
  • Upload date:
  • Size: 57.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for gloamfire-0.1.1.tar.gz
Algorithm Hash digest
SHA256 dfb9bb38a3f96b5199ebb07d859f3305f27dc672530ec6af37641bb32712e6d2
MD5 01ac69a223b8d9b43e5a60e650dd6ffe
BLAKE2b-256 fc5016f4a3e9566272a280cdafbe61a710ab1f1fa766b00b3e43905ccbff8b3d

See more details on using hashes here.

File details

Details for the file gloamfire-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: gloamfire-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 80.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for gloamfire-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 837e885c60cb6029a2a70f5825eccae95e7b7d78d140928229ccfde1a09b94ed
MD5 1f12b0e3551d2369b95c802784fbb1f7
BLAKE2b-256 d9db735845c1d70653a9baa3bb3f5a9b272112377c9b4983719af6666f808535

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