瞬時ストレージ脆弱性によりオンチェーンプロジェクトが30万ドルの攻撃を受ける 専門家が防止策を解析

robot
概要作成中

瞬态ストレージの脆弱性による30万ドルのオンチェーン攻撃事件分析

2025年3月30日、あるオンチェーンレバレッジ取引プロジェクトが攻撃を受け、30万ドル以上の資産損失を引き起こしました。セキュリティチームはこの事件について詳細な分析を行い、結果を以下の通り共有します:

背景

攻撃はEthereumネットワーク上で発生し、ターゲットはレバレッジ取引プロジェクトです。攻撃者はそのプロジェクトの契約における一時的ストレージに関連する脆弱性を悪用しました。

! 致命的な残留物:一時的なストレージによって引き起こされた300,000ドルのオンチェーン強盗

予備知識

Solidity 0.8.24バージョンでは瞬态存储(transient storage)機能が導入され、これは新しいデータストレージ位置です。その主な特徴は以下の通りです:

  • 低ガスコスト:TSTOREとTLOAD操作は固定で100ガスを消費します。
  • 取引内の持続性:データは取引期間中ずっと有効です
  • 自動クリア:取引終了後に自動的にゼロにリセットされます

! 致命的な残留物:一時的なストレージによって引き起こされた300,000ドルのオンチェーン強盗

脆弱性の原因

今回の攻撃の根本的な原因は、コントラクト内でtstoreを使用して瞬時に保存された値が関数呼び出しの終了後にクリアされなかったことです。これにより、攻撃者はこの特性を利用して特定のアドレスを構築し、権限チェックを回避してトークンを転送することができました。

! 致命的な残留物:一時的なストレージによって引き起こされた300,000ドルのオンチェーン強盗

攻撃プロセス

  1. 攻撃者は二つの悪意のあるトークンAとBを作成し、あるDEX上にそれらの流動性プールを作成します。
  2. ターゲットコントラクトのinitialize関数を呼び出し、Aトークンを担保として、Bトークンを債務トークンとしてレバレッジ取引市場を作成します。
  3. mint関数を呼び出してBトークンを預け入れ、レバレッジトークンを発行します。このプロセスでは、2回の一時ストレージ操作が行われました。
  4. 2回目の瞬時ストレージ値と同じアドレスを持つ悪意のあるコントラクトを作成します。
  5. その悪意のあるコントラクトを介してターゲットコントラクトのコールバック関数を呼び出し、権限チェックを回避してトークンを転送する。
  6. 最後に攻撃契約(Aトークン)を介してコールバック関数を再度呼び出し、他のトークン(例えばWBTC、WETH)を転送して利益を得ます。

! 致命的な残留物:一時的なストレージによって引き起こされた300,000ドルのオンチェーン強盗

! 致命的な残留物:一時的なストレージによって引き起こされた300,000ドルのオンチェーン強盗

! 致命的な残留物:一時的なストレージによって引き起こされた300,000ドルのオンチェーン強盗

! 致命的な残留物:一時的なストレージによって引き起こされた300,000ドルのオンチェーン強盗

! 致命的な残留物:一時的なストレージによって引き起こされた300,000ドルのオンチェーン強盗

! 致命的な残留物:一時的なストレージによって引き起こされた300,000ドルのオンチェーン強盗

! 致命的な残留物:一時的なストレージによって引き起こされた300,000ドルのオンチェーン強盗

! 致命的な残留物:一時的なストレージによって引き起こされた300,000ドルのオンチェーン強盗

! 致命的な残留物:一時的なストレージによって引き起こされた300,000ドルのオンチェーン強盗

! 致命的な残留物:一時的なストレージによって引き起こされた300,000ドルのオンチェーン強盗

! 致命的な残留物:一時的なストレージによって引き起こされた300,000ドルのオンチェーン強盗

! 致命的な残留物:一時的なストレージによって引き起こされた300,000ドルのオンチェーン強盗

マネーフロー分析

攻撃者は約30万ドルの資産を盗みました。内容は以下の通りです:

  • 17,814.8626ドルc
  • 1.4085 WBTCの
  • 119.871 ウェス

その後、攻撃者はWBTCとUSDCをWETHに交換し、最終的に193.1428 WETHをあるミキシングサービスに転送しました。

攻撃者の初期資金(0.3 ETH)もそのミキシングサービスから来ています。

! [致命的な残留物:一時的なストレージによって引き起こされた300,000ドルのオンチェーン強盗](https://img-cdn.gateio.im/webp-social/moments-904133c007422770dd55372438c3d257.webp0192837465674839201

! [致命的な残留物:一時的なストレージによって引き起こされた300,000ドルのオンチェーン強盗])https://img-cdn.gateio.im/webp-social/moments-c2206fe20197a3835ddb92319314e4eb.webp(

まとめと提案

今回の攻撃の核心は、瞬時のストレージの特性を利用して、取引全体の期間中に値を不変に保つことにより、契約の権限検証を回避したことです。類似の攻撃を防ぐために、プロジェクトチームに提案します:

  1. 関数呼び出しが終了した後にすぐにtstore)key, 0(を使用して、一時的ストレージ内の値をクリアします。
  2. コントラクトコードの監査とセキュリティテストを強化する。
  3. 新しく導入された言語機能の使用には慎重を期し、その潜在的なリスクを十分に理解してください。
WBTC0.45%
原文表示
このページには第三者のコンテンツが含まれている場合があり、情報提供のみを目的としております(表明・保証をするものではありません)。Gateによる見解の支持や、金融・専門的な助言とみなされるべきものではありません。詳細については免責事項をご覧ください。
  • 報酬
  • 6
  • 共有
コメント
0/400
PensionDestroyervip
· 7時間前
また初心者が送った
原文表示返信0
TestnetFreeloadervip
· 7時間前
ああ、これは白嫖だな。自分のプロジェクトさえもホールドできない。
原文表示返信0
LootboxPhobiavip
· 7時間前
やばい、やばい、また兄弟が踏んでしまった。
原文表示返信0
BearMarketMonkvip
· 7時間前
羊毛を刈ることも契約の穴を抜けてしまった
原文表示返信0
DeFiAlchemistvip
· 7時間前
ああ、スマートコントラクトの悪用という暗黒の技術へのもう一つの生贄... *クリスタルボールを調整する* これらの一時的なストレージの脆弱性は、プロトコルの錬金術の神秘的な封印の亀裂のようだ。
原文表示返信0
TestnetNomadvip
· 8時間前
ひどい、また一波に引っかかってしまった。
原文表示返信0
いつでもどこでも暗号資産取引
qrCode
スキャンしてGateアプリをダウンロード
コミュニティ
日本語
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)