innerwarden-agent
Autonomous Linux security agent that detects, decides, and acts in real time.
2.9K
v0.12.0 · Rust · Apache-2.0 · ~250 MB RAM (full stack)
Inner Warden is a self-contained, autonomous security agent for Linux servers. It watches every layer of the stack — from firmware and hypervisor all the way up to userspace — correlates events across layers in real time, makes AI-assisted triage decisions, and responds autonomously with reversible enforcement actions.
curl -fsSL https://innerwarden.com/install | sudo bash
# starts in observe-only / dry-run mode by default
Images: maiconburn/innerwarden-agent (full agent) · maiconburn/innerwarden-agent:agent-openclaw
Architectures: linux/amd64 · linux/arm64
| Layer | Coverage |
|---|---|
| Firmware (Ring −2) | MSR write guard (LSTAR/SMRR/FEATURE_CONTROL), ACPI method monitoring, SPI controller probing, ESP hash integrity, eBPF weaponization (VoidLink). 5-min oneshot timer. |
| Hypervisor (Ring −1) | 20 VM-detection probes across 12+ hypervisors, KVM monitoring, VM-exit analysis, Blue Pill detection, VM escape chain. |
| Kernel (Ring 0, eBPF) | 40 hooks: 23 tracepoints, 3 kprobes (commit_creds / native_write_msr / acpi_evaluate_object), 3 LSM hooks, 1 XDP dropper (10 M+ pps wire-speed), 1 raw_tracepoint dispatcher. Container-aware via cgroup_id. |
| Userspace (Ring 3) | 22 collectors: auth.log, journald, Docker, nginx, syslog_firewall, Falco, Suricata-eve, Wazuh, osquery, macOS unified log, CloudTrail, exec_audit, integrity, firmware/kernel integrity, proc_maps, fanotify, cgroup_abuse, dns_capture (UDP 53), http_capture (TCP 80/8080), tls_fingerprint (JA3/JA4). |
49 stateful detectors including: ssh_bruteforce, credential_stuffing, distributed_ssh, port_scan, reverse_shell, process_injection, privesc, rootkit, ransomware, c2_callback, dns_tunneling, container_escape, lateral_movement, crypto_miner, data_exfiltration, fileless, web_shell, log_tampering, kernel_module_load, persistence (ssh_key / crontab / systemd), and 10 graph-based detectors.
Rule engines: 208 Sigma community rules · 8 built-in + custom YARA rules · 71 ATR rules (AI agent threats: prompt injection, tool poisoning, skill compromise).
Cross-layer rules (CL-001–CL-047) connect firmware × hypervisor × kernel × userspace × network × honeypot, including 5 AlphaZero V4 discoveries and Blue Pill / VM-escape / deep-ring-compromise chains. Entity pivot by IP / User / Container / PID with cooldown deduplication.
Kill chain tracker — 7 stages per entity, 8 attack patterns in bitmasks (reverse shell, bind shell, code inject, code execution, lateral movement, privesc, persistence, data exfil).
Baseline anomaly — 7-day EMA training on event rate/hour per source, process lineages, login hours, outbound destinations. Detects silence (= compromise), rate spikes, unseen lineages, unusual login times.
Autoencoder neural — 58 features, nightly retrain at 03:00 UTC, integrated in the agent loop for anomaly scoring.
In-memory directed graph: 11 node types (Process, IP, File, User, Domain, Container, Service, Session, Port, Rule, Incident), 50 relation types, 60 event kinds. 27 graph detectors + 10 graph correlation rules + 4 real-time triggers. Daily snapshots with 7-day retention, 3-backup rotation, and integrity checks.
12 AI providers: OpenAI, Anthropic, Ollama (qwen2.5:3b local default), Groq, Cerebras, DeepSeek, Together, OpenRouter, Fireworks, Mistral, Cohere, +1.
Pipeline: algorithm gate → allowlist → dedup → decision cooldown (1 h per action:detector:entity) → AbuseIPDB (SQLite cache) → GeoIP → incident grouping → AI → MITRE mapping → circuit breaker → confidence threshold → graduated enforcement → skill execution → Cloudflare push → mesh broadcast → notification gate → channels → observation verification → trust scoring.
Graduated enforcement (spec 020): Observe → Warn → Contain → Enforce state machine driven by continuous trust score + AI SOC daily checks (11 parsers).
Structured subgraph prompt (spec 025): LLM receives graph as JSON nodes/edges instead of prose. Benchmark on qwen2.5:3b: accuracy 53% → 73%, hallucination 47% → 7%.
11 skills: block-ip (ufw / iptables / nftables / pf / xdp), suspend-user-sudo, monitor-ip, kill-process, block-container, deploy-honeypot, rate-limit-nginx, block-ip-cloudflare, report-to-abuseipdb, kill-chain-response.
Layered blocking: 1 decision → XDP kernel drop + firewall (persists reboot) + mesh broadcast (peers block) + Cloudflare edge + AbuseIPDB report.
20 playbooks: ransomware, reverse_shell, data_exfil, malware_yara, chain-recon-exfil, chain-firmware-rootkit, timestomp, log_tampering, privesc, kernel_module, process_injection, ssh_key/crontab/systemd persistence, container_escape, crypto_miner, dns_tunneling, lateral_movement, web_shell, discovery_burst. Custom TOML playbooks supported.
Live honeypot: SSH/HTTP decoys on port 2222, interactive LLM shell, captures credentials and attacker behaviour, feeds the knowledge graph.
Single policy decides Send Now / Daily Briefing Only / Drop per incident. Burst summary: 50+ auto-blocks/h → 1 message "all handled". Grouping: 100 events from the same IP in 1 h = 1 Telegram message.
Channels: Telegram (interactive bot, 2FA, callback buttons) · Slack · Webhook · Web Push · Syslog CEF (ArcSight).
Daily briefing digest at 08:00 with low-severity incidents and summarised decisions.
Ed25519-signed peer network. Tit-for-tat trust scoring (game theory). Broadcasts blocks to peers; blocks are applied locally when trust > threshold. 49 tests. Integrated in the agent.
/api/compliance endpoint verifies integrity.SPA (~11 500 lines). Tabs: Sensors (15-collector HUD + timeline), Threats (investigation journeys with pivot tabs), Report, Health (metrics drift, spec 024), Honeypot, Compliance (ISO + hash chain), Intelligence (profiles / campaigns / chains / baseline / playbooks), Monthly.
20 integration cards: AI, IP Blocker, Honeypot, GeoIP, AbuseIPDB, XDP, Telegram, Slack, Cloudflare, CrowdSec, Prometheus, PagerDuty, Opsgenie, Sudo Protection, Execution Guard, Mesh, Web Push, Fail2ban, Shield, Threat DNA.
Key API endpoints: /api/agent/* (autonomous AI agent: security-context, check-ip, check-command with ATR engine), /api/attacker-profiles, /api/threat-report, /api/campaigns, /api/correlation-chains, /api/baseline-status, /api/playbook-log, /api/auth/*, /metrics (10 Prometheus drift metrics).
Unified SQLite (innerwarden.db, WAL mode) replaces 15 legacy storage artefacts. 14 maintenance tasks. Monotonic agent cursor.
make scenario-qa — 7 canonical scenarios (SSH brute, honeypot, port scan, DDoS SYN flood, grouped campaign) with tight envelopes; any PR that drifts fails CI.make replay-qa — multi-source replay (auth_log + Falco + Suricata + osquery).8 subcommand groups: get (status) · stream · action (block/unblock) · trust · config (notifications/dashboard/AI) · system (scan/harden/doctor/test) · module (install/validate/publish) · agent (chat).
Host hardening: innerwarden system scan (audit) · innerwarden system harden (sysctl, SSH, firewall, sudoers drop-ins).
Self-upgrade: innerwarden upgrade — pulls latest release, verifies SHA-256 + Ed25519 signature, restarts systemd service.
Binaries: x86_64 + aarch64, Linux + macOS, Ed25519-signed.
Services: innerwarden-sensor, innerwarden-agent, innerwarden-shield, innerwarden-dna, innerwarden-killchain, innerwarden-hypervisor.timer, innerwarden-smm.timer.
| Metric | Count |
|---|---|
| eBPF hooks | 40 |
| Stateful detectors | 49 |
| Collectors | 22 |
| Cross-layer correlation rules | 47 (+10 graph) |
| MITRE ATT&CK IDs | 65 |
| Sigma rules | 208 |
| ATR rules (AI agent threats) | 71 |
| Playbooks | 20 |
| Response skills | 11 |
| AI providers | 12 |
| Dashboard tabs | 11 |
| Integration cards | 20 |
| CLI subcommand groups | 8 |
| Tests | 3 689 |
| RAM (full stack) | ~250 MB |
Apache-2.0 — © Inner Warden contributors
Content type
Image
Digest
sha256:79f43f04b…
Size
56.9 MB
Last updated
about 2 months ago
docker pull maiconburn/innerwarden-agent:0.14.5