FUYOH666/evidencegene-court

GitHub: FUYOH666/evidencegene-court

一个基于 MCP 协议和多方对抗式 AI 法庭的自主 DFIR 框架,通过架构级证据校验机制在本地环境中消除 LLM 取证分析中的幻觉问题。

Stars: 1 | Forks: 0

# EvidenceGene Court [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/4ab62904f6235825.svg)](https://github.com/FUYOH666/evidencegene-court/actions/workflows/ci.yml) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) [![Python 3.12+](https://img.shields.io/badge/python-3.12+-blue.svg)](https://www.python.org/downloads/) [![Package manager: uv](https://img.shields.io/badge/deps-uv-de5fe9.svg)](https://github.com/astral-sh/uv) [![MCP](https://img.shields.io/badge/protocol-MCP-000.svg)](https://modelcontextprotocol.io/) [![Tests](https://img.shields.io/badge/guardrail%20tests-7%2F7-success.svg)](tests/test_attestation.py) [![Hackathon](https://img.shields.io/badge/SANS-FIND%20EVIL!%202026-purple.svg)](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 · **完全本地运行**(无需云) ![架构图](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/18113a58d4235831.png) 在 [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, 多智能体系统, 库, 应急响应, 数字取证, 时序数据库, 自动化脚本