TimothyVang/Verdict

GitHub: TimothyVang/Verdict

面向 SANS FIND EVIL! 黑客松构建的自主 Windows DFIR 代理,通过双模型交叉验证和 schema 层取证规则编码实现自动化事件响应与可信结论生成。

Stars: 0 | Forks: 0

# 判定结果 面向取证 LLM 代理的模式感知验证器网关。为 SANS *FIND EVIL!* 黑客松而构建(截止日期 **2026 年 6 月 15 日 EDT 晚上 11:45**;团队内部目标 **6 月 14 日 EOD** = 约 28 小时缓冲)。 **一句话概括:** 两个 AI 模型针对取证证据互相交叉检查,将 SANS 调查规则编码为 schema 规则(而非提示),生成防篡改的 HMAC 签名审计追踪,将每个发现映射回特定的工具执行。 **黑客松背景:** *FIND EVIL!* 是 SANS Institute 举办的拥有 2,447 名参与者 DFIR-AI 黑客松。赞助方:SANS Institute。评委:Rob T. Lee (CAIO)。目标是“让 Protocol SIFT 成为完全自主的事件响应代理”——IR 代理需在 8 分钟内完成从初始访问到得出结论的全程,这与 AI 驱动的攻击者达到域控制所需的时间窗口一致。 ## 去哪阅读什么 源代码位于 `src/verdict/` 目录下。外层的 `Verdict/` 目录是仓库根目录; `src/verdict/` 是可导入的 Python 应用包。 | 如果你正在进行… | 按此顺序阅读 | |---|---| | **首次接触任何内容** | 此 README → `CLAUDE.md` §3(硬性规则) → `docs/ARCHITECTURE.md` | | **Schemas / 验证器** | `CLAUDE.md` §3.2–3.6 → `docs/ARCHITECTURE.md` §4 → `docs/BUILD_PLAN.md` W1.B–W1.E | | **规划器 / 编排** | `CLAUDE.md` §4 → `docs/ARCHITECTURE.md` §2 → `docs/BUILD_PLAN.md` W2.B–W2.C | | **工具封装** | `docs/ARCHITECTURE.md` §6 → `docs/BUILD_PLAN.md` W2.A + W2.F | | **验证器策略** | `CLAUDE.md` §8 → `docs/ARCHITECTURE.md` §1 → `docs/BUILD_PLAN.md` W3.A–W3.C | | **账本 / 审计追踪** | `CLAUDE.md` §9 → `docs/ARCHITECTURE.md` §5 → `docs/BUILD_PLAN.md` W2.D | | **CLI / 提交** | `CLAUDE.md` §10 → `docs/BUILD_PLAN.md` W6.* → `docs/DEVPOST_COMPLIANCE.md` | | **配置你的机器** | `CONTRIBUTING.md` §0–4 → `downloads/README.md` | **文档冲突时的权威顺序:** Devpost 规则 → `DEVPOST_COMPLIANCE.md` → `ARCHITECTURE.md` → `BUILD_PLAN.md` → `CLAUDE.md`。代码高于文档;如果代码是正确的,请修复文档。 **发布文档:** 设置、可复现性、范围、CLI、演示、评委清单、数据集、准确性、生产审计和新颖性均位于 [`docs/RELEASE.md`](docs/RELEASE.md) 中。Devpost 规则的可追溯性位于 [`docs/DEVPOST_COMPLIANCE.md`](docs/DEVPOST_COMPLIANCE.md) 中。 ## VERDICT 的功能 ``` Memory image / disk image / EVTX bundle │ ▼ ┌───────────────────────────────┐ │ VERDICT Gateway │ │ 1. Plans the investigation │ "Where would evil hide?" │ 2. Runs forensic tools │ vol3, hayabusa, plaso, MFTECmd... │ 3. Two models cross-check │ Qwen3 vs GLM-4.5-Air │ 4. Quorum decides verdict │ VERIFIED / CONTESTED / UNVERIFIABLE │ 5. HMAC-signs the audit log │ Tamper-evident chain └───────────────────────────────┘ │ ▼ Findings + Audit Trail - Each finding cites ≥2 artifact classes (FOR500) - Caveats acknowledged (Amcache ≠ execution etc.) - MITRE sub-technique IDs - Tamper-evident HMAC chain - Trace tree in Langfuse ``` 三种模式由环境(Internet ✓/✗,GPU ✓/✗)自动检测,并在 `case_init` 时**锁定**:`cloud-only`(SOC 笔记本电脑),`airgap-only`(DCO),`dual`(取证实验室)。完整的模式表、代理循环拓扑和三层不可变防御详见 `docs/ARCHITECTURE.md` §1–§3。 ## 我们的独特之处(护城河) ``` Single LLM VS Two engines cross-check Human gates AFTER AI VS AI gates AGAINST AI No verification VS Cross-family quorum No durable checkpointing VS Kill-9 resilient resume No trace observability VS Langfuse trace tree UI Forensic rules in prompts VS Forensic rules in TYPES Single mode VS Cloud / air-gap / dual ``` **竞争对手没有的三点:** 1. **取证规则编码在代码中,而非提示中。** Schema *拒绝*引用 Amcache 但未承认 LastModified 注意事项的发现。Schema *拒绝*仅包含单个 artifact 类的执行声明。Hunt Evil 基线 + DKOM 偏差检测自动触发。 2. **双向审计追踪。** 账本条目 → Langfuse 追踪 → 工具调用 → microsandbox 版本 → 文件哈希。以及反向:追踪 → 账本条目 → 发现。评委可以双向深入查看。 3. **模式锁定验证。** 案件中途不能切换模式。恢复时始终使用原始模式。模式升级通过显式的 `verdict reverify` 发生,从而产生并行的结论链。 ## 6 周路线图(摘要;完整计划在 `docs/BUILD_PLAN.md` 中) ``` WEEK 1 ── May 2–8 ── FOUNDATIONS + SCHEMAS ★ Schemas freeze May 8 WEEK 2 ── May 9–15 ── TOOL SURFACE + LANGGRAPH WEEK 3 ── May 16–22── VERIFIERS + TSI + CHECKPOINTING WEEK 4 ── May 23–29── SKILLS + EVALS ★ Case 001 disagreement WEEK 5 ── May 30–Jun 5 ── MODE AUTODETECT + POLISH ★ Rough demo cut May 30 WEEK 6 ── Jun 6–14 ── DEMO + DOCS + SUBMIT ★ Submit Jun 14 EOD ``` 角色:Tim(基础设施、账本、运维),Beaver(编排、验证器),Haley(推理、可观测性),KP(剧本、技能、评估)。 ## 演示(5 分钟,7 个关键节点) ``` 0:00 ─┬─ Cold open + architecture flash 0:30 ─┤ CLOUD-ONLY MODE (60s) — three Claude samples → 2-of-3 → VETTED_CLOUD 1:30 ─┤ AIR-GAP MODE (90s) — THE HERO SHOT │ ⓵ DKOM divergence (pslist+psscan) → T1014 auto │ ⓶ Hunt Evil masquerade (scvhost.exe parent=cmd.exe) │ ⓷ Amcache caveat acknowledged in rationale │ ⓸ Pivot in action (1 pivot, 0 replans) │ ⓹ Disagreement → CONTESTED → replan → VERIFIED ★ (Devpost-required self-correction) │ ⓺ TSI tcpdump proof (key never enters VM) │ ⓻ Kill -9 + verdict resume 3:00 ─┤ DUAL MODE (60s) — three-way verification → VETTED_DUAL 4:00 ─┤ Architecture recap + per-mode accuracy table 5:00 ─┴─ End card: repo URL + MIT license ``` ## 映射到 6 个 Devpost 评判标准 1. **自主执行质量** *(决胜局)* — 模式感知验证器策略。Plan-then-Execute 结合 planner_critique CoVe + comprehension_gate + pivot 对比 replan + unverifiable_finalize。通过跨引擎仲裁进行自我纠正。 2. **IR 准确性** — Artifact 对规则,Tier-1 注意事项,MITRE 子技术,VETTED_CLOUD 与 VERIFIED 的诚实度,Hunt Evil 伪装,DKOM 自动检测。每种模式 5 个 Inspect AI 评分器。 3. **分析的广度和深度** — “在较少类型上深入分析胜过对许多类型的肤浅覆盖”——我们直接依赖的 Devpost 评分标准。Windows-DFIR 深度优先;v2 扩展点已命名(第 5 个 `net_executor` + `live_executor` 分支)。 4. **约束实现** — 三层不可变性(PreToolUse + DenyRule + microsandbox 内核挂载)。HMAC 账本。TSI。case_init 时的模式锁定。**架构级,非提示级。** 5. **审计追踪质量** — HMAC 账本 ↔ Langfuse 双向。三级 ID 层次结构。每个输出文件 SHA-256。检查环境元数据(NIST SP 800-86)。 6. **可用性和文档** — 可从全新的 SIFT VM 复现。`verdict doctor` 预检。带有任务 ID 的 Conventional Commits。agentskills.io 可移植技能。 **决胜局意识:** 规则按标准顺序打破平局。在自主执行质量(#1)上全力以赴——自我纠正节点必须完美落地。 ## 前 3 大风险 ``` RISK #1 — Microsandbox hits a blocker week 4+ Likelihood: MEDIUM (pre-1.0; latest 0.1.x). Impact: HIGH (kills TSI hero shot). Mitigation: Test it HARD in week 2, not week 4. RISK #2 — Case 001 doesn't disagree by end of week 4 Likelihood: MEDIUM. Impact: HIGH (no air-gap demo without disagreement). Mitigation: KP starts engineering W1; engineer Case 002 if 001 fails. RISK #3 — Schemas slip past May 8 Likelihood: MEDIUM. Impact: EXTREME (cascades into every later week). Mitigation: Hard descope on May 6 if Phase W1.B not 80% done. ``` **主要降级优先级**(在压力下按顺序削减):可选适配器 → REMnux MCP → kill-9 混沌测试 100/100 → 6 个技能中的 5 个 → planner CoT 捕获 → planner_critique_node → pivot_node。 **绝不削减:** schema bundle,seed-fix,剧本,psscan+DKOM,executor split,≥1 验证器策略,kill-9 恢复,演示视频,Devpost 提交。 ## 贡献 外部贡献欢迎在 **6 月 14 日 EOD** 提交截止前进行。团队内部工作由 [`docs/BUILD_PLAN.md`](docs/BUILD_PLAN.md) 中的 `W#.#.#` 任务 ID 跟踪;外部 PR 应从相同的积压工作中挑选,并遵守 [`CLAUDE.md`](CLAUDE.md) 中的 §3 硬性规则。 ### 参与其中 | 渠道 | 用途 | |---|---| | [GitHub Discussions](https://github.com/TimothyVang/Verdict/discussions) | 问答、想法、关键节点捕获、投票。分类路由详见[欢迎贴](https://github.com/TimothyVang/Verdict/discussions/1)。 | | [GitHub Issues](https://github.com/TimothyVang/Verdict/issues) | 错误报告、回归、跟踪工作。如果存在对应的 `W#.#.#` 任务 ID,请引用该 ID。 | | [`SECURITY.md`](SECURITY.md) | 漏洞 — **切勿**在 Discussions 或 Issues 中发布可被私下利用的细节。 | ### 使用 LLM 代理快速开始 此代码库旨在供 LLM 编码代理浏览。[`CLAUDE.md`](CLAUDE.md) 是操作章程 — Claude Code 在会话开始时自动加载它;Cursor / Continue / Cline / Aider 在指向仓库根目录时行为类似。 1. **克隆并进入目录** git clone https://github.com/TimothyVang/Verdict.git && cd Verdict 2. **在你的 LLM 代理中打开仓库。** 它将自动读取 [`CLAUDE.md`](CLAUDE.md) — §3 包含硬性规则,§10 记录了 CLI + 命令,§2 是文档冲突时的权威链。 3. **在接触依赖它们的代码之前,启动真实的后端服务**(禁止使用 mock — 见 §3.10)。安装依赖项: uv sync --all-extras 完整工具链表请参阅 [`CONTRIBUTING.md`](CONTRIBUTING.md)。 4. **选择一个任务** 从 [`docs/BUILD_PLAN.md`](docs/BUILD_PLAN.md) 中按 `W#.#.#` ID 挑选。过滤未选中的 `[ ]` 框;尊重所有权(Tim / Beaver / Haley / KP)。将相关的 `W#.#.#` 任务主体展示给你的代理,使其拥有失败测试规范和验收门。 5. **运行 TDD 循环** 根据 `CLAUDE.md` §3.7:失败测试 → RED → 实现 → GREEN → 每个任务 ID 一次提交,格式为 `feat(scope): summary [W#.#.#]`。**绝不**使用 `--no-verify`,**绝不**使用 `git commit --amend`,**绝不** mock VERDICT 内部模块(§3.10)。 6. **手动提交并推送** 使用 `CLAUDE.md` §3.7 中的 Conventional Commit 格式。不要绕过 hooks、签名或历史规则。 7. **打开一个 PR** 在标题中包含 `W#.#.#` 任务 ID — `gh pr create --draft --title "" --body " + summary + RED/GREEN snippets>"`。 **在代理编辑代码之前向其展示的硬性规则**(这些是关键支撑规则 — 完整列表在 `CLAUDE.md` §3 中): - §3.1 — 证据完整性(只读 `/evidence`,进入时哈希,每次调用哈希,每个输出文件 SHA-256)。 - §3.2 — 多 artifact 佐证(`Finding.artifact_paths` 和 `artifact_classes` 均 `min_length=2`;执行类技术需要 ≥2 个不同的 `ArtifactClass` 值)。 - §3.5 — MITRE 子技术精度(正则表达式 `^T\d{4}(\.\d{3})?$`;当子技术可确定时,发出 `T1055.012`,而非裸的 `T1055`)。 - §3.7 — 带有 `[W#.#.#]` 任务 ID 的 Conventional Commits;禁止 `--no-verify`,禁止 `--amend`。 - §3.8 — 许可证白名单:仅限 MIT 或 Apache-2.0。Hard NOs 表(Daytona AGPL,REMnux GPL,Llama 4 / Gemma 3 社区版,Modal / LangSmith / Braintrust / Phoenix / AutoGen / MS Agent Framework)是最终决定。 - §3.10 — 代码库中任何地方都不允许使用 mock。每一层从第一次提交起就连接真实服务。 ### 不使用 LLM 遵循 [`CONTRIBUTING.md`](CONTRIBUTING.md) 的步骤 0–7 进行完整的人工键盘入职(账户访问 → `gh auth login` → 工具链 → GPG/SSH 签名 → 克隆 → 冒烟测试调查)。 ## 快速参考 | 需求 | 阅读 | |---|---| | 架构细节、schemas、威胁模型 | `docs/ARCHITECTURE.md` | | 逐日 TDD 任务计划、任务 ID、所有权 | `docs/BUILD_PLAN.md` | | Devpost 规则到产物的映射、评委清单 | `docs/DEVPOST_COMPLIANCE.md` | | 代理必须遵守的硬性规则 | `CLAUDE.md` §3 | | 贡献者入职(`gh auth`、GPG、克隆、冒烟测试) | `CONTRIBUTING.md` | | 社区问答、想法、关键节点捕获 | [GitHub Discussions](https://github.com/TimothyVang/Verdict/discussions) | | 错误报告 + 跟踪工作 | [GitHub Issues](https://github.com/TimothyVang/Verdict/issues) | | 漏洞报告 | `SECURITY.md` | | 需要获取哪些大型二进制文件及其位置 | `downloads/README.md` | ### CLI 界面(单行命令) _BLOCK_5/> `verdict reverify --mode ` 在新模式下重新运行验证并写入一个*并行的*结论链 — 原始账本永远不会被修改。完整的 CLI 参考在 `CLAUDE.md` §10.2 中;标志规范在 `docs/BUILD_PLAN.md` W3.C.2 中。
标签:Claude Agent SDK, Devpost, DFIR Agent, DLL 劫持, HMAC签名, LangGraph, Plan-then-Execute, Protocol SIFT, Python, Rob T. Lee, SANS FIND EVIL, SANS Institute, Schema层, SGLang, SIFT, Windows DFIR, 事件响应自动化, 云模式, 人工智能安全, 初始访问, 双AI交叉验证, 双模态, 取证学科, 合规性, 域控制, 大语言模型, 审计追踪, 工具执行映射, 库, 应急响应, 数字取证, 无后门, 气隙隔离模式, 溯源, 网络安全, 网络攻击分析, 自主智能体, 自动化取证, 自动化脚本, 逆向工具, 防篡改, 隐私保护, 黑客松