-
Notifications
You must be signed in to change notification settings - Fork 5
Running on SIFT
5-minute setup guide for getting dart-agent running on a SIFT VM.
SANS SIFT Workstation v22.04 is the de-facto open-source DFIR distribution, used by every SANS FOR-class student and most working analysts. It ships with:
- The forensic toolchain Agentic-DART expects (Volatility, Plaso, Eric Zimmerman tools, hindsight)
- Mounted-evidence conventions (
/mnt/case-evidence, read-only by default) - Python 3.10+
The hackathon submission is primarily validated on SIFT v22.04. Other Linux distros work; this is just the most reproducible path.
If you don't have it: https://www.sans.org/tools/sift-workstation/ — free, ~10 GB VM image. VMware, VirtualBox, and Parallels images all work.
Default user: sansforensics (SIFT) — we'll create / use analyst for Agentic-DART so the prompt matches the documentation:
sudo adduser analyst
sudo usermod -aG sudo analyst
su - analyst(Or just stay as sansforensics. The docs reference analyst@siftworkstation for visual consistency, not as a hard requirement.)
cd ~
git clone https://github.com/Juwon1405/agentic-dart.git
cd agentic-dart
bash scripts/install.shinstall.sh pip-installs the three Python packages in editable mode. No virtualenv is required, but creating one is good hygiene on shared SIFT VMs:
python3 -m venv .venv
source .venv/bin/activate
bash scripts/install.shVerify:
python3 -c "from dart_mcp import list_tools; print(len(list_tools()))"
# → 35bash examples/demo-run.shExpected output:
[dart-agent] iterations: 5
[dart-agent] findings: 2
[dart-agent] audit chain: chain verified, tail=1e995b6afc6a6660...
[demo] PASS — "ToolNotFound: 'execute_shell' is not exposed by dart-mcp"
export PYTHONPATH="$PWD/dart_audit/src:$PWD/dart_mcp/src:$PWD/dart_agent/src"
export DART_EVIDENCE_ROOT="$PWD/examples/sample-evidence"
for t in tests/test_audit_chain.py tests/test_mcp_surface.py tests/test_mcp_bypass.py tests/test_agent_self_correction.py tests/test_live_mcp.py; do
python3 "$t"
doneAll 17 assertions should print OK.
Mount your evidence read-only (the operator workflow):
sudo mkdir -p /mnt/case-evidence
sudo mount -o ro,loop /path/to/case.dd /mnt/case-evidence
export DART_EVIDENCE_ROOT=/mnt/case-evidence
python3 -m dart_agent --case YOUR-CASE-ID --max-iterations 25Or for an extracted directory:
sudo mount --bind -o ro /path/to/extracted /mnt/case-evidenceVerify the read-only:
touch /mnt/case-evidence/test 2>&1
# Should fail with: "Read-only file system"If the touch succeeds, the architectural guarantee does not hold for this run — fix the mount before proceeding.
reports/<case>.md Final hypothesis + MITRE chain + citations
audit/<case>.jsonl SHA-256 chained step-by-step trace
dart-corr/<case>.duckdb Correlation database for post-hoc queries
Verify the audit chain:
python3 -m dart_audit verify audit/<case>.jsonl
# → chain verified: 47 entries, tail=4f7a9c1b3e8d2046...Trace a finding back to evidence:
python3 -m dart_audit trace audit/<case>.jsonl F-013| Symptom | Fix |
|---|---|
ImportError: dart_mcp |
export PYTHONPATH="$PWD/dart_audit/src:$PWD/dart_mcp/src:$PWD/dart_agent/src" |
| Slow MFT correlation | SIFT VMs default to 4 GB RAM. Bump to 8 GB for >2M-row MFTs. |
EvidenceRootEscape error |
One of your tool args has a .. or absolute path. Check the call inputs. |
Verify says mismatch
|
Audit log was edited. Re-run; never edit audit.jsonl by hand. |
- Operator guide — distro-agnostic version of this guide
- Running on macOS — for analysts on M-series Macs
- Architecture deep dive
Agentic-DART — autonomous DFIR agent · architecture-first, not prompt-first · MIT license · github.com/Juwon1405/agentic-dart
- The Memex bet ⭐ Why this design
- About the name
- Architecture-first vs prompt-first
- Architecture deep dive
- Threat model
- Glossary
- dart-mcp — typed surface (native + SIFT adapters)
- dart-agent — senior-analyst loop
- dart-corr — cross-artifact correlation
- dart-audit — SHA-256 chained log
- dart-playbook — senior-analyst sequencing rules (v3 default)
- 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 ~95% complete
- Phase 1 — Agentic DFIR ⭐ dedicated page · SANS submission
-
Phase 2 — Detection engineering
- The self-learning loop ⭐ design note
- Phase 3 — Agentic SOC
- Phase 4 — Broader agentic security