Ethereumスマートコントラクト脆弱性の分析
概要
スマートコントラクトの脆弱性は、DeFiプロトコル全体で数十億ドルの損失を引き起こしています。従来のソフトウェアとは異なり、デプロイされたスマートコントラクトは不変であり、実際の金融資産を扱うため、デプロイ前のセキュリティ分析が重要です。Slitherは中間表現を使用した高速な静的解析を実行し、90以上の脆弱性パターンを数秒で検出します。一方、Mythrilはシンボリック実行とSMT解決を使用して、リエントランシーや整数オーバーフローのような複雑な実行パスの脆弱性を発見します。このスキルでは、両方のツールをSolidityコントラクトに対して実行し、結果を解釈して重要度別にトリアージし、監査レポートを生成する手順を提供します。
使用するタイミング
- セキュリティインシデントを調査する際に、Ethereumスマートコントラクトの脆弱性分析が必要な場合
- このドメイン向けの検出ルールや脅威ハンティングクエリを構築する場合
- SOCアナリストがこの分析タイプの構造化された手順を必要とする場合
- 関連する攻撃テクニックのセキュリティ監視カバレッジを検証する場合
前提条件
- Python 3.10+ と pip
- Slither (
pip install slither-analyzer) と solc コンパイラ - Mythril (
pip install mythril) とコンパイラバージョン管理用の solc-select - Solidity ソースコードまたはコンパイル済みコントラクトのバイトコード
- Foundry または Hardhat 開発フレームワーク(プロジェクトレベルの分析にオプション)
手順
ステップ1: Slither静的解析の実行
コントラクトのコードベースに対してSlitherを実行し、90以上の内蔵検出器を使用して脆弱性パターン、最適化の機会、コード品質の問題を特定します。
ステップ2: Mythrilシンボリック実行の実行
Mythrilの詳細分析を実行して実行パスを探索し、パスに依存した分析を必要とするリエントランシー、未チェックの外部呼び出し、算術演算の脆弱性を発見します。
ステップ3: 調査結果のトリアージと相関付け
両方のツールからの結果を組み合わせ、重複する調査結果を除去し、悪用可能性や財務的影響に基づいて重要度を評価し、誤検出をフィルタリングします。
ステップ4: 監査レポートの生成
脆弱性の説明、影響を受けるコードの場所、悪用シナリオ、および修復推奨事項を含む構造化された監査レポートを作成します。
期待される出力
脆弱性をSWC(スマートコントラクト弱分類)識別子、重要度評価、影響を受ける関数、および提案された修正とともにリスト化したJSONレポート。