-
Notifications
You must be signed in to change notification settings - Fork 5
FAQ
An autonomous DFIR agent on the SANS SIFT Workstation that thinks like a senior analyst — architecture-first, not prompt-first.
It is literal: agentic — an autonomous, iterative, auditable loop rather than a wrapper around an LLM — plus DFIR, digital forensics and incident response. See About the name for the four-phase plan.
No. Original work, MIT licensed. The MCP protocol is from Anthropic, and Claude is the LLM used in live mode, but the architecture and code are independent.
Yes. This is a personal, independent project; the README's Author section makes that explicit.
Yes, openly. The "Development approach" section of the README discloses Claude as a coding collaborator. Architectural decisions, threat coverage taxonomy, MITRE mapping, and final review are human-driven; implementation, synthetic evidence generation, test scaffolding, and documentation drafting were AI-accelerated. Every commit is reviewed before it lands.
Yes. tests/test_mcp_surface.py asserts the exact positive set. If a 73rd appears or any of the canonical set disappears, the test fails on the next CI run.
Yes. The deterministic demo path (bash examples/demo-run.sh) runs end-to-end with no API key. Live mode (real Claude API + MCP stdio) is available but optional. See Live mode.
~500-700 bytes per MCP call (one JSONL line per call). A typical 25-iteration run produces an audit log of around 12-18 KB. The chain is verified on every run; tampered logs are detected.
DuckDB handles columnar joins on millions of rows orders of magnitude faster than SQLite, which matters for MFT-scale timeline correlation. SQLite is fine for the audit log; DuckDB is right for dfir-corr.
Yes. The host is Linux only — the SANS SIFT Workstation (Ubuntu 22.04) is the primary target, and other distributions (RHEL / Rocky / AlmaLinux 8+, Fedora) work via their package manager. macOS and Windows are not supported as the host (the Plaso / libyal toolchain doesn't build cleanly on them). This is about where the agent runs — macOS and Windows evidence are fully supported as analysis targets (dedicated artifact parsers; case-03 is itself a macOS investigation).
Three reasons:
- The MCP ecosystem is Python-first
- DFIR tooling (Volatility, Plaso, etc.) is Python
- The bottleneck is LLM API latency, not Python execution time
If a specific function needed to be rewritten in a faster language (e.g. an MFT parser doing 10M rows), it would still be exposed via the same MCP schema. The MCP surface is what the agent sees; the implementation is opaque.
No. By construction. The MCP surface has no write functions, and the evidence directory is mounted read-only at the OS level. See Architecture-first vs prompt-first.
It can, in the sense that any LLM can. The architectural guarantee is not that the agent never hallucinates. The guarantee is that:
- Every finding carries the audit_ids of the MCP calls that produced it
- The audit log is replayable and tamper-evident
-
dfir-corrflags contradictions asUNRESOLVEDrather than hiding them
So a hallucinated finding either (a) carries no audit_id, which is visible in the report, or (b) has an audit_id, in which case a human reviewer can trace it back to the logged call (python3 -m dfir_audit trace <audit.jsonl> <finding_id>), replay it, and confirm.
Doesn't matter. The system prompt is not a security boundary. The MCP surface is. See Architecture-first vs prompt-first.
- Confidentiality of the evidence (the agent reads everything you mount)
- Network egress prevention (run in an air-gapped environment if you care)
- Resource exhaustion (use container limits)
These are deployment concerns. Agentic-DFIR addresses them by not being responsible for them.
Velociraptor is excellent for collection. Agentic-DFIR is for reasoning over collected evidence. They compose: a Velociraptor flow collects, then dfir-agent --case reasons over the output.
KAPE is similar — collection / triage. Same compositional answer.
This project doesn't fine-tune anything. The LLM is generic; the value comes from the architecture (MCP surface + correlation engine + audit chain + playbook). A fine-tuned LLM could replace the generic one, but it would still need this scaffolding to be safe and auditable.
The "just give the LLM bash" approach is exactly what dfir-mcp is designed to not be. See Architecture-first vs prompt-first.
Agentic-DFIR — autonomous DFIR agent · architecture-first, not prompt-first · MIT license · github.com/Juwon1405/agentic-dfir
- The Memex bet ⭐ Why this design
- About the name
- Architecture-first vs prompt-first
- Architecture deep dive
- Threat model
- Glossary
- dfir-mcp — typed surface (native + SIFT adapters)
- dfir-agent — senior-analyst loop
- dfir-corr — cross-artifact correlation
- dfir-audit — SHA-256 chained log
- dfir-playbook — senior-analyst sequencing rules (v3 default)
- dfir-sigma — Sigma rule pack (11 rules)
- MCP function catalog (native + SIFT adapters)
- Comparison with adjacent tools
- FAQ
- Operator guide — distro-agnostic
- Running on SIFT
- Live mode
- Accuracy report
-
Roadmap ⭐
- Phase 1 — Agentic DFIR ⭐ dedicated page
-
Phase 2 — Detection engineering
- The self-learning loop ⭐ design note
- Phase 3 — Agentic SOC
- Phase 4 — Broader agentic security