Skip to content

Commit fd0fbeb

Browse files
Rewrite platform documentation, fix tool counts and RAG record counts
1 parent 92770a4 commit fd0fbeb

7 files changed

Lines changed: 1261 additions & 476 deletions

File tree

README.md

Lines changed: 25 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,16 @@
55
[![Docs](https://img.shields.io/badge/docs-appliedir.github.io-blue)](https://appliedir.github.io/Valhuntir/)
66
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://github.com/AppliedIR/Valhuntir/blob/main/LICENSE)
77

8-
Valhuntir forensic investigation platform — AI-assisted investigation with structural human-in-the-loop review, cryptographic signing, and complete audit trails. CLI and architecture reference.
8+
Valhuntir turns a single incident response analyst into the manager of an agentic AI incident response team. A host of MCP tools allows the AI to quickly ingest, process, and analyze massive amounts of digital forensic artifacts while keeping the human in control of the investigation and decision making process. Curated forensic knowledge bases, guidance and context hints, and processing suggestions are built into the system, but ultimately the human examiner drives the response.
99

1010
**[Platform Documentation](https://appliedir.github.io/Valhuntir/)** ·
1111
[CLI Reference](https://appliedir.github.io/Valhuntir/cli-reference/)
1212

13-
> **Public Beta** — This project is undergoing active feature development.
14-
> Backward compatibility with future releases is not guaranteed. Consider
15-
> this a public beta for feature testing and evaluation rather than a
16-
> production-ready tool for real case data.
13+
> **Important Note** — While extensively tested, this is a new platform.
14+
> ALWAYS verify results and guide the investigative process. If you just
15+
> tell Valhuntir to "Find Evil" it will more than likely hallucinate
16+
> rather than provide meaningful results. The AI can accelerate, but the
17+
> human must guide it and review all decisions.
1718
1819
## Valhuntir — AI-Assisted Forensic Investigation
1920

@@ -29,7 +30,7 @@ With [opensearch-mcp](https://github.com/AppliedIR/opensearch-mcp), evidence is
2930

3031
15 parsers cover the forensic evidence spectrum: Windows Event Logs (evtx), 10 EZ Tool artifact types (Shimcache, Amcache, MFT, USN, Registry, Shellbags, Jumplists, LNK, Recyclebin, Timeline), Volatility 3 memory forensics, JSON/JSONL (Suricata, tshark, Velociraptor), delimited (CSV, TSV, Zeek, bodyfile, supertimelines), Apache/Nginx access logs, W3C (IIS, HTTPERR, Windows Firewall), Windows Defender MPLog, Scheduled Tasks XML, Windows Error Reporting, SSH auth logs, PowerShell transcripts, and Prefetch/SRUM (via Plaso or wintools-mcp).
3132

32-
Every parser produces deterministic content-based document IDs (re-ingest = zero duplicates), full provenance (`host.name`, `vhir.source_file`, `vhir.ingest_audit_id`), and proper `@timestamp` with timezone handling.
33+
Every parser produces deterministic content-based document IDs (re-ingest = zero duplicates), full provenance (`host.name`, `vhir.source_file`, `vhir.ingest_audit_id`), and proper `@timestamp` with timezone handling. Hayabusa auto-detection runs after EVTX ingest, applying 3,700+ Sigma rules and indexing alerts for structured querying.
3334

3435
### Investigation Workflow
3536

@@ -45,15 +46,17 @@ Every parser produces deterministic content-based document IDs (re-ingest = zero
4546

4647
Without OpenSearch, steps 3-6 are replaced by direct tool execution and manual analysis. Findings, timeline, approval workflow, and reporting are identical either way.
4748

48-
### Deployment Configurations
49+
### Required Resources
4950

50-
| Configuration | What runs on SIFT | RAM (min) | RAM (recommended) | Best for |
51-
|---|---|---|---|---|
52-
| **Valhuntir** | Gateway + 8 backends + OpenSearch (Docker) | 24 GB | 32 GB | Solo analyst, lab environments |
53-
| **Valhuntir (remote OpenSearch)** | Gateway + 8 backends; OpenSearch on separate host | 16 GB SIFT, 8 GB OS host | 16 GB SIFT, 16 GB OS host | Larger cases, persistent clusters |
54-
| **Valhuntir + Windows** | Above + wintools-mcp on Windows VM | +8 GB Windows | +8 GB Windows | Full artifact coverage |
55-
| **Valhuntir + REMnux** | Above + remnux-mcp on REMnux VM | +4 GB REMnux | +8 GB REMnux | Malware analysis |
56-
| **[Valhuntir Lite](#valhuntir-lite)** | No gateway, no OpenSearch — stdio MCPs only | 8 GB | 16 GB | Quick setup, smaller investigations |
51+
| Component | Role | RAM (min) | RAM (rec) | Disk | Notes |
52+
|-----------|------|-----------|-----------|------|-------|
53+
| **Valhuntir with sift-mcp** | Gateway + 8 MCP backends | 16 GB | 16 GB | 50 GB + evidence/extractions | SIFT Workstation (Ubuntu). Gateway capped at 4 GB. 24 GB for memory analysis with Volatility 3. |
54+
| **Valhuntir + OpenSearch** | Above + evidence indexing | 32 GB | 32 GB | 100 GB + evidence/extractions/indices | OpenSearch JVM 6 GB, container 8 GB. Can run on separate host. |
55+
| **Valhuntir Lite** | Stdio MCPs only, no gateway | 8 GB | 16 GB | 30 GB + evidence/extractions | No OpenSearch. Direct MCP from LLM client. |
56+
| **OpenSearch (remote)** | Dedicated indexing host | 12 GB | 16 GB | 100 GB + indices | Alternative to co-located. Connects via HTTPS. |
57+
| **wintools-mcp** | Windows forensic tools | 8 GB | 16 GB | 60 GB | Separate Windows VM to run Windows-only tools. |
58+
| **REMnux** | Malware analysis | 4 GB | 8 GB | 100 GB | Optional. Separate VM. [Docs](https://docs.remnux.org). |
59+
| **OpenCTI** | Threat intelligence | 16 GB | 32 GB | 50 GB SSD | Optional. Separate host. [Docs](https://docs.opencti.io). |
5760

5861
## Platform Architecture
5962

@@ -104,7 +107,7 @@ graph TB
104107
GW -.->|"HTTP(S)"| OCTI
105108
```
106109

107-
REMnux, Windows, and OpenSearch are optional. SIFT alone provides 73 MCP tools across 7 backends (90 with opensearch-mcp), the Examiner Portal, and full case management.
110+
REMnux, Windows, and OpenSearch are optional. SIFT alone provides 73 MCP tools across 7 backends (90 with opensearch-mcp, 100 with wintools-mcp), the Examiner Portal, and full case management.
108111

109112
### SIFT Platform Components
110113

@@ -118,7 +121,7 @@ graph LR
118121
CM["case-mcp<br/>15 tools · case management,<br/>audit queries, backup"]
119122
RM["report-mcp<br/>6 tools · report generation,<br/>IOC aggregation"]
120123
SM["sift-mcp<br/>5 tools · Linux forensic<br/>tool execution"]
121-
RAG["forensic-rag<br/>3 tools · semantic search<br/>23K records"]
124+
RAG["forensic-rag<br/>3 tools · semantic search<br/>22K records"]
122125
WT["windows-triage<br/>13 tools · offline baseline<br/>validation"]
123126
OC["opencti<br/>8 tools · threat<br/>intelligence"]
124127
OS["opensearch-mcp<br/>17 tools · evidence indexing,<br/>query, enrichment"]
@@ -192,7 +195,7 @@ Valhuntir reinforces forensic discipline through multiple layers built into the
192195

193196
**Client configuration** — For Claude Code, `vhir setup client` deploys `CLAUDE.md` (investigation rules and MCP backend descriptions), `FORENSIC_DISCIPLINE.md` (evidence standards, confidence levels, checkpoint requirements), and `TOOL_REFERENCE.md` (tool selection workflows and score interpretation) as persistent context. `AGENTS.md` (MCP server descriptions, recording requirements, provenance rules, adversarial evidence handling) is deployed as a rules file for Claude Code and is available for other MCP clients to load as project instructions. For clients that don't support project instructions, the MCP server instructions delivered via the protocol carry the core guidance.
194197

195-
**Forensic RAG** — The `forensic-rag-mcp` server provides semantic search across 23,000+ records from 23 authoritative sources: Sigma rules, MITRE ATT&CK techniques, MITRE D3FEND countermeasures, Atomic Red Team tests, KAPE targets, Velociraptor artifacts, forensic artifact definitions, LOLBAS/LOLDrivers, CISA KEV, and more. The LLM queries this during investigation to ground its analysis in authoritative references rather than training data.
198+
**Forensic RAG** — The `forensic-rag-mcp` server provides semantic search across 22,000+ records from 23 authoritative sources: Sigma rules, MITRE ATT&CK techniques, MITRE D3FEND countermeasures, Atomic Red Team tests, KAPE targets, Velociraptor artifacts, forensic artifact definitions, LOLBAS/LOLDrivers, CISA KEV, and more. The LLM queries this during investigation to ground its analysis in authoritative references rather than training data.
196199

197200
**Windows triage baseline** — The `windows-triage-mcp` server provides offline validation against 2.6 million known Windows file and process baseline records. The LLM can check whether a file, service, scheduled task, or registry entry is expected, suspicious, or unknown — without any network call.
198201

@@ -213,7 +216,7 @@ These layers work together: FK enriches tool responses in real-time, discipline
213216
| opencti-mcp | SIFT | (via gateway) | Threat intelligence from OpenCTI (8 tools) |
214217
| OpenSearch | SIFT (Docker) | 9200 | Evidence search engine. Local or remote. Optional. |
215218
| Examiner Portal | SIFT | (via gateway) | 8-tab browser UI: overview, findings with provenance chains, timeline with ruler, hosts, accounts, evidence verification, IOCs, TODOs. Primary review UI. |
216-
| wintools-mcp | Windows | 4624 | Catalog-gated forensic tool execution on Windows (7 tools) |
219+
| wintools-mcp | Windows | 4624 | Catalog-gated forensic tool execution on Windows (10 tools) |
217220
| vhir CLI | SIFT | -- | Human-only: case init, evidence management, verification, exec. Approval also available via Examiner Portal. Remote examiners need SSH only for CLI-exclusive operations. |
218221
| forensic-knowledge | anywhere | -- | Shared YAML data package (tools, artifacts, discipline) |
219222

@@ -456,7 +459,6 @@ Creates a timestamped backup with SHA-256 manifest. Verification checks every fi
456459

457460
```
458461
vhir case init "Ransomware Investigation" # Create a new case
459-
vhir case init "Investigation" --case-id INC-2026-001 # Create with custom case ID
460462
vhir case activate INC-2026-02191200 # Set active case
461463
vhir case close INC-2026-02191200 # Close a case by ID
462464
vhir case reopen INC-2026-02191200 # Reopen a closed case
@@ -637,7 +639,7 @@ Every approval, rejection, and command execution is logged with examiner identit
637639
|------|---------|
638640
| [sift-mcp](https://github.com/AppliedIR/sift-mcp) | Monorepo: 11 SIFT packages (forensic-mcp, case-mcp, report-mcp, sift-mcp, sift-gateway, case-dashboard, forensic-knowledge, forensic-rag, windows-triage, opencti, sift-common) |
639641
| [opensearch-mcp](https://github.com/AppliedIR/opensearch-mcp) | Evidence indexing + querying via OpenSearch (17 tools, 15 parsers). Optional. |
640-
| [wintools-mcp](https://github.com/AppliedIR/wintools-mcp) | Windows forensic tool execution (7 tools, 31 catalog entries) |
642+
| [wintools-mcp](https://github.com/AppliedIR/wintools-mcp) | Windows forensic tool execution (10 tools, 31 catalog entries) |
641643
| [Valhuntir](https://github.com/AppliedIR/Valhuntir) | CLI, architecture reference |
642644

643645
## Updating
@@ -650,9 +652,9 @@ vhir update --check # Check for updates without applying
650652
vhir update --no-restart # Update without restarting the gateway
651653
```
652654

653-
The update command pulls the latest code from both repos (sift-mcp and vhir),
654-
reinstalls all packages, redeploys forensic controls, restarts the gateway,
655-
and runs a connectivity smoke test.
655+
The update command pulls the latest code from all configured repos (sift-mcp, vhir,
656+
opensearch-mcp, wintools-mcp), reinstalls all packages, redeploys forensic controls,
657+
restarts the gateway, and runs a connectivity smoke test.
656658

657659
## Valhuntir Lite
658660

0 commit comments

Comments
 (0)