Yearn $9M資産被害事件の深掘り:プロトコルの脆弱性からドル価値の蒸発まで

2025年12月1日、YearnプロトコルはDeFi史上緻密に計画された多層階の複合攻撃を受け、最終的に約900万ドルのユーザー資産が失われました。これは単一の脆弱性の悪用ではなく、攻撃者がフラッシュローンを利用して資金を撬動し、プロトコルの防御メカニズムを層ごとに突破し、yETH関連LPトークンを無限に鋳造し、最終的に資金プールを枯渇させるシステム的破壊です。本事件は再び業界に警鐘を鳴らします:DeFiプロトコルの安全リスクは単一の脆弱性にあるのではなく、複数の欠陥の積み重ねによる爆発的な連鎖にある—これが現行業界で最も防御が難しい攻撃パターンです。

事件概要:フラッシュローンが多段階攻撃のてこに

攻撃者の資金調達戦略は一見平凡に見えますが、その背後には一連の連鎖操作の土台があります。彼らはBalancerとAaveの二つのプロトコルから同時にフラッシュローンを発行し、一度に大量のwstETH、rETH、WETH、ETHx、cbETHなどのETH派生資産を借り出します。これらの資産は直接取引に使われるのではなく、巧妙に配分されます:1100ETHのうち100ETHはTornado.Cashに送られ、資金源の隠蔽と次の「洗浄」操作の準備をします。

混合完了後、攻撃者は100ETHを悪意あるコントラクトアドレス0x3e8e7533dcf69c698Cf806C3DB22f7f10B9B0b97に引き出し、そのfallback関数をトリガーします。この隠されたコールバック内で、借り入れたすべての資産はyETHのweighted stableswapプールのLPトークンに変換されます—これは資金プールの「シェア証明書」を購入したことに相当します。一見普通の流動性注入に見えますが、実際には巧妙な「プールの空洞化術」の最終準備です。

三大核心脆弱性:精度喪失、利益剥奪、ゼロ供給初期化の致命的組み合わせ

第一層の脆弱性:精度喪失とコストなし状態の改ざん

この攻撃の技術的核心は、ささいに見えるコードの欠陥にあります:remove_liquidity関数がゼロ金額に対してショートサーキット処理を行わない

攻撃者の最初の行動は、意図的にプール内の資産の極端な不均衡を作り出すことです。彼らはadd_liquidity(流動性追加)関数を繰り返し呼び出しますが、index 3(rETH)、index 6(wOETH)、index 7(mETH)の3つのトークンの注入を意図的にスキップします。これにより、これら3つの資産と他の資産との比率差が人為的に拡大されます。その後、単独で大量のrETHを注入し、不均衡をさらに拡大します。

この極端な不均衡状態のプール内で、攻撃者はremove_liquidityを呼び出し、引き出し額のパラメータを0に設定します。通常のロジックでは、0トークンの引き出しは即座に返され、状態の変化はありません。しかし、pool.vyコントラクトはこれを行わず、完全なvb_prod(仮想残高の積)の計算ループを実行します。

極端な重みの不均衡の数学的環境下で、_pow_down関数(下向き丸め計算)は著しい精度損失を引き起こします。コントラクトは誤って小さめのvb_prod値を計算し、その改ざんされた値をグローバル状態のpacked_pool_vbに書き込みます。根本的には、攻撃者は「コストゼロ」の操作(トークンを送金せずに)で、プール全体の帳簿価値を改ざんしたのです。

第二層の脆弱性:利益剥奪とシェアの侵食

二つ目の脆弱性はより隠れています。攻撃者がupdate_rates関数を呼び出すと、内部の_update_supplyロジックがトリガーされます。ここで、vb_prodが悪意的に低く設定されていたため、システムは誤った認識を持ちます:プールの総価値が急激に縮小したと。帳簿のバランスを取るために、コントラクトは自動的にStakingコントラクトが保持する大量のLPトークンを破棄します。

攻撃者はレート更新前後のアービトラージを正確に行います。特定資産(wOETH、mETH)のレートを更新し、その直後にremove_liquidityを呼び出して資産を引き出します。Stakingコントラクトのシェアが大量に破棄されるため、相対的に攻撃者のLPシェアの比率は上昇します。この「更新-引き出し-破棄」のループを繰り返すことで、攻撃者はwOETHやmETHの実際の残高を次第に絞り込み、プールのTotal Supplyを危険なゼロ付近に追い込みます。

第三層の脆弱性:ゼロ供給無限鋳造の臨界点

