Smart Contract Security 是一个专注于智能合约安全的技能,旨在帮助使用者掌握漏洞检测、审计方法论与事件响应流程。
用途 该技能用于智能合约的安全分析与审计工作,覆盖从漏洞识别、系统化审计到安全事件响应的完整流程。可通过调用方式触发安全分析,例如:Skill("smart-contract-security", topic="vulnerabilities", severity="high")。
主要能力
- 常见漏洞识别与防范:包括重入(CEI 模式违规)、访问控制(缺少修饰符)、预言机操纵(闪电贷攻击)、整数问题(精度损失)。
- 审计方法论:提供系统化审查流程,涵盖人工逐行审查、静态分析自动化工具、基于属性的模糊测试、数学证明的形式化验证。
- 安全工具:介绍 Slither(快速静态分析)、Mythril(符号执行)、Foundry(模糊测试、不变量测试)、Certora(形式化验证)。
- 事件响应:处理安全事件,包括分级(评估严重性)、缓解(紧急操作)、复盘(根因分析)、披露(负责任报告)。
漏洞速查示例 技能中给出多类漏洞的易受攻击与修复代码对照,包括:
- 严重:重入。易受攻击写法在调用后才扣减余额,修复采用 CEI 模式,先扣减再调用。
- 高危:缺少访问控制。setAdmin 未加 onlyOwner 修饰符,修复为添加 onlyOwner。
- 高危:未检查返回值。直接调用 transfer 忽略返回值,修复为使用 SafeERC20 的 safeTransfer。
- 中危:精度损失。先除后乘导致精度丢失,修复为先乘后除。
审计清单 技能提供审计清单,分为:
- 审计前:代码无警告编译、测试通过且覆盖良好、文档已审查。
- 核心安全:遵循 CEI 模式、存在重入防护、管理函数有访问控制、输入验证完整。
- DeFi 专项:预言机陈旧检查、滑点保护、闪电贷抗性、防三明治攻击。
安全工具用法
- 静态分析:Slither 命令 slither . --exclude-dependencies;Mythril 命令 myth analyze src/Contract.sol;Semgrep 命令 semgrep --config "p/smart-contracts" .
- 模糊测试:提供 Foundry 模糊测试示例,使用 bound 限定输入范围并断言余额变化。
- 不变量测试:提供 invariant_BalancesMatchTotalSupply 示例,校验余额总和与总供应量一致。
严重性分级 技能给出分级参考:严重(直接资金损失,如重入、未保护初始化)、高危(重大损害,如访问控制、预言机操纵)、中危(条件性影响,如精度损失、时序问题)、低危(次要问题,如缺少事件、命名)。
事件响应流程
- 检测:使用 cast logs 监控可疑活动。
- 缓解:提供紧急暂停函数示例,仅限所有者调用。
- 恢复:评估损害范围、协调披露、部署经审计的修复。
常见陷阱 技能列出常见陷阱及预防:仅测试正常路径(应模糊测试边界)、忽略集成(应审查所有依赖)、信任 block.timestamp(仅用于长时间范围)。
适用场景 适用于 Solidity 智能合约开发、DeFi 协议安全审计、安全事件响应等场景。
限制 该技能为安全分析与审计辅助,不替代专业审计;具体工具版本、平台支持、收费与价格等信息暂未提供。