aliyaalias19/glaive
GitHub: aliyaalias19/glaive
GLAIVE 是一个基于类型化证据图的自主 DFIR 引擎,通过架构级验证门控防止 LLM 在取证调查中产生幻觉,确保证据链的完整性和可溯源性。
Stars: 0 | Forks: 0
# GLAIVE
**图关联对抗调查与验证引擎 (Graph-Linked Adversarial Investigation & Verification Engine)**
[](LICENSE)
[](https://www.sans.org/tools/sift-workstation/)
[](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工作站, 数字取证, 特权检测, 自动化脚本, 逆向工具