aliyaalias19/glaive

GitHub: aliyaalias19/glaive

GLAIVE 是一个基于类型化证据图的自主 DFIR 引擎,通过架构级验证门控防止 LLM 在取证调查中产生幻觉,确保证据链的完整性和可溯源性。

Stars: 0 | Forks: 0

# GLAIVE **图关联对抗调查与验证引擎 (Graph-Linked Adversarial Investigation & Verification Engine)** [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) [![Platform: SIFT](https://img.shields.io/badge/Platform-SANS%20SIFT-blue.svg)](https://www.sans.org/tools/sift-workstation/) [![Extends: Protocol SIFT](https://img.shields.io/badge/Extends-Protocol%20SIFT-green.svg)](https://github.com/teamdfir/protocol-sift) GLAIVE 是为 **FIND EVIL!** 黑客马拉松(SANS Institute,2026 年 4 月至 6 月)提交的作品。它扩展了 Protocol SIFT —— 这是一个将 Claude Code 与 SIFT Workstation 配合使用的 SANS AI 编排 POC —— 并增加了一个基于类型化证据图构建的架构级幻觉预防层。 ## 状态 | 层级 | 状态 | 测试 | |-----------------------------|--------|----------------| | 类型化证据图 | 完成 | 187 个通过 | | 内容寻址证据存储 | 完成 | 24 个通过 | | 摄取 (Defender + Volatility) | 完成 | 35 个通过 | | EVTX 二进制适配器 | 完成 | 15 个通过 | | Orchestrator | 完成 | 11 个通过 | | 报告生成与门控 | 完成 | 13 个通过 | | MCP server (5 个工具) | 完成 | 42 个通过 | | Agent 循环集成测试 | 完成 | 2 个通过 | | Volatility 二进制执行 | 第 2 周 | — | | `graph-verification` 技能 (Protocol SIFT 集成) | 完成 | — (markdown 资产) | | Hunter agent + Claude Code 配置 | 第 2 周 | — | | 准确率测试套件 + 真实样本用例 | 第 3 周 | — | | 绕过测试套件 (5 种攻击) | 完成 | 21 个通过 | | 演示视频 | 第 3 周 | — | **总计:327 个测试通过,18 个集成测试可选(使用真实恶意软件数据,约 7 分钟)。** ## 五分钟演示 [ 演示视频链接 — 将在提交前添加 ] 该演示针对真实的 16 MB Windows Defender 事件日志(15,911 条记录,10 个检测事件,2 个实际的 Trojan 签名)展示了以下内容: 1. **摄取。** GLAIVE 的 MCP server 接收 `ingest_artifact("Defender.evtx", "defender_evtx")`。文件被计算 SHA-256 哈希并存入内容寻址存储中;15,901 个不受支持的事件类型被过滤掉;10 个受支持的检测事件成为图中类型化的 `AntivirusDetection` 节点。 2. **狩猎 (Hunt)。** Claude Code 调用 `query_graph(node_type="AntivirusDetection", filters=[{"field": "threat_name", "op": "contains", "value": "Trojan"}])`。图返回真实的发现 —— `Trojan:Win32/Cloxer` 在 `08:21:44` 被检测到,于 `08:21:49` 被隔离。 3. **审计。** Claude Code 调用 `get_node_provenance(canonical_key=...)`。节点可通过 图 → 证据哈希 → 源文件 进行溯源。每一个字节都是可恢复的。 4. **门控。** Claude Code 调用 `commit_finding(claim, supporting_node_keys=[real_key], confidence_hint="confirmed")`。门控检查图证据并*将其降级*为 "inferred" —— 因为目前还没有确证的边,所以无法获得 "confirmed" 的评级。该发现被提交,并透明地进行了降级。 5. **门控拒绝绕过。** Claude Code 尝试使用一个伪造的 `supporting_node_key`(引用了一个从未被观察到的进程)来执行 `commit_finding`。门控以 `decision: rejected_missing_node` 拒绝了该操作。这不是通过提示词实现的,而是通过架构设计实现的。 ## 获胜原因 | Protocol SIFT 既定规则 | GLAIVE 如何执行它 | |---|---| | "无幻觉" | 发现引用图节点;节点仅从经过验证的工具输出中创建 | | "确定性执行" | 工具输出流经 Pydantic 验证的 MCP handler,而非原始的 stdout | | "证据完整性" | 内容寻址证据存储 (SHA-256),强制执行只读路径 | | "验证" | `commit_finding` 拒绝任何其 `evidence_hash` 无法解析的声明 | Protocol SIFT 将这些规则作为提示词指令编写。GLAIVE 将它们编写为代码。 ## GLAIVE 的创新贡献是什么? GLAIVE 在 Protocol SIFT 的基础上增加了**四样东西**(关于今天已发布的内容,请参见[状态](#status)): 1. **一个类型化证据图** (Pydantic + NetworkX)。每一个取证观察 都成为一个具有溯源信息的类型化节点或边。推理发生在 图之上,而不是在 LLM 摘要文本之上。*(已发布。)* 2. **一个图验证 MCP 层。** 一个小型的 server(5 个工具,而不是 50 个), 位于 Claude Code 和图之间。提交发现的唯一方式是 通过 `commit_finding`,它会拒绝任何无法追溯到图路径的 声明。*(已发布。)* 3. **一个适用于 Protocol SIFT 的 `graph-verification` 技能。** 一个 `SKILL.md` 告诉 Claude Code 如何使用图层 —— 直接与现有的 内存分析 / plaso-timeline / 等技能一起使用。*(已发布。)* 4. **一个绕过测试套件。** 针对 GLAIVE 自身 约束的五项对抗性测试(幻觉键、置信度膨胀、提示词注入、路径遍历、资源耗尽),以及每个测试失败的架构级原因。参见 [BYPASS_TESTS.md](BYPASS_TESTS.md)。*(已发布。)* GLAIVE *并不会*取代 Protocol SIFT。基础的 CLAUDE.md、5 个现有的 技能、案例模板以及基于 bash 驱动的 SIFT 工具调用都保持 不变。GLAIVE 只是作为插件接入。 ## 快速开始 ``` git clone https://github.com/aliyaalias19/glaive.git cd glaive python3.11 -m venv .venv && source .venv/bin/activate pip install -e ".[dev]" ``` ### 验证构建(约 2 秒) ``` pytest # 预期:327 个通过,18 个取消选择 ``` 18 个被取消选择的测试是**集成测试**,它们针对真实的二进制 EVTX 文件运行。要执行它们,请将真实的 Windows Defender 事件日志放在 `test_evidence/Defender.evtx` 处(说明请参见 [docs/EVIDENCE.md](docs/EVIDENCE.md)),然后: ``` pytest -m integration # 预期:~7 分钟内 18 个通过(二进制 EVTX 解析负载较重) ``` ### 运行完整的 Agent 循环模拟 这是在端到端证明架构承诺的单一测试: ``` pytest tests/mcp_server/test_agent_loop.py -m integration -v ``` 该测试模拟了 Claude Code 针对真实的恶意软件数据按顺序调用所有 5 个 MCP 工具,其中包括一次门控必须拒绝的蓄意绕过尝试。如果测试通过,说明 GLAIVE 的每一层 —— schema、图、摄取、MCP 边界、门控 —— 都在正常工作。 ### 将 MCP server 与 Claude Code 结合使用 通过添加到 `~/.claude/mcp.json` 中,将 server 接入 Claude Code: ``` { "mcpServers": { "glaive": { "command": "python", "args": ["-m", "glaive.mcp_server"] } } } ``` 然后安装 `graph-verification` 技能,它教导 Claude Code 如何在 Protocol SIFT 现有技能的基础上使用这些 MCP 工具: ``` ln -s "$(pwd)/docs/skills/graph-verification" ~/.claude/skills/graph-verification ``` (实际的 `python -m glaive.mcp_server` 入口点将在第 2 周添加。) ## 仓库结构 ### 目前已提供 | 路径 | 包含内容 | |----------------------------|---------------------------------------------------------------------------| | `glaive/graph/` | Pydantic schema:10 种节点类型,12 种边类型,NetworkX wrapper | | `glaive/evidence/` | 内容寻址证据存储 (SHA-256 + manifest) | | `glaive/ingestion/` | 解析器 (Defender EVTX, Volatility) + EVTX 二进制适配器 + orchestrator | | `glaive/reporting/` | `FindingReport` —— 门控(强制执行置信度降级) | | `glaive/mcp_server/` | MCP server(5 个工具:ingest, query, provenance, commit, list) | | `tests/` | 327 个测试;18 个标记为 `integration`(针对真实二进制 EVTX 运行) | | `docs/EVIDENCE_GRAPH_SCHEMA.md` | 完整的 schema 规范 —— 10 种节点,12 种边,5 项原则 | | `docs/DECISIONS.md` | 29 个带有原理说明的战略和设计决策 | | `ARCHITECTURE.md` | 系统设计和信任模型 | | `LIMITATIONS.md` | GLAIVE **不**做的事 | | `evidence_samples/` | 指向公共证据数据集的 manifest | | `verification/bypass_tests/` | 21 项涵盖 5 种攻击类别的对抗性测试(参见 `BYPASS_TESTS.md`) | | `BYPASS_TESTS.md` | 面向评审的叙述:5 项攻击、防御机制及诚实的局限性说明 | ### 将在第 2-3 周推出 | 路径 | 状态 | |-----------------------|--------------------------------------------------------------------------| | `ACCURACY_REPORT.md` | 由 `verification/harness.py` 针对真实样本用例生成(第 3 周) | | `glaive/cli.py` | `glaive investigate` 命令行驱动程序 | | Volatility 集成 | 用于内存转储摄取的 vol.py shell-out (需要 SRL 证据包) | | 演示视频 | 针对真实证据的 5 分钟截屏视频 | ## 黑客马拉松合规性 专为 **FIND EVIL!** 黑客马拉松(SANS Institute,2026 年 4 月至 6 月)构建。 本项目是在黑客马拉松期间创作的全新作品。 预先存在的依赖项(Protocol SIFT, Volatility 3, Plaso, python-evtx, NetworkX, Pydantic)是未经修改的开源库。图 schema、MCP 验证层、graph-verification 技能和绕过测试套件是原创贡献。 ## 许可证 MIT —— 参见 [LICENSE](LICENSE)。
标签:EVTX解析, LLM反幻觉, SIFT工作站, 数字取证, 特权检测, 自动化脚本, 逆向工具