mariano-aguero/solidity-security-audit-skill
GitHub: mariano-aguero/solidity-security-audit-skill
将 AI 编程助手转化为专业级 Solidity 智能合约安全审计员的技能包,整合行业最佳实践与工具链。
Stars: 1 | Forks: 0
# Solidity 安全审计技能
一个开源的 **Agent Skill**,用于执行专业级的智能合约安全审计。兼容 Claude Code、Cursor、Windsurf 和其他 AI 编程助手。
## 概述
此技能将您的 AI 代理转变为全面的智能合约安全审计员。它基于 Trail of Bits、OpenZeppelin、Sherlock、Cyfrin、Cantina 及其他领先 Web3 安全公司的行业最佳实践,提供结构化的方法论、漏洞模式和工具集成。
### 包含内容
| 类别 | 内容 |
|----------|---------|
| **漏洞模式** | 50+ 种漏洞类型及代码示例(含 ERC-7702、V4 hooks、transient storage) |
| **协议检查清单** | Lending、AMM、Vaults、Bridges、Governance、Staking、NFT、**Restaking/LRT**、**V4 Hooks**、**Airdrop** |
| **代币标准** | ERC-20、ERC-721、ERC-1155、ERC-4626 安全检查 |
| **工具集成** | Slither (SARIF)、Foundry (coverage)、Echidna、Aderyn、Halmos、Certora、**Slang AST** |
| **PoC 模板** | Foundry 模板,含 **V4 hook 耗尽**、**transient storage 绕过**、**ERC-7702 滥用** |
| **真实攻击案例** | The DAO、Beanstalk、Euler、Curve、Nomad、Wormhole |
| **L2 安全** | Sequencer、bridges、**Blast rebasing**、**zkEVM 特性**、**EIP-4844**、**precompiles** |
| **账户抽象** | ERC-4337 账户、paymasters、bundlers |
| **DeFi 集成** | Uniswap v3/v4、Chainlink、Aave、Curve、Balancer 安全集成模式 |
| **严重性决策树** | Impact×Likelihood 矩阵、各漏洞决策树、升级因素 |
| **Diff/复审** | 变更审查工作流、修复验证、存储布局 diff |
## 安装
```
npx skills add mariano-aguero/solidity-security-audit-skill
```
## 功能特性
### 审计模式选择
该技能根据上下文支持多种审计模式:
| 模式 | 使用场景 |
|------|-------------|
| **全面审计** | 首次审查代码库 |
| **复审 / Diff** | 存在先前审计;团队已应用修复或新增功能 |
| **集成审查** | 合约集成 Uniswap、Chainlink、Aave、Curve 等 |
| **快速扫描** | 基于单页速查表的快速评估 |
### 5 阶段审计工作流
1. **侦察** — 架构图绘制、信任模型、外部依赖
2. **自动化分析** — Slither(含 SARIF)、Aderyn、Foundry 覆盖率
3. **人工审查** — 系统化漏洞分类(50+ 种类型)
4. **协议专项** — 按协议类型的 DeFi 检查清单
5. **报告生成** — 带有 PoC 的严重性分级发现
### 漏洞覆盖范围
**严重及高优先级**
- 重入(经典、跨函数、跨合约、只读)
- 访问控制绕过和未受保护的初始化器
- Oracle 操纵和闪电贷攻击
- Proxy 存储冲突和升级漏洞
- **ERC-7702**:恶意委托、跨链重放、重新初始化
- **Uniswap V4 hooks**:delta 耗尽、unlock() 重入、权限配置错误
- **Transient storage**:通过 delegatecall 绕过 guard、跨函数状态泄漏
**DeFi 专项**
- Lending:清算逻辑、坏账、利息计算
- AMM:滑点保护、LP 会计、价格影响
- Vaults:首个存款人通胀、份额操纵
- Bridges:消息验证、重放保护
- Governance:闪电贷投票、时间锁绕过
- **Restaking/LRT**:罚没传播、运营商集中、提款队列
- **Points/Airdrop**:重复领取、Merkle root 撤 rug、归属绕过
**新兴领域**
- L2/跨链:sequencer 风险、消息传递、最终性
- **Blast L2**:rebasing ETH/USDB 收益模式、会计不变量
- **zkEVM**:操作码差异(PUSH0、SELFDESTRUCT、blockhash)、zkSync AA
- **EIP-4844**:blob 可用性窗口、Dencun 升级后的 L2 gas 定价
- 账户抽象:paymaster 耗尽、会话密钥、bundler 损耗攻击
### 工具集成
```
# 静态分析
slither . --sarif slither.sarif # SARIF for GitHub Security tab
aderyn . # Complementary fast AST-based analysis
# 符号执行
halmos # Requires check_* test functions
# 属性模糊测试
echidna . --contract MyContract # Requires echidna_* test functions
# 覆盖率分析
forge coverage --report summary # Identify untested functions
forge coverage --report lcov # HTML visualization
# 模糊测试与不变量测试
forge test --fuzz-runs 10000
forge test --match-test invariant_
# Fork 测试
forge test --fork-url $ETH_RPC_URL
# 基于 AST 的自定义分析
npx ts-node scan-project.ts # Slang-powered custom detectors
```
### 严重性分类
| 严重性 | 标准 |
|----------|----------|
| **Critical** | 直接资金损失、永久性协议破坏 |
| **High** | 条件性资金损失、重大中断 |
| **Medium** | 影响有限、需要特定条件 |
| **Low** | 最佳实践违规、理论问题 |
| **Informational** | 代码质量、gas 优化 |
使用 `references/severity-decision-tree.md` 中的结构化决策树来最大程度减少分类的主观性。
## 项目结构
```
solidity-security-audit-skill/
├── SKILL.md # Entry point: audit modes + 5-phase workflow
└── references/
├── vulnerability-taxonomy.md # 50+ vulnerabilities with code (incl. ERC-7702, V4 hooks)
├── defi-checklist.md # Protocol checklists (incl. restaking, V4 hooks, airdrop)
├── tool-integration.md # Slither/SARIF, Foundry/coverage, Slang AST, Echidna
├── industry-standards.md # SWC, severity, EIPs (incl. EIP-1153, EIP-7702), firms
├── automated-detection.md # Regex patterns for scanning
├── audit-questions.md # Questions per function type
├── secure-patterns.md # Secure code reference
├── report-template.md # Professional audit report format
├── poc-templates.md # Foundry PoC (incl. V4 hook drain, transient bypass)
├── invariants.md # Protocol invariants for testing
├── exploit-case-studies.md # Real exploit analysis
├── quick-reference.md # One-page cheat sheet
├── l2-crosschain.md # L2 security (incl. Blast, zkEVM, EIP-4844)
├── account-abstraction.md # ERC-4337 security
├── diff-audit.md # Re-audit and change review methodology [v2]
├── severity-decision-tree.md # Structured severity classification [v2]
└── defi-integrations.md # Uniswap v3/v4, Chainlink, Aave, Curve [v2]
```
## 用法
该技能会在涉及安全相关的查询时自动激活:
```
"Audit this Solidity contract for vulnerabilities"
"Check this lending protocol for flash loan attacks"
"Review my ERC-4626 vault for inflation attacks"
"Is this proxy upgrade pattern safe?"
"Check for reentrancy in this withdraw function"
"Audit this L2 bridge for message replay"
"Review this ERC-4337 paymaster for drain attacks"
"Re-audit these changes from the previous report"
"Is this Uniswap V4 hook safe?"
"Review my Chainlink integration"
"How severe is this finding?"
```
## 输出示例
```
## [H-01] withdraw() 中的重入漏洞允许抽空资金
**Severity**: High
**File**: `Vault.sol#L45-L52`
### 描述
The withdraw function sends ETH before updating state...
### 影响
Attacker can drain all funds from the vault...
### 概念验证
1. Attacker deposits 1 ETH
2. Attacker calls withdraw()
3. In receive(), attacker calls withdraw() again
4. Balance not yet updated, withdraw succeeds again
5. Repeat until drained
### 建议
Apply CEI pattern and add ReentrancyGuard...
```
## 更新日志
### v2.0.3 (2026-02)
- **更新** `README.md` — 在工具集成部分添加了 Echidna 和 Halmos 及其使用示例(`echidna_*` 和 `check_*` 函数约定);添加了两者明确的安装命令
### v2.0.2 (2026-02)
- **新增**:`package.json` — 用于 Socket 和 Snyk 安全审计兼容性的项目元数据
### v2.0.1 (2026-02)
- **更新** `CLAUDE.md` — 架构更新为 17 个文件,新增 diff-audit、severity-decision-tree 和 defi-integrations 的维护指南;在安全公司列表中添加了 Cantina、Halborn、Pashov
### v2.0.0 (2026-02)
- **新增**:`diff-audit.md` — 复审工作流、修复验证、存储布局 diff
- **新增**:`severity-decision-tree.md` — Impact×Likelihood 矩阵、各漏洞决策树
- **新增**:`defi-integrations.md` — Uniswap v3/v4 hooks、Chainlink、Aave、Curve、Balancer
- **更新** `vulnerability-taxonomy.md` — ERC-7702、Uniswap V4 hooks、transient storage 章节
- **更新** `defi-checklist.md` — Restaking/LRT、V4 hooks 协议、Points/Airdrop 检查清单
- **更新** `l2-crosschain.md` — Blast L2、zkEVM 特性、EIP-4844、L2 precompiles
- **更新** `tool-integration.md` — Slang AST 分析、SARIF 输出、forge coverage
- **更新** `industry-standards.md` — EIP-7702、EIP-1153、EIP-4844、ERC-6551、ERC-6093;审计公司表
- **更新** `poc-templates.md` — V4 hook 耗尽、transient storage 绕过、ERC-7702 滥用 PoC
### v1.0.0 (2026-02)
- 初始版本:5 阶段审计工作流、14 个参考文件、280KB 文档
## 贡献
欢迎贡献:
- 来自近期攻击事件的新漏洞模式
- 更多协议检查清单
- 工具集成更新
- 攻击案例研究
## 许可证
MIT 许可证 — 详见 [LICENSE](LICENSE)。
**免责声明**:此技能可协助安全审查,但不能替代专业审计。没有任何工具能保证 100% 的安全。对于生产部署,请聘请专业审计人员。
标签:Claude Code, Cybersecurity, DeFi, DeFi安全, DLL 劫持, Echidna, ERC-20, ERC-4337, ERC-721, EVM, Foundry, Layer2安全, NFT, PoC模板, Slither, Solidity, Uniswap V4, Web3安全, zkEVM, 云安全监控, 代码安全, 以太坊, 区块链安全, 大语言模型, 威胁情报, 安全检查清单, 对称加密, 开发者工具, 形式化验证, 智能合约审计, 智能合约漏洞, 治理攻击, 漏洞枚举, 自动化审计, 账户抽象, 跨链桥, 重入攻击, 闪电贷, 零知识证明, 静态分析