2016年、ブロックチェーン業界でネット界隈を震撼させたセキュリティ事件が発生した。攻撃者は1ドル未満の取引手数料で、一行のコードの順序が逆転していることを利用し、トッププロジェクトThe DAOのオンチェーンコントラクトから価値6000万ドルのデジタル資産を奪い去った。暴力破解も不正侵入も一切なく、コード自体の論理的な脆弱性をそのまま利用した操作だった。


この脆弱性の原理は驚くほど単純だった。正常な引き出しロジックでは、まずユーザーの口座残高をゼロにしてから送金を実行すべきだが、当時のコントラクトは順序が逆で、送金が先で残高クリアが後だった。攻撃者は送金時にトリガーされるコールバック機構を利用し、引き出し要求をループさせ、システムが残高を更新する前に、次々と資金を引き出し、再帰的にループしてコントラクト全体の準備金を完全に空にした。修正方法は、2行のコードの順序を入れ替えるだけでよかった。
The DAOは決して無名の小さなプロジェクトではなく、当時のイーサリアムエコシステムで最も注目されたベンチマークプロジェクトであり、クラウドファンディングの規模は1.5億ドルに達し、コードはコミュニティによる複数回のレビューと専門のセキュリティチームによるチェックを受けたが、なぜか誰もこの基本的な論理エラーを見抜けなかった。
この事件は最終的にイーサリアムコミュニティにハードフォークを余儀なくさせ、強制的に取引をロールバックして盗まれた資産を取り戻し、直接イーサリアムクラシックという分岐チェーンを生み出した。業界が長年信奉してきた「コードはルールである」という理念が、初めて現実に痛烈な打撃を受け、「脆弱性の利用は正当な操作か盗難か」という論争は今も続いている。
さらに皮肉なことに、十数年が経っても、この種の基本的な脆弱性は絶えるどころか、形を変えて繰り返し発生している。2021年には有名なレンディングプロトコルCREAM Financeが同様の手法で1.3億ドルを奪われた。呼び出しの連鎖が何層にもネストされ、隠蔽性が高く複雑だったため、完全な専門監査を受けたにもかかわらず、リスクを特定できなかった。
その他にも、元手ゼロのフラッシュローン操作攻撃、関数の権限設定を誤る初歩的なミス、さらにはフィッシングメール1通で6.25億ドルの損失を出したクロスチェーンブリッジの大事件などが業界で次々と発生している。多くのプロジェクトがリリースのスケジュールを優先し、開発コストを抑えるために、セキュリティ面で妥協を重ね、そのずさんな細部の一つ一つが、最終的には取り返しのつかない巨額の損失を生み出した。$ETH
{spot}(ETHUSDT)
ETH3.23%
原文表示
post-image
このページには第三者のコンテンツが含まれている場合があり、情報提供のみを目的としております(表明・保証をするものではありません)。Gateによる見解の支持や、金融・専門的な助言とみなされるべきものではありません。詳細については免責事項をご覧ください。
  • 報酬
  • コメント
  • リポスト
  • 共有
コメント
コメントを追加
コメントを追加
コメントなし
  • ピン留め