Truebitの脆弱性事件の深掘り:整数オーバーフローがハッカーにゼロコストで2644万ドルのコインを鋳造させる方法

1月8日、計算検証プラットフォームTruebitが重大なセキュリティインシデントを受けました。慢雾安全チームの分析レポートは、この事件の真相を明らかにしています。攻撃者はPurchaseコントラクトの整数オーバーフローの脆弱性を悪用し、ほぼゼロコストでTRUトークンを鋳造、その後8,535 ETH(約2,644万ドル)を窃取しました。さらに悪いことに、ハッカーは1月10日から11日にかけてTornado Cashを通じて全資金のマネーロンダリングを完了し、追跡・回収はほぼ不可能となっています。これは単なる巨額の経済的損失にとどまらず、スマートコントラクトエコシステム全体の安全意識に対する厳しい試練となっています。

脆弱性の本質:忘れられた保護メカニズム

整数オーバーフローとは

整数オーバーフローは、一般的でありながら危険なスマートコントラクトの脆弱性です。簡単に言えば、数値計算がデータ型の最大値を超えた場合、システムは自動的に「巻き戻し」されて最小値にリセットされます。例を挙げると、8ビットの符号なし整数の最大値は255です。これに1を加えようとすると、結果は0になります。

TruebitのPurchaseコントラクトでは、この脆弱性を利用して価格計算が行われました。攻撃者は巧妙に構築した取引パラメータを用いてオーバーフローを引き起こし、極めて低価格(ほぼゼロ)でTRUトークンの鋳造を許可させました。これは、攻撃者にとって数百万ドルのコストがかかる操作を、ほとんどコストをかけずに完了させたことに等しいです。

なぜこの脆弱性が生じたのか

慢雾の分析によると、根本原因はTruebitのコントラクトにオーバーフロー保護メカニズムが欠如していたことにあります。この問題はSolidityプログラミング言語において典型的なセキュリティリスクです。

Solidityバージョン オーバーフロー保護 推奨される対策
0.8.0以前 保護なし SafeMathライブラリの使用必須
0.8.0以降 内蔵保護あり 直接算術演算を使用可能

TruebitはSolidity 0.8.0以前のバージョンでコントラクトをコンパイルしており、すべての算術演算にはSafeMathライブラリを用いる必要がありました。しかし、価格計算のある段階でこの保護が見落とされていたことが明らかです。

攻撃の経路と市場の反応

攻撃者の手口

関連情報の監視によると、今回の攻撃の実行は非常に効率的かつ迅速でした。

  • 第1段階:脆弱性の特定と悪意のある取引の構築
  • 第2段階:極めて低コストで大量のTRUトークンを鋳造
  • 第3段階:鋳造したトークンを用いてTruebitの資金プールからETHを引き出し
  • 第4段階:資金を素早くミキサーアドレスへ送金
  • 第5段階:Tornado Cashを通じてマネーロンダリング(1月10-11日に完了)

この一連の流れは、脆弱性の発見から資金の洗浄までに要した時間はわずか72時間未満です。攻撃者の専門性と実行速度は、これは単なる偶発的な試みではなく、計画的な攻撃である可能性を示唆しています。

市場の懸念シグナル

この事件は市場に明確なネガティブな反応を引き起こしました。最新のデータによると、ETHの現在価格は3,102.47ドルで、直近では弱気の動き:24時間で0.03%下落、7日間で2.14%下落しています。下落幅はそれほど大きくありませんが、より深刻なのは、投資家が計算検証プロトコル(Computation Verification Protocol)などの類似プロジェクトの安全性に疑問を抱き始めている点です。

TruebitはLayer2エコシステムにおいて重要な計算検証基盤です。その安全性の事件は、プロジェクト自体の信頼を揺るがすだけでなく、「我々にはどれだけの類似の脆弱性が潜んでいるのか」という業界全体の懸念を引き起こしています。

業界への示唆:これは個別の事件ではない

SafeMathがこれほど重要な理由

慢雾のレポートでは明確に推奨しています:Solidity 0.8.0以前のバージョンでコンパイルされたすべてのコントラクトについては、常にSafeMathライブラリを用いて算術演算を保護すべきです。これは選択肢ではなく、基本的な防御策です。

SafeMathライブラリの役割は非常にシンプルかつ重要です。算術演算のたびにオーバーフローが発生しないかを検査し、もし発生すれば取引を即座にrevertします。一見冗長に思えるこのステップは、Truebitのような災害を防ぐために不可欠です。

審査の盲点とリスク

興味深いのは、Truebitは資金調達も十分で技術力も高いプロジェクトであり、セキュリティ監査も受けていたはずです。それにもかかわらず、この脆弱性は見落とされてしまいました。これは業界全体の問題を浮き彫りにしています。

  • 審査チームは自動化ツールに過度に依存している可能性
  • 旧バージョンSolidityの特有のリスクに対する認識不足
  • コードレビューの深さや徹底度の不足

これらは、たとえプロジェクトが監査を受けていても、100%安全を保証できないことを示しています。

ミキサーの継続的な脅威

Tornado Cashはこの事件において再び「資金のブラックホール」の役割を果たしました。攻撃者が資金をミキサーに送った後、その資金は追跡や凍結がほぼ不可能となります。これが、8,535 ETHの損失が「ほぼ回収不可能」とされる理由です。

この事例は、たとえ攻撃者のウォレットアドレスを捕捉しても、彼らがタイムリーにミキサーに送金すれば、その後の法執行は困難になることを示しています。

まとめ

Truebit事件は、根底にある基本的な防護策の忘却がもたらした災害です。8,535 ETHと2,644万ドルの損失は表面上のものであり、より深刻な問題は次の通りです。

  • バージョン選択の重要性:古いSolidityバージョンを使う場合は、追加の安全意識と防護策が必要
  • SafeMathは選択肢ではなく必須:基本的な防御ライン
  • 監査は万能ではない:より深いコードレビューとリスク評価が必要
  • 迅速な対応が不可欠:攻撃者の資金移動の速さは、より敏捷な緊急対応の必要性を示しています

このコストの高い教訓を踏まえ、より厳格な安全基準の推進、より徹底した監査プロセス、慎重なバージョン選択を行えば、その代償も無駄にはならないかもしれません。

TRU1.75%
ETH0.67%
このページには第三者のコンテンツが含まれている場合があり、情報提供のみを目的としております(表明・保証をするものではありません)。Gateによる見解の支持や、金融・専門的な助言とみなされるべきものではありません。詳細については免責事項をご覧ください。
  • 報酬
  • コメント
  • リポスト
  • 共有
コメント
0/400
コメントなし
  • ピン