前二つの段階を経て、プールはほぼ空になっています:Total Supplyは0に近づき、wOETHやmETHの残高は極めて低い状態です。ここで攻撃者は最後の致命打を放ちます:add_liquidityを呼び出し、パラメータを[1, 1, 1, 1, 1, 1, 1, 9]に設定します—つまり、最小単位のwei(1)を前7つの資産に、mETHに9wei注入します。

この操作は一見荒唐無稽に見えますが、プールが破壊の臨界点に達しているときに、コントラクトの計算崩壊を引き起こします。_calc_supplyの反復式は、極小値を扱う際に失敗し、最終的にコントラクトは誤って235,443個のyETH LPトークンを鋳造します。これは、空から何百万ドルもの擬似資産を創造したことに相当します。

攻撃の4段階詳細:極端な不均衡から無限鋳造へ

段階一:資金調達とプール状態の初期化

  • BalancerとAaveから複数のETH派生資産を借り入れ
  • Tornado.Cashを通じて資金源を隠蔽
  • 混合資金と借入資産をすべてyETH LPトークンに交換

段階二:極端な不均衡の人工的な創出

  • 反復的に片側だけ流動性を注入し、特定のトークン(rETH、wOETH、mETH)をスキップ
  • 巨量のrETHを単独注入し、不均衡を拡大
  • この段階が精度喪失の数学的条件を作り出す

段階三:利益剥奪とシェアの侵食

  • remove_liquidity(0)を呼び出し、精度喪失状態を誘発
  • update_ratesを呼び出し、レートを更新し、StakingコントラクトのLPを破棄
  • アービトラージを繰り返し、wOETHとmETHの残高を絞り込み
  • プールのTotal Supplyを0に追い込む

段階四:ゼロ供給無限鋳造

  • プール破壊直前にadd_liquidity([1,1,1,1,1,1,1,9])を呼び出し
  • _calc_supplyの計算崩壊により、235,443LPを誤って鋳造
  • 攻撃者はexchangeとredeemを通じて資産を交換
  • フラッシュローンの返済とともに、得た資産をビットコインや米ドルに換え、清算

資金追跡と清算経路:yETHからドルへの価値流出

この攻撃の最終的なブラックジョークは資金の逃走連鎖です。攻撃者は得た235,443LPを一連のexchange操作でETHやステーブルコインに換え、その後DEXの取引ペアを通じてビットコインなどのより隠蔽しやすい資産に変換します。最終的にOTC取引を利用し、数百万ドルの資産を現金やビットコインに換え、資金を逃走させます。この過程で、900万ドルのユーザ資金はオンチェーン上で明示的にプロトコル残高から攻撃者のウォレットへと移動し、その後、米ドルやビットコインに換金されて最終的に逃亡します。

業界への示唆:DeFiプロトコルは複合攻撃をどう防ぐか

本事件の重要な教訓は三つです:

教訓一:エッジケースの厳格な検証 DeFiプロトコルは、「ゼロ金額」や「極端な不均衡」などのエッジケースに対して厳格なロジック検証を行う必要があります。remove_liquidityは、引き出しパラメータが0の場合は即座に返すべきであり、完全な計算ループを実行すべきではありません。このような「ショートサーキット処理」は一見単純に見えますが、状態改ざんのリスクを大きく低減します。

教訓二:精度計算ロジックの最適化 _pow_downなどの極端な比率計算を伴う関数には防護メカニズムを導入すべきです。より高精度の数値処理ライブラリの採用、中間溢れ検知の追加、または極端なシナリオで異なるアルゴリズム分岐を用いることが考えられます。Balancerの過去の攻撃例もあり、これは歴史的な教訓です。

教訓三:多次元の異常監視体制の構築 リアルタイム監視システムを構築し、以下の操作に対してアラートを出す必要があります:

  • 高頻度の片側流動性注入によるプールの極端な不均衡
  • 異常なレート変動や自動破棄イベント
  • ゼロ金額取引や極小値操作の異常頻度
  • 短期間でのプールTotal Supplyの激しい変動

このDeFiエコシステム全体にとって、今回の事件は深い真理を証明しています:安全性は特定の脆弱性の修復にあるのではなく、複数の欠陥の組み合わせを体系的に防ぐことにある。プロトコル開発者は、全工程のコードロジックを俯瞰し、「無害」に見える設計欠陥も見逃さず、システム全体の安全性を高める必要があります。同時に、業界は攻撃者の資金流向の链上追跡と凍結能力を強化し、DEXのブラックリストやOTCのリスク管理を通じて全体の防御力を向上させるべきです。Yearnのハッキング事件は終わりではなく、むしろ業界の安全進化を促す触媒となるべきです。

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