FUYOH666/evidencegene-court
GitHub: FUYOH666/evidencegene-court
一个基于 MCP 协议和多方对抗式 AI 法庭的自主 DFIR 框架,通过架构级证据校验机制在本地环境中消除 LLM 取证分析中的幻觉问题。
Stars: 1 | Forks: 0
# EvidenceGene Court
[](https://github.com/FUYOH666/evidencegene-court/actions/workflows/ci.yml)
[](LICENSE)
[](https://www.python.org/downloads/)
[](https://github.com/astral-sh/uv)
[](https://modelcontextprotocol.io/)
[](tests/test_attestation.py)
[](https://findevil.devpost.com/)
为 [FIND EVIL!](https://findevil.devpost.com/)(SANS Institute,2026)而构建——
这是首个针对 [SIFT Workstation](https://www.sans.org/tools/sift-workstation) 上
自主 AI 事件响应的黑客马拉松。
**演示视频:** [youtu.be/HerCqv_LA3Q](https://youtu.be/HerCqv_LA3Q) ·
**模式:** 自定义 MCP Server + Multi-Agent · **完全本地运行**(无需云)

在 [DFIR Madness Case 001](https://dfirmadness.com/the-stolen-szechuan-sauce/) 中,
法庭自主识别出了文档中记录的植入物 `coreupdater.exe` 及其 C2 连接,通过
将内存证据与磁盘时间线进行相互印证,将其提升为 `CONFIRMED` 状态,并拦截了注入的伪造发现——所有这些都在一台配备
本地模型的笔记本电脑上完成。请参阅 [准确率报告](docs/ACCURACY_REPORT.md)。
## 为什么会有这个项目
GTG-1002 展示了攻击者如何以 80–90% 的自主性运行由 MCP 编排的入侵行动。EvidenceGene Court 则是防御方的一面镜子:采用了相同的
agent 加 MCP 结构,但反转了信任边界——每个工具都是
只读的,每个输出都经过内容寻址,且每个主张都会被审计。
整个调查过程完全**在一台配备本地 LLM 的笔记本电脑上运行**
(LM Studio / 任何兼容 OpenAI 的 endpoint)。包含 PII 或
特权的证据材料绝不会离开该机器。如果您的策略允许,
同一个配置标志可以将法庭指向云端 API。
## 架构(模式:自定义 MCP Server + Multi-Agent)
```
flowchart TB
subgraph evidence [Read-only evidence]
IMG[Disk E01 / Memory image]
end
subgraph mcp [sift-gene-mcp — typed MCP server]
TOOLS[11 typed read-only tools]
STORE[Artifact store SQLite]
CHAIN[SHA-256 audit chain JSONL]
end
subgraph court [EvidenceGene Court]
P[Prosecutor]
D[Defender]
A[Arbiter]
end
GATE[FindingSerializer — fail-closed gate]
IMG --> TOOLS --> STORE --> CHAIN
STORE --> P & D
P --> A
D --> A
A --> GATE
GATE -->|valid artifact_refs| REPORT[Findings: CONFIRMED / INFERRED / ABSTAIN]
GATE -->|reject + log| A
```
安全边界——全部基于**架构层面**,无任何基于提示词的约束:
| 边界 | 执行机制 |
|----------|-------------|
| 无 shell,无写入 | 网络传输中不存在此类工具;不可能发生数据破坏 |
| Context-window 安全 | 工具仅返回受限预览 + `artifact_id`;完整数据保留在 SQLite 中 |
| 抗幻觉 | 序列化器会拒绝 `artifact_refs` 缺失或未知的发现 |
| 等级完整性 | 仅当引用跨越 >=2 个不同的证据来源时,才授予 CONFIRMED |
| 失控循环 | 法庭 orchestrator 中设有严格的 `max_iterations` 上限 |
| 防篡改证据 | 仅追加的 JSONL 配合 SHA-256 哈希链;支持 `verify_audit_chain` 重放 |
## v0.2 — Red-team、消融与陪审团
三项新增功能超越了“类型化 MCP + 抗幻觉”(现已成为基本门槛):
- **注入测试套件 (`egc-court redteam`)** —— 即 GTG-1002 的镜像。自主
使用映射到 MITRE ATLAS 的 6 个 payload 攻击我们自己的防御器,并从架构上证明每一个都被中和(最新结果:6/6 成功防御)。直接回应了
评审标准:“护栏是基于架构的,还是基于提示词的——是否测试过绕过?”请参阅 [docs/ATLAS_MAPPING.md](docs/ATLAS_MAPPING.md)。
- **反事实消融 (`egc-court ablate`)** —— 移除一个证据源,
观察 CONFIRMED 是如何坍缩为 INFERRED 的。发现是可证伪的;该等级是由证据争取的,而非由模型断言的。
- **模型陪审团 (`egc-court jury`)** —— 收集一次证据,为每个
陪审员模型运行法庭,仅提升达成跨模型共识的结果。具有弹性:出错的陪审员
将弃权,而不会导致评审组崩溃。
此外还加入了 ATT&CK kill-chain 时间线和自包含的 HTML 报告
(`egc-court report`)。所有新功能都是确定性的且可离线测试;只有
陪审团功能会消耗(本地)LLM 调用。一个合成的小型测试夹具(`egc-court fixture`)
可以在几毫秒内运行整个 pipeline,无需使用真实的证据镜像。
## 快速开始
```
# 前置要求: uv, sleuthkit (brew install sleuthkit libewf), python 3.12+
uv sync --extra dev --extra forensics
# 健康检查 (LLM endpoint + forensic tools)
uv run egc-court health
# 独立运行 MCP server (stdio)
uv run egc-mcp
# 针对案件运行全面 court 调查
uv run egc-court investigate --memory /cases/case001/citadeldc01.mem --source memory:dc01
```
通过 `.env` 进行配置(参见 `.env.example`)—— `EGC_LLM_BASE_URL` 默认指向
LM Studio 的 `http://localhost:1234/v1`。
## 在 SIFT Workstation 上(供评审人员参考)
所有使用的工具(Volatility 3、Sleuth Kit)均随 SIFT 预装。请参阅
[docs/TRY_IT_OUT.md](docs/TRY_IT_OUT.md) 获取分步指南。
## 数据集
演示案例:[DFIR Madness Case 001 — The Stolen Szechuan Sauce](https://dfirmadness.com/the-stolen-szechuan-sauce/)
(公开,并已发布基准事实)。请参阅 [docs/DATASET.md](docs/DATASET.md)。
## 项目布局
| 路径 | 内容 |
|------|------|
| `src/evidencegene/tools/` | 类型化只读 MCP server + 取证封装 |
| `src/evidencegene/court/` | 检察官/防御者/仲裁员 orchestrator + LLM 客户端 |
| `src/evidencegene/attestation/` | FindingSerializer + 等级(fail-closed 闸门) |
| `src/evidencegene/artifacts/` | Artifact 存储区 + SHA-256 审计链 |
| `docs/` | 架构、数据集、准确率报告、试用指南 |
| `docs/submission/` | 演示视频、图表、真实运行日志样本 |
## 文档
- [架构与信任边界](docs/ARCHITECTURE.md)
- [准确率报告](docs/ACCURACY_REPORT.md)
- [数据集](docs/DATASET.md) · [试用指南](docs/TRY_IT_OUT.md)
- [贡献指南](CONTRIBUTING.md) · [安全策略](SECURITY.md) · [更新日志](CHANGELOG.md)
## 许可证
MIT —— 请参阅 [LICENSE](LICENSE)。由 [Aleksandr Mordvinov](https://github.com/FUYOH666) 构建。
开源旨在让 DFIR 社区可以在此基础上进行构建。
标签:AI智能体, IP 地址批量处理, MCP协议, PyRIT, 多智能体系统, 库, 应急响应, 数字取证, 时序数据库, 自动化脚本