以下是缺失的内容,以及如何将您的审计提升到更高的水平:
- 审计业务逻辑,而不只是代码
一个借贷协议可能有数学上正确的代码,但激励机制存在缺陷(例如,借款利率可被操纵以耗尽储备)。
- 建模代币流动和博弈论(例如,“如果80%的用户同时退出会怎样?”)。
- 使用工具如@gauntlet_xyz模拟压力场景。
- 可升级合约与代理陷阱
不同实现版本之间的存储冲突。
- 未初始化的代理(例如,Parity Wallet黑客事件)。
- 管理员密钥集中化(例如,Compound的GovernorBravo延迟漏洞)。
- 使用Echidna测试升级路径。
- 验证初始化函数是受保护的且是幂等的。
- 跨链与二层盲点
缺少的内容:与桥接或二层(如Arbitrum、Optimism)交互的合约面临独特风险。
- 消息验证漏洞(例如,Wormhole的3.25亿美元黑客事件)。
- 跨链重放攻击。
- 错误的费用假设(例如,L2的燃气费与L1的燃气费)。
- 审计跨链调用处理程序(例如,processMessageFromL1)。
- 使用工具如@hyperlane或@LayerZero_Core测试消息完整性。
- 形式验证与符号执行
需要添加的工具:
- @CertoraInc:证明不变性(例如,“没有用户可以提取超过他们存入的金额”)。
- Halmos:用于边缘案例发现的符号执行。
- Manticore:探索所有执行路径(例如,整数溢出)。
示例:使用Certora验证一个DEX的交换功能永远不会让储备低于某个阈值。
- 历史背景与攻击目录
利用过去的漏洞来指导审计。
- 燃气优化风险
优化可能引入漏洞。
- 使用delegatecall节省燃气费用可能无意中暴露存储(例如。
, @SushiSwap的MasterContract漏洞).
- 审查低级调用(call, delegatecall)以了解上下文假设。
- 使用EthGasStation测试耗气重的函数,以发现异常。
治理与多签威胁治理机制是主要目标。
- 提案垃圾邮件(例如,@Uniswap的Governor Bravo延迟)。
- 多签密钥泄露(例如,@harmonyprotocol的Horizon Bridge黑客事件)。
- 审计时间锁、法定人数阈值和否决机制。
- 验证多签签名者轮换和冷存储实践。
第三方集成风险外部依赖(例如,预言机、注册表)通常被盲目信任。
- 审计@chainlink的latestAnswer过时检查。
- 验证Uniswap V3的TWAP是否正确按时间加权。
认知偏见缓解审计员容易受到确认偏见或锚定效应的影响。
- 使用红队/蓝队演习:一位审计员进攻,另一位防守。
- 在审查过程中轮换审计员,以重置假设。
合规与监管陷阱代码可能符合规范,但违反监管(例如,OFAC制裁)。
- 检查是否有暴露用户数据的查看函数(隐私风险)。
- 验证黑名单/白名单机制(例如,@TornadoCash合规后果)。