Skip to main content

WraithWall

License: MIT Donate

Production deception-and-threat-intelligence platform and companion packages.

Ecosystem

Package Install Purpose Status
wraithwall pip install wraithwall Flask platform — gateway, link intel, cowrie, BGP, canaries PyPI 0.2.0
ravenscan pip install ravenscan Engineering intelligence CLI (raven) and library PyPI 0.1.0
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.

Quick start

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

Run the local secure sandbox

The sandbox ships in this package: sandbox_kit/ (launcher), compose.sandbox.yml, digest-pinned Dockerfiles, and a deterministic synthetic-telemetry seed. No cloud account, no API keys, no internet exposure.

./sandbox.sh up --profile app-only      # T0: gates + state only, no containers
./sandbox.sh up --profile local-sandbox # T1: build, boot, self-check (one-time ack)
./sandbox.sh verify                     # fail-closed self-check of the running sandbox
./sandbox.sh destroy --yes              # stop services and delete all sandbox state

Every command is fail-closed: a missing prerequisite, a digest mismatch or an ambiguous confirmation stops the launcher instead of starting something inert. Telemetry it produces is synthetic and marked LOCAL on every record, so it can never be mistaken for attacker data.

This is not a guaranteed malware-containment environment unless separately isolated by a VM or dedicated host. Read docs/sandbox/quickstart.md and docs/sandbox/security-model.md before pointing it at anything you did not write yourself.

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
wraithwall serve --port 8000
wraithwall routes
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

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.

Metadata

Release files for wraithwall 0.2.0

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.0
File Size Uploaded
wraithwall-0.2.0.tar.gz 388.4 kB Details

Built distribution (wheel)

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

Total release size: 774.2 kB

Release files / wraithwall-0.2.0.tar.gz

Download URL wraithwall-0.2.0.tar.gz
Size 388.4 kB
Tags Source
SHA-256 checksum
How to use checksums
89e528dab549993751f22a72df63f1565ae2043f75b1f77818d86e27479830bc
BLAKE2b-256 checksum
How to use checksums
b842f6fc594c486566cc37914a3bfc4e78fad42859ceaec5239161de2de33e0a
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.0-py3-none-any.whl

Download URL wraithwall-0.2.0-py3-none-any.whl
Size 385.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dccefeaf6f402da16d2c7a15a4e6736227586ae85209902162544c0bcbf8ac66
BLAKE2b-256 checksum
How to use checksums
085cb076c403564b0aa007a9d317eb851173a5a86521aa9878ba069ddc333e82
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

0.2.1

2 release files

This release

0.2.0 This release

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