Skip to main content

PyPI License: MIT Python Donate

WraithWall

Deception-and-threat-intelligence platform. Honeypots, attacker identity, MITRE ATT&CK mapping, incident-response playbooks, active-defense gateway and a public intelligence API — deployed as one Flask application you run yourself.

WraithWall takes hostile traffic at the perimeter (SSH/SHTTP honeypots, canary tokens, lures), turns it into scored, correlated intelligence (behavioural fingerprinting, campaign clustering, ATT&CK technique mapping), and hands an operator the response (playbooks, deception deployment, immutable audit trail). Everything is self-hosted: no SaaS dependency, no telemetry leaves your host.

What is in this package

pip install wraithwall installs the platform as a library and a CLI:

Component Modules What it does
Active-defense gateway gateway Proof-of-work and behavioural challenge, IP blocklist, bot scoring, request fingerprinting
URL / domain / IP intelligence link_checker, public_api Reputation, WHOIS, DNS and abuse lookup behind one API
Honeypot intelligence cowrie_intelligence, replay_tty, botmind_classifier Cowrie session ingest, terminal replay, bot-vs-human classification
Attacker identity behavioral_dna, chronos_temporal, vector_transitions, echo_intent, recalibration, unison_score Persistent behavioural fingerprint, temporal patterns, command-transition models, canonical threat score
Campaign correlation campaign_correlator, deception_event_bus Similarity scoring, clustering, unified deception telemetry bus
Deception & canaries canary_service, supply_chain_canary, credential_propagation, llm_honeypot, dml_engine Canary tokens, supply-chain beacons, planted-credential lures, LLM honeypot, signed Deception Markup Language
Threat intel asn_intelligence, bgp_monitor, spectra_ioc, sigil_yara, fingerprint_corpus ASN abuse enrichment, route monitoring, IOC store, YARA analysis, request-fingerprint corpus
Incident response incident_response Playbook catalogue, context-aware actions, checklist persistence, export
LLM runtime security llm_firewall, ai_runtime_security, llm_cache Prompt/agent firewall, optional AI runtime checks, shared response cache
Ingestion pipeline dossier_* (7 modules) Auth, packet, events, store, destinations, webhook, pipeline
Runtime live_events, tor_egress, thread_utils, shared, database SSE streams, Tor egress, background workers, app factory, SQLAlchemy models
Local sandbox sandbox_kit (17 modules), sandbox.sh, compose.sandbox.yml Fail-closed hardened local environment with synthetic telemetry
Client SDK client Typed HTTP client for the platform's API

Entry points: create_app() (application factory), Client (API client), wraithwall (CLI).

Quick start

pip install wraithwall
wraithwall check          # routes + blueprints sanity check
wraithwall serve          # gunicorn-backed server on :8000

From source:

git clone https://github.com/niffyhunt/wraithwall.git
cd wraithwall
./install.sh
cp .env.example .env
docker compose up -d
wraithwall check
wraithwall serve

Ecosystem

Package Install Purpose Status
wraithwall pip install wraithwall Flask platform — gateway, intel, honeypots, deception, playbooks PyPI 0.2.1
ravenscan pip install ravenscan Engineering intelligence CLI (raven) and library PyPI 0.1.1
canary-kit pip install canary-kit Supply-chain canary token minting and detection PyPI 0.1.0
honeypot-mitre pip install honeypot-mitre Cowrie logs → MITRE ATT&CK scoring PyPI 0.1.0
dml-spec pip install dml-spec Signed deception markup language validator PyPI 1.0.0
wraithmesh pip install packages/wraithmesh (local) Distributed sensor mesh / signed observations v2 ready 0.2.0 (not on PyPI yet)
wraithwall-sdk source only Official HTTP API client Not published yet

Packages are independent — none imports another.

Python API

from wraithwall import create_app, Client
from wraithwall.link_checker import analyze
from wraithwall.gateway import Gateway

app = create_app()
client = Client("http://localhost:8000", api_key="...")
print(client.health())
result = analyze("https://example.com")
blocked = Gateway.is_ip_blocked("203.0.113.1")
from ravenscan import scan
from canary_kit import create_canary

profile = scan(".")
token = create_canary("my-sdk", "1.0.0")

CLI

wraithwall check                 # validate routes and blueprints
wraithwall serve --port 8000     # run the server
wraithwall routes                # print the route table
wraithwall sandbox up --profile app-only   # local sandbox launcher
raven scan .
canary-kit mint my-pkg 1.0.0 --type runtime
honeypot-mitre sample.json
dml validate traps.yaml

Configuration

All secrets and infrastructure endpoints come from environment variables (see .env.example). Nothing is hardcoded to a specific deployment.

Documentation

Platform

Local sandbox — the optional hardened environment for running the platform on your own machine with synthetic telemetry:

./sandbox.sh up --profile app-only       # T0: gates + state only, no containers
./sandbox.sh destroy --yes               # profiles don't switch in place — clean T0 first
./sandbox.sh up --profile local-sandbox  # T1: build, boot, self-check (one-time ack)
./sandbox.sh verify                      # score the RUNNING sandbox against the checklist
./sandbox.sh destroy --yes               # stop services and delete all sandbox state

Read docs/sandbox/security-model.md first — it states what the sandbox does not isolate. The local sandbox is not a malware-containment environment and not a production deployment; the uplink is a convenience, not an isolation boundary. Hostile content belongs in the T2 research-sandbox profile only (see CONTRIBUTING.md § local sandbox).

Sandbox docs:

Contributing

Install the full stack with ./install.sh, run pytest, then open a PR. Each package under packages/ has its own README and examples. See CONTRIBUTING.md for details.

Working on the local sandbox? Read CONTRIBUTING.md § local sandbox first — it states which profile to test hostile content against.

License

MIT — © 2026 Niffyhunt. See LICENSE.

Metadata

Release files for wraithwall 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for wraithwall 0.2.1
File Size Uploaded
wraithwall-0.2.1.tar.gz 396.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for wraithwall 0.2.1
File Interpreter ABI Platform
wraithwall-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 789.6 kB

Release files / wraithwall-0.2.1.tar.gz

Download URL wraithwall-0.2.1.tar.gz
Size 396.9 kB
Tags Source
SHA-256 checksum
How to use checksums
22c6fd84383cabae703fc5040f43f9e9f641d70e18ad9bd844fe6e7574b5c2bf
BLAKE2b-256 checksum
How to use checksums
1d205c4183a776c3e35a89d77817b2e4f8fd3cf03475822beddc3880f33c73d1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / wraithwall-0.2.1-py3-none-any.whl

Download URL wraithwall-0.2.1-py3-none-any.whl
Size 392.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
06ea6d80ac1f78ba2c546e51042821453e331a0b3ae8e07082126f9883a282d0
BLAKE2b-256 checksum
How to use checksums
86797c784ea6a8e55a442379925e5116d77a4ffedf05cd9ae4783b363dbaac37
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page