Truebit Protocolのハッキングが整数オーバーフローのリスクを露呈:ETHで2640万ドルの損失

robot
概要作成中

2024年1月12日、セキュリティ企業SlowMistは、Truebitプロトコルに関する重大なインシデントを公開し、整数オーバーフローの脆弱性が分散型システムにおいて壊滅的な財務損失を引き起こす可能性があることを示しました。この攻撃は1月8日に発生し、プロトコルのスマートコントラクトのロジックを巧妙に悪用することで、8,535 ETH(約2,644万ドル相当)が盗まれました。

整数オーバーフローが攻撃を可能にした仕組み

この脆弱性の根本的な原因は、TruebitプロトコルのPurchaseコントラクトに十分なオーバーフロー対策が施されていなかったことにあります。攻撃者はこの弱点を突いて、コントラクト内の価格計算を操作し、ほぼ無償で$TRUトークンをミントできる状態にしました。これは、算術演算がデータ型の最大値を超えると値が循環してしまう「整数オーバーフロー」の仕組みを悪用し、プロトコルの資金を吸い上げる典型的な例です。

技術的な詳細の解説

この脆弱性の根本原因は、整数の加算演算においてオーバーフロー保護が施されていなかったことにあります。Purchaseコントラクトが適切な検証なしに算術計算を行ったことで、攻撃者は通常のトークン価格設定メカニズムを回避する取引を作成できました。誤った価格計算により、実際の市場価値を大きく下回るトークンのミントが可能となり、まるで空気から通貨を発行するかのように資金を増やしながら、プロトコルのセキュリティメカニズムは気付かないままでした。

整数オーバーフロー防止:スマートコントラクトのベストプラクティス

SlowMistは、Solidityバージョン0.8.0以前を使用している開発者は、すべての算術演算にSafeMathライブラリを実装する必要があると強調しています。SafeMathは、オーバーフローやアンダーフローが検出された場合に自動的にトランザクションをリバートし、悪意のある攻撃者による脆弱性の悪用を防ぎます。新しいSolidityバージョン(0.8.0以降)では、言語自体にチェック済みの算術演算が標準で組み込まれており、多くの—ただしすべてではない—整数オーバーフローのリスクを軽減しています。この事例は、堅牢なプログラミング手法と徹底したセキュリティ監査の重要性を改めて示しており、スマートコントラクトを本番環境にデプロイする前に十分な対策を講じる必要性を浮き彫りにしています。

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