SuperAPI AI 工具集

solidity-audit

安全与审计

查看项目

更新于 10-15 08:48

技能介绍

用途

这是一个 Solidity 智能合约安全审计与代码审查检查清单技能,用于在审查合约漏洞时系统化地排查常见与高级风险。它不会被自动调用,需要在审查合约时手动调用 /solidity-audit。该技能汇总了 30 多种漏洞类型、2021 至 2026 年的真实攻击案例,以及 EVMbench、Code4rena 的审计模式。

主要能力

合约级漏洞类别

  1. 重入(Reentrancy):覆盖同函数、跨函数、跨合约、只读重入,检查外部调用后是否更新状态(CEI 模式),是否使用 nonReentrant。案例引用 GMX v1(2025 年 7 月,4200 万美元)。

  2. 访问控制(Access Control):检查缺失修饰器、修饰器逻辑是否真正回滚、一次性访问模式是否正确更新存储、管理员权限范围是否最小化且有时限。案例引用 Bybit(2025 年 2 月,14 亿美元)。

  3. 输入验证(Input Validation):检查零地址、零金额、数组长度匹配、任意调用、数值边界。

  4. 闪电贷攻击(Flash Loan Attacks):覆盖价格操纵、治理、清算、舍入组合等变体及防御措施。案例引用 Cream Finance(2021 年 10 月,1.3 亿美元)、Abracadabra(2025 年 3 月,1300 万美元)、Bunni(2025 年 9 月,840 万美元)。

  5. 预言机与价格(Oracle & Price):检查单一预言机依赖、陈旧价格、现货价格使用、最低流动性、价格偏差、Chainlink 轮次完整性。

  6. 数值问题(Numerical Issues):原始溢出、截断、舍入/精度损失、先除后乘。

  7. 签名问题(Signature Issues):ecrecover 返回 address(0)、重放攻击、签名可塑性、空循环绕过、缺失 msg.sender 绑定。

  8. ERC20 兼容性:转账手续费、变基代币、无布尔返回值、ERC777 钩子、零金额转账、授权竞争。

  9. MEV / 抢跑:三明治攻击、ERC4626 膨胀、授权抢跑、无限制提款。

  10. 存储与低级调用:存储指针、嵌套删除、私有变量、不安全 delegatecall、代理存储冲突、循环中的 msg.value。

  11. 合约检测绕过:构造函数调用、CREATE2 预计算。

  12. 代理与升级漏洞:权限检查、工厂/注册表、升级修饰器、初始化保护、存储布局兼容性。案例引用 Code4rena 2024-07-basin H-01。

  13. 信任边界与协议可组合性:跨金库信任隔离、可信发送者滥用、闪电贷+路由组合、抵押品所有权验证、跨合约状态依赖。案例引用 Code4rena 2024-04-noya H-08、2024-07-benddao。

  14. 状态排序与计数器操纵:计数器/ID 递增顺序、create 中自动购买、退款时机、联合曲线元数据覆盖。案例引用 Code4rena 2024-08-phi H-06。

  15. 按地址状态绕过:冷却、最大交易金额、最大钱包余额、同区块保护、交易计数限制,以及三步审计方法和两个常见陷阱。

基础设施级漏洞

  1. 前端 / UI 注入:验证交易 calldata,使用硬件钱包预览,审计前端依赖。案例引用 Bybit(2025 年 2 月)。

  2. 私钥与社会工程:HSM/硬件钱包、多签、种子短语保密、安全意识培训。案例引用 Step Finance(2026 年 1 月,3000 万美元)。

  3. 跨链桥:继承代码审计、消息验证、流动性隔离。案例引用 SagaEVM(2026 年 1 月,700 万美元)。

  4. 遗留 / 弃用合约:永久暂停或迁移资金、监控旧地址、移除铸造/管理员函数。案例引用 Truebit(2026 年 1 月,2640 万美元)。

使用 Slither MCP 进行自动化分析(如可用)

如果配置了 Slither MCP,应在手动检查清单之前运行自动化分析。推荐流程:

  • 步骤 1:Slither MCP 自动化扫描(get_detector_results,按 High/Medium 影响过滤)
  • 步骤 2:审查 Slither 发现,分类真阳性与假阳性
  • 步骤 3:手动检查清单,捕捉 Slither 遗漏的问题(业务逻辑、经济攻击)
  • 步骤 4:交叉引用,将 Slither 与手动发现合并为最终报告

Slither MCP 工具包括:get_contract_metadata、get_function_source、find_implementations、get_detector_results、get_detector_metadata。

Slither 擅长捕捉:重入模式、未保护函数、未使用状态变量、遮蔽问题、错误的 ERC20 接口、死代码。仍需手动审查:业务逻辑缺陷、经济攻击向量(闪电贷组合)、跨协议可组合性风险、预言机操纵场景、信任边界架构问题、特定于业务逻辑的 MEV/抢跑。

优雅降级:如果未配置 Slither MCP,跳过该部分直接进入手动检查清单,所有清单项仍然有效且自包含。

审计执行清单

执行安全审计时逐项检查:

  • 重入:所有含外部调用的函数使用 nonReentrant;遵循 CEI 模式;状态转换期间不将视图函数用作预言机。
  • 访问控制:每个状态变更函数都有明确访问修饰器;修饰器真正回滚;管理员权限最小化并有文档。
  • 输入与逻辑:无未验证的任意调用/delegatecall;不使用 tx.origin 进行认证;成对输入验证数组长度;无先除后乘精度损失。
  • 代币处理:所有 ERC20 操作使用 SafeERC20;处理转账手续费代币(余额差检查);不缓存变基代币余额;拒绝零金额转账。

使用方式

该技能不会自动调用,需要在审查合约漏洞时手动调用 /solidity-audit。响应语言与用户一致:用户用中文则用中文,用英文则用英文。如果可用,先运行 Slither MCP 自动化扫描,再结合手动检查清单。

适用场景

适用于智能合约安全审计、代码审查、漏洞排查,尤其适合需要系统化清单、真实攻击案例参考以及手动与自动化结合流程的审计工作。

限制

资料未提供官方定价、平台支持细节或与其他工具的集成说明,相关内容暂未提供。Slither MCP 为可选依赖,未配置时相关自动化能力不可用,但手动检查清单仍然有效。