以下是缺失的內容,以及如何將您的審計提升到更高的水平:
- 審計業務邏輯,而不只是代碼
一個借貸協議可能有數學上正確的代碼,但激勵機制存在缺陷(例如,借款利率可被操縱以耗盡儲備)。
- 建模代幣流動和博弈論(例如,“如果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合規後果)。