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)安全, 智能合约审计, 智能合约开发, 结构化代码分析, 自动化安全扫描, 跨链安全, 逆向工具