TarasBrilian/gebug-audit

GitHub: TarasBrilian/gebug-audit

一款基于 Claude Code 的两阶段 EVM 智能合约审计工作流工具,将范围界定与深度分析分离,结合并行代理、模糊测试和 Foundry PoC 验证来产出可复现的审计报告。

Stars: 3 | Forks: 0

gebug

gebug-audit

专为 Claude Code 设计的两阶段 Web3 智能合约审计工作流。
头脑风暴确定范围,然后执行审计。仅限 EVM。

`gebug-audit` 是一对 Claude Code 技能(skills),可以将漏洞赏金页面、GitHub 仓库或已部署的合约地址转化为: - 经过审查的范围文档(`DEFINITION.md`), - 有理有据的初始漏洞候选列表(`CANDIDATES.md`), - 经用户签字确认的安全预检(`SAFETY_PREFLIGHT.md`), - 原样复制的赏金严重程度矩阵(`BOUNTY_MATRIX.md`), - 带有通过的 Foundry fork PoC 的逐项发现报告, - 核心审计报告以及可复现的逐项漏洞利用。 这两个技能分别是: | 技能 | 运行时机 | 功能 | |-------|-----------------|--------------| | `/gebug-brainstorm` | 第一步 | 访谈、源码获取、轻量级侦察、生成假设。编写四个定义文件。 | | `/gebug-work` | 头脑风暴之后 | 静态分析、模糊测试、并行漏洞猎手代理(vuln-hunter agents)、有效性验证门控、Foundry fork PoC、逐项发现文件、核心报告。 | ## 为什么分为两个技能 这种划分反映了经验丰富的审计员的工作方式: - **阶段 1(brainstorm)**成本低、对话式且可审查。用户可以在进行任何繁重工作之前纠正范围。 - **阶段 2(work)**成本高(并行代理、模糊测试、PoC)。它拒绝在四个定义文件存在之前启动,从而最大程度地减少代理的无用运行。 它还在最重要的时刻强制进行了人工干预(human-in-the-loop)检查:就在确定范围之后、在任何主动分析运行之前。 ## 功能 ### 贯穿每次审计的强硬原则 - **对抗姿态**:审计员 + 攻击者,而不是代码解释器。 - **有效性原则**:每个假设都引用 `file:line`;没有通过的 PoC 或逐符号的数学推导,任何东西都不会发布。 - **仅凭证据拒绝规则**:怀疑不等于拒绝。PoC 才是证伪手段。 - **锐边规则(Sharp-edge rules)**:将“安全”、“有界限”、“不可操纵”视为假设,而非结论。 - **反谄媚(Anti-sycophancy)**:不盲从用户的直觉或过往报告,必须从代码中重新推导。 - **诚实的负面结果**:只有在流水线完全运行后(加载了所有攻击向量、运行了模糊测试、为每个候选者尝试了 PoC),“无发现”才是可接受的结果。 - **最终反幻觉检查**:在报告发布前,每一处引用、每一个合约/函数/地址都必须经过 `grep` 验证。 ### 流水线护栏 - **场景 A 与 B 自动检测**:brainstorm 阶段会检查 `cwd` 中是否存在 `foundry.toml`+`src/`+`test/`、Hardhat 配置,或者包含 Foundry / Hardhat 依赖的 `package.json`。外部仓库审计会存放在 `cwd//docs/gebug-audit/`;自我审计存放在 `cwd/gebug-audit/`。在任何主动侦察之前,都会公示并确认该选择。 - **强制模糊测试退出关卡**:除非存在带有证据的 `fuzzing/FUZZING.md`,否则 `/gebug-work` 拒绝进入阶段 3。阶段 2 的静默跳过是真实漏洞(不变性被破坏、Halmos 反例、模糊测试种子崩溃)逃脱审计的最常见方式。 - **阶段 6.5 怀疑论筛选器(skeptical-triager)**:一个独立的现实性过滤器,对每个 MEDIUM+ 候选者应用经济和防御者的证伪手段,并返回带有量化引用的 AFFIRM(肯定) / DOWNGRADE(降级) / REJECT(拒绝)。它抵消了漏洞猎手固有的浮现偏见,而不会沦为敷衍的驳回。 - **阶段 4 的 Token 预算门控**:当范围内的代码行数(LoC)会生成超过 10 个 `vuln-hunter` 代理时,编排器将打印预估的输出 token 成本,并拒绝在没有用户批准的情况下继续执行。 - **差异聚焦模式(Diff-focused mode)**:针对移动了 `source_commit` 的重复审计的可选流水线。仅在已更改文件的调用图(call-graph)影响范围内重新运行阶段 4,记录先前已清除的 SHA 以便检测篡改,并使用旧 + 新提交标记报告。 ### 安全策略 - 仅审计 `SAFETY_PREFLIGHT.md` 中明确列出的资产。 - 漏洞验证仅通过 `vm.createSelectFork` 在本地 fork 上运行。 - 绝不广播交易。绝不运行 `cast send`、`forge create`、`forge script --broadcast`,或任何使用真实私钥的命令。 - 将目标仓库视为不受信任。在执行它们之前,会审查 `foundry.toml`、脚本、FFI 设置和重映射(remappings)。 - 绝不自动提交发现。用户会审查每一份草稿。 - 生成的文件中绝不使用破折号(em dashes)(保持格式一致)。 ### 攻击向量覆盖(开箱即用) | 文档 | 覆盖范围 | |-----|--------| | `amm.md` | Uniswap v2/v3/v4 hooks、Curve、Balancer、JIT、k-invariant、捐赠、只读重入、LP 公允价值 | | `bridge.md` | LayerZero、Wormhole、CCIP、Axelar、Hyperlane;欺骗、重放、无凭据铸造、ZK 证明验证 | | `governance.md` | Compound Bravo 分叉、OZ Governor、Snapshot / SafeSnap;闪电贷投票、绕过 timelock、操纵法定人数 | | `lending.md` | Aave / Compound / Morpho / HyperLend;清算、IRM、LTV、借贷预言机、隔离 / e-mode | | `lst-lrt.md` | LST / LRT 机制;铸造、销毁、提款队列、费率提供者、转换率操纵 | | `oracle-integration.md` | Chainlink、Pyth、Redstone、Uniswap TWAP、排序器正常运行时间 feed、LP 公允价值 | | `restaking.md` | EigenLayer M2-Pectra、Symbiotic、Karak;公钥抢占(front-run)、AVS 选择加入、罚没逻辑 | ### 输出布局 该技能在调用时会自动检测审计场景,并相应地路由输出: - **场景 A**(外部仓库,`cwd` 中无 Foundry/Hardhat 标记):审计树位于克隆源代码内的 `cwd//docs/gebug-audit/`。 - **场景 B**(自我审计,`cwd` 本身就是 Foundry 或 Hardhat 项目):审计树位于用户 `src/` 和 `test/` 旁边的 `cwd/gebug-audit/`。无需克隆。 在这两种情况下,子树结构是相同的: ``` / (resolved per Scenario A or B) ├── definition/ OUTPUT of /gebug-brainstorm │ ├── DEFINITION.md │ ├── CANDIDATES.md │ ├── SAFETY_PREFLIGHT.md │ └── BOUNTY_MATRIX.md │ ├── _scratch/ intermediate work (gitignored) │ ├── finding/ OUTPUT of /gebug-work (1 file per finding) │ ├── CRITICAL_.md │ ├── HIGH_.md │ └── ... │ ├── fuzzing/ │ ├── FUZZING.md │ ├── *_Invariant.t.sol │ ├── echidna.yaml │ └── halmos_*.out │ ├── exploit/ │ └── Exploit.sol headline exploit │ └── report/ ├── REPORT.md ├── INVARIANTS.md ├── slither-summary.txt ├── slither-high-impact.txt └── POC/ └── / ├── Exploit.t.sol └── reproduce.sh (executable) ``` ## 环境要求 - [Claude Code](https://claude.com/claude-code)。 - [Foundry](https://book.getfoundry.sh/) (`forge`, `cast`, `anvil`)。 - [Slither](https://github.com/crytic/slither) (`pip install slither-analyzer`)。 - `git`。 可选但推荐: - [Aderyn](https://github.com/Cyfrin/aderyn) (`cargo install aderyn`)。 - [Echidna](https://github.com/crytic/echidna)。 - [Halmos](https://github.com/a16z/halmos) (`pipx install halmos`)。 - [Medusa](https://github.com/crytic/medusa)。 ## 安装说明 ### 选项 1:安装脚本(推荐) ``` git clone git@github.com:TarasBrilian/gebug-audit.git cd gebug-audit ./install.sh ``` 安装程序会将 `skills/gebug-brainstorm/` 和 `skills/gebug-work/` 符号链接到 `~/.claude/skills/` 中,这样通过 `git pull` 进行的更新会自动生效。 安装后请重启 Claude Code(或开启新会话)。 ### 选项 2:手动复制 ``` git clone git@github.com:TarasBrilian/gebug-audit.git cp -R gebug-audit/skills/gebug-brainstorm ~/.claude/skills/ cp -R gebug-audit/skills/gebug-work ~/.claude/skills/ ``` ### 选项 3:项目级别安装 如果你只想在单个项目中使用这些技能: ``` git clone git@github.com:TarasBrilian/gebug-audit.git mkdir -p .claude/skills ln -s "$PWD/gebug-audit/skills/gebug-brainstorm" .claude/skills/gebug-brainstorm ln -s "$PWD/gebug-audit/skills/gebug-work" .claude/skills/gebug-work ``` ### 卸载 ``` cd gebug-audit ./uninstall.sh ``` ## 用法 在 Claude Code 内部: ``` /gebug-brainstorm ``` 然后描述目标。示例: ``` /gebug-brainstorm audit this bounty: https://cantina.xyz/competitions/ ``` ``` /gebug-brainstorm scope contracts at github.com// ``` ``` /gebug-brainstorm I want to hunt vulnerabilities in 0xAbCd... on Ethereum ``` 该技能会提出 1 到 3 批结构化问题,获取源代码,运行 Slither 以获取上下文,并编写四个定义文件。 完成后,运行: ``` /gebug-work ``` `/gebug-work` 会读取定义文件并运行完整审计: 静态分析、模糊测试、并行 `vuln-hunter` 代理、跨合约分析、有效性验证门控、Foundry fork PoC、逐项发现文件以及核心报告。 ### 聚焦模式(在 brainstorm 之后) | 模式 | 功能 | |------|--------------| | `audit-only ` | 跳过 PoC;在提供 PoC 之前将严重程度限制在 HIGH。 | | `exploit-only ` | 仅针对单个候选者运行阶段 7。 | | `fork-test ` | 在不同的区块上重新运行现有的 PoC。 | | `triage ` | 将有效性验证门控应用于单个候选者。 | | `report-only` | 从现有的 PoC 重新生成报告。 | | `diff-focused` | 针对移动了 `source_commit` 的重复审计:仅在更改文件的调用图影响范围内重新运行,并使用旧 + 新提交标记报告。 | ## 支持的目标 - **语言**:Solidity、Vyper。 - **链**:Ethereum、BSC、Polygon、Arbitrum、Base、Optimism、Avalanche 以及任何其他兼容 EVM 的链。非 EVM(Solana、Move、CosmWasm)有意不包含在范围内;请为此使用其他技能。 - **框架**:Foundry、Hardhat 或任何能生成标准 Solidity / Vyper 构件的 EVM 工具链。 - **赏金平台**:Cantina、Immunefi、Code4rena、Sherlock、Hats 或私人项目。 ## 典型审计流程 1. 用户将 Cantina 漏洞赏金 URL 粘贴到 Claude Code 中: `/gebug-brainstorm audit https://cantina.xyz/competitions/xyz`。 2. 技能从 `cwd` 检测场景 A 或 B,公布解析出的输出目录,并要求用户确认。 3. 技能询问:赏金平台、目标类型、链、源代码位置。 4. 技能询问:范围内的合约、范围外的合约、严重性矩阵、先前的审计。 5. 技能编写 `SAFETY_PREFLIGHT.md`,用户予以确认。 6. 技能克隆仓库(场景 A)或复用 `cwd`(场景 B),运行 Slither,生成初始候选者。 7. 技能编写 `DEFINITION.md`、`CANDIDATES.md`、`BOUNTY_MATRIX.md`。 8. 用户审查;如果出现任何偏差,用户纠正并重新运行相关阶段。 9. 用户运行 `/gebug-work`。 10. 技能验证这四个文件存在,运行完整流水线,并在生成超过 10 个 `vuln-hunter` 代理之前请求批准。如果缺少 `fuzzing/FUZZING.md` 证据,阶段 2 拒绝继续。 11. 阶段 6.5 对每个 MEDIUM+ 候选者运行怀疑论筛选器,并为每个候选者记录 AFFIRM(肯定) / DOWNGRADE(降级) / REJECT(拒绝)。 12. 技能生成逐项发现文件、逐项发现 PoC(每个都带有可运行的 `reproduce.sh`)、核心漏洞利用以及最终的 `REPORT.md`。 13. 用户审查;没有任何内容会自动提交。 ## 项目结构 ``` gebug-audit/ ├── README.md this file ├── CLAUDE.md instructions for Claude Code in this repo ├── CONTRIBUTING.md ├── LICENSE MIT ├── install.sh symlink installer ├── uninstall.sh ├── assets/ │ └── logo.png ├── scripts/ │ └── check-layout-sync.sh pre-commit guard against output-tree drift ├── tests/ │ └── fixtures/ │ └── vulnerable-vault/ manual regression target (see its README) └── skills/ ├── gebug-brainstorm/ │ ├── SKILL.md │ ├── README.md │ └── references/ │ └── brainstorm-pipeline.md └── gebug-work/ ├── SKILL.md ├── README.md ├── agents/ │ ├── vuln-hunter.md spawned per subsystem in Phase 4 │ ├── skeptical-triager.md spawned in Phase 6.5 │ └── exploit-writer.md spawned per surviving candidate in Phase 7 └── references/ ├── work-pipeline.md ├── finding-template.md per-finding file template (loaded in Phase 8) └── attack-vectors/ ├── amm.md ├── bridge.md ├── governance.md ├── lending.md ├── lst-lrt.md ├── oracle-integration.md └── restaking.md ``` ## 许可证 [MIT](LICENSE)。 ## 致谢 - [Anthropic Claude Code](https://claude.com/claude-code) 提供了 skill + subagent 系统。 - [Trail of Bits / Crytic](https://github.com/crytic) 提供了 Slither、Echidna 和 Medusa。 - [Foundry](https://book.getfoundry.sh/) 提供了该技能所依赖的 fork-test 基础设施。 - 感谢 Web3 安全研究社区,他们发布的漏洞利用和事后分析塑造了这些攻击向量文档。
标签:AI编程助手, Claude Code, EVM, Foundry, Web3, 对称加密, 智能合约审计, 自动化审计