BastionBBastion // Local Defensive Sensor

 ____    _    ____ _____ ___ ___  _   _
| __ )  / \  / ___|_   _|_ _/ _ \| \ | |
|  _ \ / _ \ \___ \ | |  | | | | |  \| |
| |_) / ___ \ ___) || |  | | |_| | |\  |
|____/_/   \_\____/ |_| |___\___/|_| \_|
            

Bastion : Defender Watchdog
& Local Defensive Sensor

Bastion is an open-source local sensor designed to run alongsideMicrosoft Defender, not replace it. It covers the surfaces Microsoft structurally won't — camera and mic forensics, USB drift, kernel-driver provenance, and Defender's own tamper state — while keeping you in control with a tamper-evident audit chain and human-readable receipts for every action.

The names aren't an accident. A bastion is the projecting wall that gives a defenderthe firing angles a flat curtain wall can't. Same fortress, different jobs.

Get Access

Access is donation-based. Enter $0.00 for free — or any amount you wish. Submit and we email your key instantly.

Get Access

Access is donation-based — enter 0.00 to get your key for free, or any USD amount you wish to pledge. We email your signed key immediately.

Optional — send BTC or ETH donation
BTCbc1qtf6fqllw7dny832ksw67p4a99txgvrct7u9e7d
ETH0x70B666c4e3EE5B2C9Ab92925F097330813D1848a

Any amount keeps development moving. Paste your email above and submit — your key is emailed regardless.

Comparison Snapshot

Directional comparison of default product behavior. Bastion is built to run alongsideone of these engines (usually Defender), not in place of it — the rows below show where a second sensor adds coverage the default engine doesn't provide.

Legend: yes · partial · no · n/a

TraitBastionDefenderMcAfeeNortonMalwarebytesHuntressCrowdStrikeSentinelOne
Open source codebaseyespartialnononononono
No required cloud accountyesyesnononononono
Tamper-evident merkle event chainyesnononononopartialpartial
Local-first operation on 127.0.0.1yespartialnonoyesnonono
Human-readable forensic receiptsyespartialnononopartialpartialpartial
File integrity monitor on system pathsyespartialpartialpartialnopartialyesyes
Canary / decoy token detectionyesnonononoyesyesyes
Per-process kill / quarantine from one UIyesyesyesyesyespartialyesyes
Reversible quarantine vault (audited)yesyespartialpartialyesnoyesyes
URLhaus / OpenPhish DNS blocklist refreshyesnononopartialnonono
Process fingerprint + lineage trackingyespartialnononopartialyesyes
Autoruns / persistence drift surfacingyesnonononoyesyesyes
Camera / mic access surveillance logyesnonononononono
Microsoft Sentinel ingest bridgeyesn/anononoyesyesyes
Per-event WHY explanation (LLM-optional)yesnonononopartialpartialpartial
Performance audit (power plan / GPU / RAM)yesnonononononono
Donation-based pricingyesn/anononononono
No telemetry shipped off-deviceyesnonononononono

What You See When Running

Actual screenshots of the desktop app. Two surfaces over the same agent: a calm consumer console for day-to-day, and a terminal-themed operator console for triage and response.

Bastion simple console — 'You're protected' status, Quick actions (Run a full scan, Check performance, Reconnect agent), Recent activity feed.
Simple view— at-a-glance status, one-click scan & perf audit, recent activity feed. File: src/app/app/page.tsx
Bastion operator/advanced console — ASCII BASTION banner, alert/warn/info/removed counters, Sentinel connector, event source filters, full triage controls.
Advanced view — full event chain, source filters, Sentinel connector, triage actions. File: src/app/app/operator/page.tsx

Detection & Response Checklist

Every line below is either shipped today, partially implemented, or on the roadmap. Nothing is marketed that the agent does not actually do.

Sensing (read-only)

  • [shipped]Recent process tree (proc_fp) with novel-fingerprint flagging
  • [shipped]Network indicator blocklist (URLhaus + OpenPhish, refreshed in background)
  • [shipped]File integrity monitor on Windows system paths + hosts file
  • [shipped]Canary / decoy tokens planted, watched for tamper
  • [shipped]Microsoft Defender event ingest (event log poll)
  • [shipped]Windows Firewall rule-change ingest
  • [shipped]Autoruns / persistence (Run keys, services, scheduled tasks)
  • [shipped]Camera / mic access enumeration (privacy registry log)
  • [shipped]DGA-style hostname heuristic on outbound DNS
  • [shipped]MalwareBazaar SHA256 hashlist scan-on-write

