ARIS2333/auditSkill

GitHub: ARIS2333/auditSkill

一个将 Claude Code 转化为结构化智能合约安全审计员的自定义技能,通过工具优先的抗幻觉设计和七阶段工作流,实现从静态分析到 PoC 开发的全流程自动化审计。

Stars: 0 | Forks: 0

# Smart Contract 审计员技能 **[English](README.md) | [中文](README_CN.md)** 一个 [Claude Code](https://docs.anthropic.com/en/docs/claude-code) 自定义技能,可将 Claude 转变为结构化的智能合约安全审计员。它使用 **Slither** 进行静态分析,并使用 **Foundry** 进行 Proof-of-Concept 漏洞利用开发,遵循旨在最大程度减少 AI 幻觉的 7 阶段工作流(阶段 0-6)。 ## 为什么需要这个技能? AI 代理在审计智能合约时会产生幻觉——它们会误读继承链、捏造访问控制假设,并生成有缺陷的 PoC。这个技能通过一种**工具优先,代码其次**的方法解决了这个问题:代理必须在阅读任何源代码之前,*首先*使用 Slither 的打印机(机器生成的基本事实)构建一个经过验证的代码库结构模型。 ## 工作流概览 | 阶段 | 名称 | 发生的操作 | |-------|------|-------------| | 0 | 环境设置 | 检测项目类型,验证编译,识别审计场景(DeFi、代理、代币、跨链、质押、瞬时存储),选择提交平台 | | 1 | 结构侦察 | 运行 12 个 Slither 打印机,以映射继承、入口点、函数与状态变量的关系、存储布局和访问控制。**不阅读代码。** | | 2 | 代码库文档化 | 在阶段 1 输出的指导下深入源代码。生成一份全面的基于 Mermaid 的代码库文档(13 个部分)和一份排好序的攻击假设列表。 | | 3 | 自动化扫描 | 运行 Slither 检测器(完整扫描,聚焦高影响,特定场景)。结合阶段 2 的文档对每个发现进行上下文分析。 | | 4 | 针对性代码阅读与分类 | 使用包含 24 项的检查清单进行深度以安全为核心的代码阅读。激活特定领域的 playbook。将发现分类为 已确认 / 潜在 / 误报。 | | 5 | PoC 与发现文档化 | 为每个已确认/潜在的发现同步编写 Foundry PoC 和发现报告。在时间允许时进行不变量测试。 | | 6 | 最终报告汇总 | 将发现汇总为特定平台的提交格式。严重性审查,去重,PoC 重新验证。 | **阶段 0-3 是严格按顺序执行的。** 阶段 1 通过打印机构建结构模型(不阅读代码)。阶段 2 使用阶段 1 作为指导来阅读源代码。阶段 3 在你已经了解的代码库上运行检测器。阶段 4-6 是核心分析、PoC 和报告阶段。 ## 安装说明 ### 前置条件 - 已安装 [Claude Code](https://docs.anthropic.com/en/docs/claude-code) CLI 或桌面应用程序 - 已安装 [Foundry](https://getfoundry.sh/)(`forge`、`cast`、`anvil`) - 已安装 [Slither](https://github.com/crytic/slither)(`pip install slither-analyzer` 或 `uv tool install slither-analyzer`) 安装 Foundry: ``` curl -L https://foundry.paradigm.xyz | bash foundryup ``` 安装 Slither: ``` pip install slither-analyzer # 或 uv tool install slither-analyzer ``` ### 选项 A:全局安装(推荐 — 适用于所有项目) 安装一次,即可在你使用 Claude Code 打开的每个项目中使用: ``` # Clone repo git clone https://github.com/ARIS2333/smart-contract-auditor.git # 将 skill 文件夹复制到 Claude Code 的 global skills 目录 cp -r smart-contract-auditor/smart-contract-auditor ~/.claude/skills/smart-contract-auditor ``` 或者创建符号链接,这样对仓库的更新会自动反映出来: ``` ln -s $(pwd)/smart-contract-auditor/smart-contract-auditor ~/.claude/skills/smart-contract-auditor ``` ### 选项 B:项目级安装(仅限单个项目) 安装到特定的审计项目中。如果你希望将技能与项目一起提交,以便团队成员能自动获取它,这会很有用: ``` # 在你的 audit 项目根目录中 mkdir -p .claude/skills cp -r /path/to/smart-contract-auditor/smart-contract-auditor .claude/skills/smart-contract-auditor ``` ### 验证安装 在任何项目(用于全局安装)或目标项目(用于项目级安装)中打开 Claude Code: 1. 输入 `/` — 你应该会在自动补全菜单中看到 `smart-contract-auditor` 2. 或者直接输入 `/smart-contract-auditor` 如果它没有出现,请检查文件夹结构是否正确: ``` ~/.claude/skills/smart-contract-auditor/ # global # 或 .claude/skills/smart-contract-auditor/ # project-level ├── SKILL.md # required — skill entry point └── resources/ ├── tools/ │ ├── slither.md # 27 printers, 99 detectors, CLI flags, Python API │ └── foundry.md # Forge CLI, cheatcodes, cast, anvil, PoC workflow ├── templates/ │ ├── structural-summary.md # Phase 1 output template │ ├── codebase-report.md # Phase 2 output template (13 sections) │ ├── poc.md # 5 PoC starter templates │ ├── code4rena.md # Code4rena submission format │ └── sherlock.md # Sherlock submission format ├── checklists/ │ ├── non-standard-tokens.md # 14 non-standard ERC20 behaviors │ └── domain-playbooks.md # Attack checklists for 10 protocol types └── phases/ ├── phase-0-setup.md ├── phase-1-recon.md ├── phase-2-docs.md ├── phase-3-scanning.md ├── phase-4-analysis.md ├── phase-5-findings.md └── phase-6-report.md ``` ## 运行说明 ### 开始审计 在目标智能合约项目中打开 Claude Code 并调用该技能: ``` /smart-contract-auditor ``` 或者用自然语言描述你的需求——Claude 会自动检测技能: ``` Audit this Foundry project for security vulnerabilities ``` ``` Run slither on this codebase and write PoCs for any critical findings ``` 代理将完成所有 7 个阶段:环境设置、结构侦察、代码库文档化、自动化扫描、针对性代码阅读与分类、PoC 开发和报告汇总。 ### 平台选择 在阶段 0 中,代理会询问要目标是哪个提交平台。目前支持的平台: | 平台 | 状态 | |----------|--------| | Code4rena | 已就绪 | | Sherlock | 已就绪 | | Immunefi | 计划中 | | HackerOne | 计划中 | 默认为 Code4rena。要添加新平台,请在 `resources/templates/` 中创建模板并更新 `SKILL.md` 中的阶段 0.6。 ## 文件结构 ``` smart-contract-auditor/ ├── SKILL.md # Core skill — 7-phase audit workflow (Phases 0-6) └── resources/ ├── tools/ │ ├── slither.md # 27 printers, 99 detectors, CLI flags, Python API, additional tools │ └── foundry.md # Forge CLI, cheatcodes, forge-std, cast, anvil, PoC workflow ├── templates/ │ ├── structural-summary.md # Phase 1 output template │ ├── codebase-report.md # Phase 2 output template (13 sections, Mermaid diagrams) │ ├── poc.md # 5 Foundry PoC starter templates │ ├── code4rena.md # Code4rena submission format & severity guide │ └── sherlock.md # Sherlock submission format & dedup model ├── checklists/ │ ├── non-standard-tokens.md # 14 non-standard ERC20 token behaviors │ └── domain-playbooks.md # Domain-specific attack checklists (10 protocol types) └── phases/ ├── phase-0-setup.md # Environment setup & scope discovery ├── phase-1-recon.md # Structural reconnaissance (12 printers) ├── phase-2-docs.md # Codebase documentation & hypothesis list ├── phase-3-scanning.md # Automated Slither detector scans ├── phase-4-analysis.md # Targeted code reading & triage (24-item checklist) ├── phase-5-findings.md # PoC & finding documentation └── phase-6-report.md # Final report assembly ``` ## 核心功能 ### 抗幻觉设计 该技能强制执行严格的阶段顺序——阶段 0 设置环境,阶段 1 仅使用 Slither 打印机(源自 AST 的事实)来构建结构模型,然后代理才会阅读任何代码。阶段 2 随后在阶段 1 的指导下阅读源代码。如果代理随后阅读的代码与打印机输出不一致,则以打印机为准。 ### 模块化阶段架构 每个阶段在 `resources/phases/` 中都有自己详细的指令文件。各阶段根据需要引用其输入(先前阶段的输出)和资源文件。这使得核心的 `SKILL.md` 保持简洁,同时在代理需要时提供深入的指导。 ### 全面的工具参考 `resources/tools/slither.md` 涵盖了所有 27 个打印机、99 个带有严重性/置信度的检测器、CLI flags、Python API 和已知限制。`resources/tools/foundry.md` 涵盖了 Forge CLI、所有的 cheatcode 签名、forge-std 辅助工具、主网分叉、Anvil、Cast 和不变量测试。 ### 检测器到 PoC 的映射 针对每种常见的 Slither 检测器发现(reentrancy、arbitrary-send、unprotected-upgrade 等),该技能提供了具体的 PoC 策略——部署哪些合约、使用哪些 cheatcodes 以及断言什么。 ### 特定领域的 Playbook 针对 10 种协议类型的攻击检查清单:Vault/ERC4626、AMM/DEX、Lending、Proxy/Upgradeable、Governance、Cross-Chain/Bridge、Staking/Restaking、Perpetuals/Derivatives、Token Launch/Bonding Curves 和 Yield Aggregators。 ### 错误恢复 当 Slither 编译失败时的三层回退机制:修复并重试、部分分析或仅 Foundry 的降级模式。当错误持续存在时,代理会被指示查阅官方 GitHub 仓库。 ## 使用的 Slither 打印机 在阶段 1 中会运行这 12 个打印机,以在任何代码阅读之前构建结构模型: | 打印机 | 目的 | |---------|---------| | `human-summary` | 合约数量,SLOC,ERCs,复杂性概述 | | `function-summary` | **抗幻觉基本事实。** 每个函数的:可见性,修饰符,读/写的状态变量 | | `entry-points` | 所有改变状态的外部/公共函数及其访问的变量 | | `vars-and-auth` | 修改的状态变量 + 每个函数的授权检查 | | `inheritance` | 合约之间基于文本的继承关系 | | `inheritance-graph` | 继承层次结构可视化 (DOT) | | `variable-order` | 存储槽布局 — 每个合约的变量排序 | | `modifiers` | 每个函数应用了哪些修饰符 | | `require` | 每个函数的所有 `require` 和 `assert` 条件 | | `not-pausable` | 缺少 `whenNotPaused` 守卫的函数 | | `call-graph` | 跨函数调用关系 (DOT) | | `function-id` | Keccak256 函数选择器(检查代理模式中的冲突) | ## 贡献 欢迎贡献——特别是: - **新平台模板**(`resources/templates/immunefi.md` 等) - 针对额外 Slither 检测器的**检测器到 PoC 的映射** - 针对新协议类型的**特定领域 playbook** ## 参考 - [Slither 文档](https://github.com/crytic/slither/wiki) - [Foundry Book](https://book.getfoundry.sh/) - [Code4rena 提交指南](https://docs.code4rena.com/competitions/submission-guidelines) - [Code4rena 严重性分类](https://docs.code4rena.com/competitions/severity-categorization) - [Sherlock 评判规则](https://docs.sherlock.xyz/audits/judging/judging) ## 许可证 MIT
标签:AI大模型应用, AI防幻觉, Claude Code自定义技能, Docker部署, Foundry测试框架, PoC漏洞验证, Slither静态分析, Solidity安全, Web3安全, Web3安全工具, 不变量测试, 代理合约安全, 代码安全审计, 区块链漏洞检测, 去中心化金融(DeFi)安全, 智能合约审计, 智能合约开发, 结构化代码分析, 自动化安全扫描, 跨链安全, 逆向工具