Skip to main content

Anteumbra — Web Perimeter Threat Intelligence. Passive detection, semi-active response, attacker profiling.

Project description

Anteumbra

Anteumbra

Version Python Platform License Tests

Lightweight Web Perimeter Security — Passive Detection · Semi-Active Response · File-Level Forensics

"Anteumbra is an annular eclipse observatory at the web perimeter. Every ray that tries to pierce the boundary is recorded, measured, and traced back to its source. Disguised threats reveal themselves in their own blazing intensity."

中文文档 | PyPI | Issues


Anteumbra (formerly Trident) is a production-grade web perimeter threat intelligence system for Linux and Windows. It monitors file system changes in real time, detects WebShells using an embedded YARA rule engine, profiles attacker behavior, and provides a web-based management dashboard — all without inline blocking. Think of it as a security observatory at the boundary layer.

Key capabilities:

  • Real-time file monitoring — Linux Inotify / Windows ReadDirectoryChangesW adaptive switching
  • Manual scanner — Active directory scanning with SSE real-time progress, scan history, printable reports
  • YARA rule engine — 18+ rule files covering PHP, ASP, JSP, ASPX, Godzilla, Behinder; hot-reload supported
  • Threat profiling — Attacker behavior clustering via UA/time-bucket, IP pool merging, decay engine
  • File similarity clustering — ssdeep/TLSH/SimHash hash engine with 0.80 threshold grouping
  • IP block ledger — Audit trail for all block/unblock operations, inline note editing, JSON/CSV export
  • Bidirectional linking — Profile ↔ Records ↔ Quarantine cross-navigation, attack chain timeline
  • Log heuristic engine — Behavior-level detection: brute force, scanner, error storm, tool signature, suspicious path
  • Memory shell detection — Java/ASP.NET reference tools + access log tracer for WebShell origin correlation
  • Batch operations — Cross-page multi-select for Records/Quarantine with batch quarantine/restore/delete
  • SIEM export — CEF/JSON Lines/Syslog formats with file rotation and real-time UDP streaming
  • Plugin system — Config-driven plugin manager with lifecycle, event dispatch, 4 WAF adapters
  • Dual storage — JSON + SQLite (WAL mode, FK constraints, indexed) with configurable backend switching
  • WAL transaction logs — Async batch writes with auto rotation, minimal data loss under file locking
  • Smart alerting — Exponential backoff with adaptive thresholds to reduce false positives
  • Web dashboard — Dark theme terminal-style interface, SSE real-time log stream, HTMX-driven, SPA navigation
  • Enterprise security — CSRF protection, IP whitelist, Scrypt password hashing, static JS auth guard
  • Production deployment — Docker multi-stage build, Gunicorn multi-worker, systemd service, pip install -e .
  • Comprehensive test suite — ~217 tests: 88 unit + 94 E2E backend + 34 E2E UI (Playwright) + 1 WAF proxy

Quick Start

pip install anteumbra
anteumbra --help

From Source

git clone https://github.com/SxyLao1/Anteumbra.git
cd Anteumbra
pip install -e .
python -m pytest tests/core/ -v

Windows

git clone https://github.com/SxyLao1/Anteumbra.git
cd Anteumbra
.\run_tests.bat

Docker

docker build -t anteumbra .
docker run -d -p 8080:8080 -v $(pwd)/data:/app/data -v $(pwd)/config.toml:/app/config.toml anteumbra

Docker Compose:

services:
  anteumbra:
    build: .
    ports: ["8080:8080"]
    volumes:
      - ./data:/app/data
      - ./config.toml:/app/config.toml
    restart: unless-stopped

The Docker image includes all three hash engines (ssdeep + py-tlsh + yara-python) compiled and active for Linux.

Then open http://127.0.0.1:5000/admin. Default username is admin; password is printed in the console during first setup.

Architecture

src/anteumbra/
├── domain/               # Domain layer: entities + ports (Plugin, Repository, Detector, Notifier, EventSource)
├── application/          # Application layer: PluginManager (lifecycle, event dispatch)
├── infrastructure/       # Infrastructure: persistence (JSON/SQLite), detection, monitoring, config, utils
└── interfaces/           # Interfaces: Flask blueprints, templates, static assets

Architecture follows Domain-Driven Design with four separated layers. Event-driven architecture (EDA) covers 85%+ of the data flow via implicit event bus (PluginManager with emit/dispatch semantics). SQLite storage layer features foreign key constraints (ON DELETE SET NULL) and 13 indexed columns.

Ecosystem & Related Projects

Anteumbra is designed to complement these excellent open-source tools:

Memory Shell Detection:

WAF / Log Analysis:

Hashing & Similarity:

Tools

The tools/ directory includes:

  • WAF Proxy (tools/waf_proxy/) — Lightweight HTTP reverse proxy with built-in WAF rules (SQLi, XSS, traversal, webshell upload, command injection). Generates attack events in JSON Lines format for the threat profiling engine. Useful for testing and development.
python tools/waf_proxy/waf_proxy.py            # :8081 → :80
python tools/waf_proxy/waf_proxy.py 8081 8080  # custom ports

Migration from Trident

Anteumbra is the successor to Trident (v1.9.5). If you were using Trident:

# 1. Uninstall Trident
cd Trident
.\uninstall.bat      # Windows
# bash uninstall.sh  # Linux

# 2. Install Anteumbra
pip install anteumbra

# 3. Copy your config and data
cp /path/to/Trident/config.toml /path/to/Anteumbra/
cp -r /path/to/Trident/data/ /path/to/Anteumbra/

Your config.toml and data/ directory are compatible.

License

MIT License. Free for production, academic research, and personal use.

Third-party tools bundled in tools/ retain their original licenses.


Anteumbra v1.0.7 — MIT License

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

anteumbra-1.0.8.tar.gz (181.8 kB view details)

Uploaded Source

Built Distribution

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

anteumbra-1.0.8-py3-none-any.whl (215.2 kB view details)

Uploaded Python 3

File details

Details for the file anteumbra-1.0.8.tar.gz.

File metadata

  • Download URL: anteumbra-1.0.8.tar.gz
  • Upload date:
  • Size: 181.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for anteumbra-1.0.8.tar.gz
Algorithm Hash digest
SHA256 1b70abb77d05b24841eed6acc1750aa84ab2e0000ef8d7d228cc6d89e80729e3
MD5 54d77072c80542ce432912fe6e839698
BLAKE2b-256 eda66667cabd6dadcc07db1a12d43f137eee3089df344159f0d7c01c77eed5c0

See more details on using hashes here.

Provenance

The following attestation bundles were made for anteumbra-1.0.8.tar.gz:

Publisher: publish.yml on SxyLao1/Anteumbra

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file anteumbra-1.0.8-py3-none-any.whl.

File metadata

  • Download URL: anteumbra-1.0.8-py3-none-any.whl
  • Upload date:
  • Size: 215.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for anteumbra-1.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 d110128d45a02e1c4c313bb1a34fb589dec3cb6b71a4df5044ba3848706e23e7
MD5 78b4b4d806880d4cd691a46123f87777
BLAKE2b-256 4b0543fba042a66fad51f35fe7886aecb64bcd6a54e9d7e62cd67712f80a27a6

See more details on using hashes here.

Provenance

The following attestation bundles were made for anteumbra-1.0.8-py3-none-any.whl:

Publisher: publish.yml on SxyLao1/Anteumbra

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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