Recording & integrity

  • [shipped]Append-only event store (sqlite)
  • [shipped]Merkle audit chain over every event row (tamper-evident)
  • [shipped]Boot integrity rollup before steady-state detectors
  • [shipped]Local DPAPI-sealed secrets storageWindows only
  • [shipped]Forensic export bundle (signed zip)

Response (operator action)

  • [shipped]Kill PID with audited reason
  • [shipped]Quarantine to reversible vault (sha256 + original path receipt)
  • [shipped]Trust a fingerprint or a whole exe (suppresses future noise)
  • [shipped]Resolve / re-open per-event triage state
  • [shipped]Run full scan on demand
  • [shipped]Performance audit + elevated apply for safe recommendations

Bridges

  • [shipped]Microsoft Sentinel incident pull (azure-cli auth)
  • [shipped]ntfy.sh push notifications (optional)
  • [shipped]Windows toast notifier on alerts
  • [partial]Webhook ingest for arbitrary upstream SIEMsSentinel-shaped only today

UI

  • [shipped]Severity counters (ALERT/WARN/INFO) clickable to filter
  • [shipped]Hide-noise toggle + risk classification chip on each row
  • [shipped]Per-event WHY explanation (causal chain + AI manager)
  • [shipped]Quarantine vault list + reversible restore
  • [shipped]Source filter chips (proc_fp / autoruns / camera_mic / …)

Roadmap (next updates)

  • [shipped]Unified scan engine (single chokepoint: dedupe + hash + MalwareBazaar match + auto-quarantine)
  • [shipped]Drop-directory watcher (Downloads / Desktop / Documents via ReadDirectoryChangesW)
  • [shipped]System-wide on-access scan via Microsoft-Windows-Kernel-File ETW (admin-gated, graceful fallback)
  • [partial]AMSI provider DLL (PowerShell / Office / .NET scan hook) — cdylib + COM exportsscaffold builds; IAntimalwareProvider2 vtable + named-pipe IPC pending; needs Trusted Signing to load on Win10 1903+
  • [partial]Kernel minifilter driver: pre-create capture + user-mode verdict bridge (fail-open on agent crash)KMDF source + INF + user-mode bridge scaffold landed; needs WDK build + EV cert + altitude allocation from Microsoft
  • [roadmap]Signed & loaded driver in production (EV cert → optional Partner Center attestation signing → Anti-Virus altitude)
  • [shipped]ASR-style behavioural rules (Office→script-host, browser→LOLBin, encoded PowerShell, mshta remote URL, certutil downloader, WMI shell spawn, rundll32 side-load)
  • [roadmap]YARA into scan_engine (community + custom rules over every scanned file)
  • [shipped]Defender Watchdog (alert when real-time protection off / exclusions added / Tamper Protection disabled / signatures stale)
  • [roadmap]Driver / service drift surveillance (every new kernel driver: signer chain + Authenticode + first-seen) — BYOVD defence
  • [roadmap]Restore-from-vault button + sha256 verify on restore
  • [roadmap]YARA scan integration into quarantine pipeline
  • [roadmap]Generic webhook ingest schema (Splunk / Elastic / Wazuh)
  • [roadmap]Sigma rule loader for custom detections
  • [roadmap]Optional remote forwarder for multi-host triage
  • [roadmap]Tor / Tailscale-friendly secondary bind
  • [roadmap]macOS launchd + EndpointSecurity port of the agent
  • [roadmap]Linux auditd + inotify port of the agent
  • [roadmap]Signed release artifacts (cosign + SLSA provenance)

Honesty Notes

Support Development

Bastion is free. If it helps you, BTC or ETH donations keep development moving — any amount is welcome.

BTC: bc1qtf6fqllw7dny832ksw67p4a99txgvrct7u9e7d
ETH: 0x70B666c4e3EE5B2C9Ab92925F097330813D1848a

How Access Works

  1. 1. Enter your email and a USD donation amount ($0.00 = free).
  2. 2. Press Get Access Key — we email your signed key immediately.
  3. 3. Open /app, paste your key, then paste the agent bearer token from %APPDATA%\bastion\data\token.txt.
  4. 4. If you wish to donate, send BTC or ETH to the addresses above.