mariano-aguero/solidity-security-audit-skill

GitHub: mariano-aguero/solidity-security-audit-skill

将 AI 编程助手转化为专业级 Solidity 智能合约安全审计员的技能包,整合行业最佳实践与工具链。

Stars: 1 | Forks: 0

Claude Code Compatible MIT License v2 improvements

# 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, 云安全监控, 代码安全, 以太坊, 区块链安全, 大语言模型, 威胁情报, 安全检查清单, 对称加密, 开发者工具, 形式化验证, 智能合约审计, 智能合约漏洞, 治理攻击, 漏洞枚举, 自动化审计, 账户抽象, 跨链桥, 重入攻击, 闪电贷, 零知识证明, 静态分析