hunchom/claude-code-gauntlet

GitHub: hunchom/claude-code-gauntlet

一个 Claude Code 插件,将漏洞研究组织为六阶段可审计管道,强化可复现验证与人类决策。

Stars: 1 | Forks: 0

claude-code-gauntlet

ci license python 3.11+ claude code plugin version v0.3.2

安装 · 运行 · 管道 · 限制 · 对比 · 架构

**一个将漏洞研究转化为可审计管道的 Claude Code 插件。** 十七个子代理通过六层梯子协调运行 — `A → B → B.5 → C → C.5 → D` — 每个阶段都要求在磁盘上有具体的证据: - **ASan 栈哈希**:在模糊测试主机上能复现 3/3 - **符号执行见证**:可从确定性种子重放 - **新鲜上下文验证器裁决**:两个隔离代理的结论 - **Merkle 根**:覆盖发现中每个事实性原子 如果任一阶段拒绝,发现会在人类看到之前终止。 ### 来自 Claude Code 会话 ``` /vuln-audit # interactive /vuln-audit-autonomous # hands-off loop /vuln-audit-status # state snapshot ``` ### 来自终端 ``` ./bin/vr status # one-line state ./bin/vr dashboard # full dashboard ./bin/vr review # Gate-D review TUI ./bin/vr watch # tail .vr-state/events/ ``` ## 管道 ``` flowchart LR A([scope]) --> B([reachable + ASan 3/3]) B --> B5([symex witness]) B5 --> C([dual fresh validators]) C --> C5([counter-symex on release tag]) C5 --> D([human send]) classDef gate fill:#0E1116,stroke:#5A6472,stroke-width:1px,color:#E6E9EF classDef send fill:#0E1116,stroke:#FF5C4D,stroke-width:2px,color:#FF5C4D class A,B,B5,C,C5 gate class D send ``` 每个箭头对应 `hooks/gate-*.sh` 中的一个钩子。钩子是一个 **Shell 脚本,而非提示** — 它读取 `.vr-state/` 并写入阶段通过条目或拒绝转换。没有 LLM 自我报告;没有自然语言中的“我已验证”。 ## 安装 **1. 克隆并引导。** 安装主机工具、Python 虚拟环境、CodeQL、GitNexus 和 `vr` 包。`all` 在最后自动提示选择后端。 ``` git clone https://github.com/hunchom/claude-code-gauntlet.git cd claude-code-gauntlet ./install all # tools + venv + codeql + gitnexus + interactive backend prompt ./install doctor # diagnostic — re-run anytime to verify integrity ``` `all` 运行是幂等的。首次安装会获取约 1GB(主要是 CodeQL),可安全重用以补全遗漏依赖。 **2. 注册插件到 Claude Code。** 两种方式: ``` # 针对本地克隆的开发: /plugin dev-install ~/claude-code-guantlet # 针对固定版本的 GitHub 发布: /plugin marketplace add hunchom/claude-code-gauntlet /plugin install claude-code-gauntlet@hunchom ``` 两种路径都会将 17 个子代理、阶段钩子和 `/vuln-audit` 斜杠命令注册到会话中。 **3. 运行审计**,可在任意 Claude Code 会话中执行: ``` /vuln-audit # interactive /vuln-audit-autonomous # hands-off loop /vuln-audit-status # state snapshot ``` 这 17 项技能也可作为真实的 Python 包在 Claude 之外导入使用: ``` python -m vr.skills.provenance_merkle build-atom \ --claim "heap-buffer-overflow at src/parser.c:412" \ --source-type file_content \ --source-ref "src/parser.c#L412@a1b2c3d" \ --repo-root /opt/src/target ``` ## 你运行什么 | 命令 | 用途 | |---|---| | `/vuln-audit ` | 交互式 — 范围提示,随后阶段梯子 | | `/vuln-audit-autonomous ` | 免手动循环,跨压缩会话继续 | | `/vuln-audit-status` | 只读活动状态 | | `/vuln-audit-dashboard` | 候选表与最近阶段事件 | | `/vuln-audit-kill` | 设置停止标志;下次迭代退出 | | `/vuln-audit-intake ` | 导入线索(OSS-Fuzz / Syzbot / 回滚) | | `/vuln-audit-postmortem` | 活动后的事后分析报告 | `` 可以是 Git URL(`https://`、`git@`、`ssh://`、`file://`)或指向已克隆本地仓库的绝对路径/`~/` 前缀路径。远程 URL 克隆到 `targets/`;本地路径则以只读方式符号链接并锁定其当前 HEAD 作为提交。无论哪种方式,插件都会通过 GitNexus 索引,运行阶段梯子并在 Gate D 停止,由人类批准。不会将任何内容发送到外部收件箱。 ## 执行后端 通过 `./install backend` 选择一个: | 后端 | 模糊 + 符号执行主机 | 所需条件 | 主机操作系统 | |---|---|---|---| | `remote_vm` | Linux,通过 SSH | `user@host` + SSH 代理密钥 | 任意 | | `local_container` | Docker 或 Podman | 已安装 Docker / Podman | 任意 | | `local_host` | 当前机器 | 仅限 Linux | Linux | ## 仓库布局 ``` claude-code-gauntlet/ |-- .claude-plugin/plugin.json plugin manifest |-- ARCHITECTURE.md 82KB design document (gates, V1..V9 spine) | |-- agents/ 17 subagents (Opus 4.6, pinned) |-- commands/ 15 slash commands |-- skills/vr-*/SKILL.md 17 skill definitions (authoritative CLI + reference pseudocode) |-- lib/python/vr/ installable Python package | |-- _common/ atomic_state, errors, hashing, ssh | |-- skills/*.py 17 authoritative skill modules | `-- __main__.py python -m vr dispatcher | |-- hooks/ 17 hook scripts (gate-a..gate-d + dispatch guards) |-- mcp/ 9 MCP servers (gitnexus, nvd, klee-runner, ...) |-- bin/ orchestrator, dispatcher, TUI, status line |-- schemas/intent.schema.json JSON Schema for orchestrator intents `-- tests/ pytest suite (44 tests, runs <0.5s) ``` ## 阶段链如何工作 规范 Gate-B 链(可达性与可复现): ``` 1 asan_poc cycle build with ASan+UBSan, run PoC 3x, capture stack hashes 2 fingerprint_match stab. require 3/3 identical signatures 3 provenance_merkle verify live-rehash every file / CVE / commit-SHA atom 4 write_gate write G_B pass append to gates.json, back-patch candidates.json ``` 每个技能都有三种状态的退出码: | 退出码 | 含义 | 阶段行为 | |---|---|---| | `0` | 成功 | 写入阶段通过条目 | | `1` | 基础设施错误(磁盘、SSH、网络) | 重试 / 汇报给操作员 | | `2` | 验证不匹配 — 真实负例 | 阶段失败,候选被埋 | 编排器读取退出码,而非自然语言。
全部五个链条 ``` python -m vr.skills.chain list # gate_b_pass, gate_b5_pass, gate_c_pass, gate_c5_pass, gate_d_send python -m vr.skills.chain show --name gate_d_send ```
## 限制 - **TP 率目标是展望性的,尚未测量。** 尚未积累发现的校准账本(`ARCHITECTURE.md` §13 技术 8 仅作骨架)。在此之前,文档中的任何数字都是架构目标,而非基准。 - **端到端尚未在真实目标上运行。** 所有组件独立测试通过(44 个 pytest 绿色);尚未完成从 A 到 D 的完整活动并产生公开发现。不要期望即插即用的 CVE 生成器。 - **符号执行见证的大规模重放未测试。** KLEE + angr 运行器分发正确且签名比对技能可重放,但尚未观察到端到端的 Gate B.5 `SAT_CONCRETE_VERIFIED`。激励生成仍由 LLM 起草且脆弱。 - **新鲜验证器的独立性是部分的。** 两个使用不同 `system_prompt_flavor` 启动的 Opus 代理共享底层权重 — 共享先验幻觉仍可能通过 V5。V1–V7 联合可部分缓解,但无法完全消除。 - **macOS 仅限开发。** 模糊测试、符号执行与 ASan 重现均在 Linux 上运行。macOS 上请选择 `remote_vm` 或 `local_container`。 - **不是扫描器。** 消费预目标化的仓库并执行阶段梯子,不会扫描整个代码主机以寻找目标。 ## 对比 | 工具 | 方法 | 是否验证可复现 | 适用场景 | |---|---|---|---| | **claude-code-gauntlet** | LLM 审计员 + 6 个机械阶段 | ASan 3/3 + 符号执行重放 | 针对性研究 | | OSS-Fuzz | 持续黑盒模糊测试 | ASan 崩溃报告 | 上游项目 | | Semgrep + CodeQL | 静态模式匹配 | 否 — 需逐条筛选 | CI 时防护 | | 手动审计 + 模糊器 | 专家时间 | 依赖每个引擎的纪律 | 深度一次性分析 | ## 配置 首次运行 `/plugin install` 时提示,或通过环境变量用于脚本化运行: | 变量 | 默认值 | 含义 | |---|---|---| | `FUZZ_HOST` | *(未设置)* | `remote_vm` 模式下 SSH 的 `user@host` | | `NVD_API_KEY` | *(未设置)* | 提升 NVD 速率限制;无缓存也可运行 | | `GITHUB_TOKEN` | 继承 `gh auth` | GHSA 咨询查询 | | `DO_API_TOKEN` | *(未设置)* | 仅当使用 DigitalOcean VM 时需要 | | `AUTONOMOUS_MODE` | `false` | `true` 时自动批准推进阶段的调用 | ## 反幻觉脊柱(V1..V9)
点击查看简要版本 | 检查 | 强制内容 | |---|---| | V1 | 物理证实 — ASan 栈哈希在模糊主机上复现 3/3 | | V2 | 溯源 Merkle — 每个原子均可对活源代码重新哈希 | | V3 | 预言机三角测量 — Semgrep / CodeQL找到同一汇点 | | V4 | 补丁反转 — 草案补丁使 PoC 不再崩溃 | | V5 | 双新鲜验证器 — 两个隔离代理达成“漏洞”结论 | | V6 | 魔鬼代言人 — 结构化反证尝试 | | V7 | 阶段模式 — 每个 `gates.json` 的 JSON Schema | | V8 | 校准账本 — 滚动 Brier 评分控制活动 | | V9 | 批量评审节奏 — 人类在 Gate C 与 Gate D 进行裁决 | 参见 `ARCHITECTURE.md` §13 获取完整原理。
## 许可证 AGPL-3.0-or-later。详见 [`LICENSE`](LICENSE)。
标签:AGPL-3.0, ASan, Chaos, Claude Code插件, Cutter, hands-off, Merkle树, Python技能模块, quarantined agents, seed-based replay, stack hash verification, 上下文验证, 六门梯, 可审计管道, 子代理协调, 开源安全工具, 情报收集, 意图消费者循环, 测试用例, 漏洞审计, 漏洞研究, 确定性分析, 符号执行, 自动化取证, 证据链, 请求拦截, 逆向工具, 逆向工程平台