elchacal801/valkyrie

GitHub: elchacal801/valkyrie

VALKYRIE 是一个部署在 SIFT 工作站上的自主 AI 取证分析代理,通过结构化推理与三层自校正解决事件响应的准确性与可审计问题。

Stars: 0 | Forks: 0

VALKYRIE

VALKYRIE

教导 AI 代理像资深法医分析师一样思考。

结构化分析推理的自主事件响应,
多层自校正与架构证据保护。

Find Evil! Claude Code MCP Server Tests MIT License

快速开始 · 结果 · 架构 · 自校正 · 示例报告 · 准确度报告

**经过验证的用于杀伤链的高效自主逻辑,可实现快速事件检查** VALKYRIE 在 SIFT 工作站上运行,使用 Claude Code 作为代理框架,并借助一个带有结构化分析推理的自定义 MCP 服务器来调查数字取证证据。 ## VALKYRIE 的独特之处 大多数取证 AI 代理都是**工具执行者**——它们将取证工具封装在大型语言模型之后并按顺序执行。VALKYRIE 是一个**分析推理者**——它采用源自美国情报社区准则的结构化分析技术,通过假设检验、证据分级和多层次自校正来调查事件。 | 能力 | 工具执行者 | VALKYRIE | |-----------|------------|----------| | 工具执行 | 顺序阶段 | 基于证据自适应选择技术 | | 发现结果 | 二元(找到/未找到) | 带有置信度评分的 3 级证据 | | 自校正 | 失败后重试 | 3 层取证验证(工件、时间性、分析) | | 推理 | 隐藏 | 透明假设检验(用于事件响用的 ACH) | | 审计追踪 | 工具执行日志 | 案例目录即审计追踪——每个发现都引用其来源 | ## 结果 针对 SRL-2018 被攻破企业网络进行测试——来自一个域控制器和两个工作站的磁盘镜像。 ### VALKYRIE 自动发现的内容 - 通过 WMI 横向移动在工作站上发现 **Cobalt Strike SMB 信标**,C2 通信通过命名管道 `\\.\pipe\diagsvc-22` - 在 DC 上发现 **Meterpreter reverse_https**,连接至外部 C2 `52.41.122.38:443` - 在 DC 上发现 **Mimikatz 凭证转储**(`sekurlsa::logonpasswords`)——所有域凭证已被攻破 - **PowerSploit 框架**,包括 Kerberoasting、键盘记录与 AMSI 绕过 - **完整的杀伤链**,映射到 15+ 个 MITRE ATT&CK 技术 - **跨主机关联**:两个工作站上存在相同的 Cobalt Strike 有效载荷,WMI 源自 DC **19 个发现**(3 次调查) | **16 个 Tier 1,3 个 Tier 3** | **0 个幻觉工件** | **2 个误报被捕获** ### 自校正的实际运作 在第一次调查中,VALKYRIE 最初将 `subject_srv.exe` 标记为可疑后门(监听 3262 端口,注册为服务,启动时间比内存捕获早 14 分钟)。随后它在内存字符串中发现 Windows 事件 ID 7045: ``` ServiceName: F-Response Subject ImagePath: C:\windows\subject_srv.exe -s "base-hunt.shieldbase.lan:5682" -l 3262 ``` **F-Response 是一个合法的取证获取工具,由事件响应团队部署。** VALKYRIE 在其进入最终报告前将其从高严重性后门重新分类为良性。在同一调查中,它在发现 PAC 文件存在于内存后,将 `172.16.4.10:8080` 从“C2 服务器”重新分类为“企业 Web 代理”。 这正是工具执行者与分析推理者的区别:**当出现矛盾证据时,能够质疑自身初始判断的能力。** ## 架构 ``` Claude Code (reasoning engine) │ VALKYRIE Skill Framework (/investigate command) ├── Orchestrator (6-phase IR pipeline) ├── Self-Correction (3 forensic validation layers) ├── 7+ Technique Protocols (IR-adapted SATs) └── Templates & Reporting │ Claude Code Hooks (evidence protection + audit logging) │ Custom MCP Server (Python, stdio transport) ├── 5 tool modules (11 tools): disk, timeline, memory, registry, scanner ├── 17 Volatility plugins with ISF symbol auto-resolution ├── FLOSS-first string extraction, controlled process memory dump └── Denylist (73 binaries) + shell=False + SHA256 audit logging │ SIFT Workstation Tools (sleuthkit, volatility3, plaso, yara, floss, regripper) │ Evidence (read-only, write-protected at 5 architectural layers) ``` ### 信任边界 **架构强制(而非基于提示):** 1. **类型化 MCP 服务器** — 11 个只读函数,代理无 Shell 访问权限 2. **拒绝名单** — 73 个被阻止的二进制文件(rm、dd、wget、curl、ssh),在子进程层面实施 3. **shell=False** — 每次子进程调用均硬编码,禁止注入 4. **PreToolUse 钩子** — 阻止任何对证据目录的写入尝试 5. **PostToolUse 钩子** — 记录每次工具调用及其输出的 SHA256 哈希 ## 快速开始 ``` # 在 SIFT 工作站(WSL2 或原生系统)上 git clone https://github.com/elchacal801/valkyrie.git cd valkyrie chmod +x install.sh && ./install.sh # 运行调查 cd /opt/valkyrie claude /investigate --guided --evidence-path /cases/CASE-001/evidence/ ``` ## 用法 ``` /investigate # Auto-assess evidence, select techniques /investigate memory # Memory analysis specifically /investigate timeline # Timeline reconstruction /investigate --guided # Walk through all 6 IR phases /investigate --lean # Fast triage (3 techniques) /investigate --resume # Continue a previous investigation /investigate --iterate # Re-run with corrected approach /investigate --evidence-path /path/to/evidence # Specify evidence location ``` ## 调查流程 | 阶段 | 名称 | 执行操作 | 输出 | |-------|------|-------------|--------| | 1 | 证据清单 | 枚举文件,计算 SHA256,分类类型 | `inventory.json` | | 2 | 初步评估 | YARA 扫描、进程列表、网络连接、异常检测 | `triage.json` | | 3 | 深度分析 | 针对证据执行技术协议 | `analysis/*.json` | | 4 | 关联与综合 | 交叉引用发现,构建攻击叙事,ACH | `synthesis.json` | | 5 | 自校正 | 3 层取证验证与自动修复 | `corrections/` | | 6 | 报告 | 带有对具体工件引用的结构化叙述 | `report/` | ## 证据分级 | 级别 | 来源 | 置信度 | |------|--------|------------| | Tier 1 | 直接工具输出(单次 MCP 调用) | 最高——单源确认 | | Tier 2 | 交叉验证(2+ 工具相互印证) | 高——多源确认 | | Tier 3 | 分析推理(代理推理) | 可变——需明确置信度评分 | ## 弹性 VALKYRIE 能优雅地处理真实世界的工具故障: - **ISF 符号不匹配**:当 Volatility3 的 `pslist`/`cmdline`/`malfind` 返回空(缺少符号)时,自动回退到基于池扫描的插件(`psscan`/`netscan`),这些插件无需符号即可工作。限制在发现结果中记录。 - **部分证据**:仅内存证据?流程会调整技术选择——跳过仅磁盘技术,改为内存 + 恶意软件分级 + 基于内存的持久性分析。 - **工具故障**:若工具崩溃或超时,MCP 服务器返回结构化错误。协议引导代理采用替代方案,而非死胡同。 ## 与评判标准对齐 | 标准 | 查找位置 | |-----------|--------------| | **#1 自主执行**(决胜项) | 运行 `/investigate --guided` —— 6 个阶段无需人工干预即可执行。参见 `skills/ir-analysis/SKILL.md` | | **#2 IR 准确度** | [`docs/accuracy-report.md`](docs/accuracy-report.md) —— 19 个发现,0 个幻觉,2 次自校正 | | **#3 广度与深度** | 7 个技术协议、11 个 MCP 工具、17 个 Volatility 插件。参见 `skills/ir-analysis/protocols/` | | **#4 约束实现** | [`docs/architecture-diagram.md`](docs/architecture-diagram.md) —— 5 个架构层,46 个单元测试 | | **#5 审计追踪** | 每个案例目录中的 `logs/tool-execution.jsonl`。每个发现都引用 `[TOOL: 名称, 证据, 细节]` | | **#6 易用性** | 一键安装,`CLAUDE.md` 项目指南,回退策略已记录 | ## 创新贡献 VALKYRIE 的分析推理框架受 [Blevene/structured-analysis-skill](https://github.com/Blevene/structured-analysis-skill)(Apache 2.0)启发,该框架实现了 CIA/IC 结构化分析技术。创新贡献包括: - **事件响应专用技术库**——7 种以上取证技术(时间线重建、工件关联、ACH 适配假设检验、内存分析、持久性枚举、日志分析、恶意软件分级) - **取证自校正**——三层验证工件存在性、时间一致性、分析一致性),可捕获事件响应特有的幻觉模式 - **定制 MCP 服务器**——11 个类型化函数,带拒绝名单强制执行、SHA256 审计日志、ISF 符号自动解析、受控进程内存转储、FLOSS 优先字符串提取 - **证据分级**——区分已确认发现与分析推断,并附显式置信度评分 - **具备弹性的内存分析**——ISF 符号缺失时自动回退到池扫描,并在发现结果中记录平滑降级 ## 许可证 MIT —— 参见 [LICENSE](LICENSE)。 ## 作者 Diego Parra / [CrimsonVector Security](https://crimsonvector.com/)
标签:AI取证, Claude Code, Kill Chain, LLM代理, MCP服务器, SANS Find Evil, SIFT工作站, 取证调查, 快速取证, 推理框架, 数字取证, 结构化分析推理, 自主智能体, 自动化取证, 自动化脚本, 自校正, 证据保护, 逆向工具, 黑客松项目