基本を超えて監査を向上させるために欠けているものとその方法は以下の通りです:
1⃣ビジネスロジックを監査し、コードだけではない
貸付プロトコルは数学的に正しいコードを持っているかもしれませんが、インセンティブに欠陥がある場合があります(例:準備金を排出するために操作できる借入金利)。
• トークンのフローとゲーム理論をモデル化します(例:「80%のユーザーが同時に退出した場合は?」)。
• @gauntlet_xyzのようなツールを使用してストレスシナリオをシミュレーションします。
2⃣アップグレード可能なコントラクトとプロキシの落とし穴
実装バージョン間のストレージの衝突。
• 初期化されていないプロキシ(例:Parity Walletハック)。
• 管理者キーの集中(例:CompoundのGovernorBravo遅延悪用)。
• Echidnaを使用してアップグレードパスをテストします。
• 初期化関数が保護されており、冪等であることを確認します。
3⃣クロスチェーンおよびレイヤー2の盲点
欠けているもの:ブリッジやL2(例:Arbitrum、Optimism)と相互作用するコントラクトは独自のリスクに直面しています。
• メッセージ検証のギャップ(例:Wormholeの$325Mハック)。
• チェーン間のリプレイ攻撃。
• 誤った手数料の仮定(例:L2ガス対L1ガス)。
• クロスチェーンコールハンドラを監査します(例:processMessageFromL1)。
• @hyperlaneや@LayerZero_Coreのようなツールでメッセージの整合性をテストします。
4⃣形式的検証とシンボリック実行
追加するツール:
• @CertoraInc : 不変性を証明します(例:「ユーザーは預けた以上の金額を引き出すことはできない」)。
• Halmos:エッジケース発見のためのシンボリック実行。
Manticore:すべての実行パスを探索します(例:整数オーバーフローのため)。
例:Certoraを使用してDEXのスワップ機能が準備金をしきい値以下に下げないことを確認します。
5⃣歴史的文脈と攻撃カタログ
過去の悪用を活用して監査を導く。
• https://t.co/l3Q4YLLoZjと@immunefiのレポートを研究してパターンを見つけます(例:価格オラクルの操作)。
• 歴史的脆弱性のチェックリストを作成します(例:Nomad Bridgeの信頼された初期化)。
6⃣ガス最適化リスク
最適化は脆弱性を引き起こす可能性があります。
• ガス節約のためにdelegatecallを使用することは、ストレージを意図せずさらす可能性があります(例:@SushiSwapのMasterContract悪用)。
• 文脈の仮定について低レベルコール(call、delegatecall)をレビューします。
• EthGasStationでガス重い関数をテストして異常を見つけます。
7⃣ガバナンスとマルチシグの脅威
ガバナンスメカニズムは主要なターゲットです。
• 提案のスパム(例:@UniswapのGovernor Bravoの遅延)。
• マルチシグキーの漏洩(例:@harmonyprotocolのHorizon Bridgeハック)。
• タイムロック、クォーラム閾値、および拒否メカニズムを監査します。
• マルチシグ署名者のローテーションとコールドストレージの実践を確認します。
8⃣第三者統合リスク
外部依存関係(例:オラクル、レジストリ)はしばしば盲目的に信頼されています。
• @chainlinkのlatestAnswerの鮮度チェックを監査します。
• Uniswap V3のTWAPが正しく時間加重されていることを確認します。
9⃣認知バイアスの軽減
監査者は確認バイアスやアンカリングなどのバイアスに陥りやすいです。
• レッドチーム/ブルーチーム演習を使用します:1人の監査者が攻撃し、別の監査者が防御します。
• 偏見をリセットするためにレビュー中に監査者をローテーションします。
🔟コンプライアンスと規制の罠
コードは仕様を遵守しているかもしれませんが、規制に違反することがあります(例:OFAC制裁)。
• ユーザーデータを公開するview関数をチェックします(プライバシーリスク)。
• ブラックリスト/ホワイトリストのメカニズムを確認します(例:@TornadoCashのコンプライアンスの影響)。