不正資金流動のケーススタディ:LI.FI 攻撃
事件の背景
2024年7月16日、クロスチェーンブリッジおよびDEXアグリゲーターであるLi.Fiが、Li.Fi Diamond Contractを悪用した大規模なセキュリティ侵害に見舞われました。ユーザーの様々なステーブルトークンやその他の資産、約1,160万ドル相当が盗難されました。攻撃者は、攻撃されたコントラクトに無制限の承認を与えていたユーザーから資金を引き出すことに成功しました。
- 攻撃者のアドレス:0x8b3cb6bf982798fba233bca56749e22eec42dcf3
- 脆弱なコントラクト:0x1231deb6f5749ef6ce6943a275a1d3e7486f4eae
- 攻撃トランザクションの例:0xd82f, 0x86fe, 0x606a
脆弱性は、GasZipFacetコントラクトの[function](https://etherscan.io/address/0xf28a352377663ca134bd27b582b1a9a4dad7e534#code) depositToGasZipERC20()にありました。GasZipFacetコントラクトは、LI.FIチームによって攻撃の5日前にデプロイされ、ブリッジングトランザクションのガスリフューエルを可能にするものでした。depositToGasZipERC20()関数には、ユーザーが制御可能な引数_swapDataが含まれており、これは後でLibSwap.swap()関数呼び出しに渡されました。残念ながら、LibSwap.swapには、攻撃者が制御する引数_swapDataによって指定されたコールターゲットとコールデータで任意の関数を実行できる低レベルコールが含まれていました。攻撃者はこの「任意関数実行の脆弱性」を利用して、Li.Fi Diamondコントラクトに無制限の承認を与えていたユーザーから不正な送金を行いました。
資金流動分析
2024年7月16日、攻撃者は任意関数実行の脆弱性を悪用して約100件のトランザクションを開始し、約1,100万ドル相当のステーブルトークン(USDT、USDC、DAI)を30分以内にアドレス0x8b3cに送金しました。盗まれたステーブルトークンのほとんどは、すぐにイーサリアムネイティブトークンであるETHに交換されました。攻撃者が利用したDEXには、Uniswap、Metamask Swapなどが含まれます。スワップトランザクションの例:0xdf9b, 0x11d, 0xb4a4。
Metamask Swap Spender0x74de5d4fcbf63e00296fd95d33236b9794016631と相互作用するスワップトランザクション0x8e27内の資金流動の例。攻撃者は不正に取得した333,258 USDTを97.16 ETHに交換しました。すべてのプールとプロキシはMetaSleuthを使用して明確に表示されています。

攻撃から2時間以内に、盗まれた資産はすべて攻撃者が管理する下流アドレスに送金され、元の攻撃アドレスには何も残っていませんでした。攻撃アドレス0x8b3cに直接接続されている(つまり、元の攻撃アドレスから1ホップ離れた)下流アドレスは合計32件でした。そのうち、15件のアドレスは攻撃アドレスから0.1 ETHのみを受信しました。2024年10月22日現在、これら15件のアドレスが保有するETHは転送されていません。残りのアドレスは、残りの巨額の不正資金を処理しました。
被害者アドレスから攻撃者が管理する下流アドレスへの資金流動の一部:

不正資金をアドレス0x8b3cから1ホップ離れた下流アドレスに送金した後、攻撃者はさらに資金をバッチで移動させ始めました。送金(マネーロンダリング)プロセスは3ヶ月近く続きました。不正資金のほぼすべてが最終的にTornado Cashに送金され(99.9%)、少額は取引所eXchに直接現金化のために送られました。攻撃者がTornado Cash Routerと相互作用するために使用したトランザクションは合計114件でした。Tornado Cashへの不正利益の送金トランザクションの例:0x07de, 0xfe82, 0x6a47, 0x8ea6。eXchへの不正利益の送金トランザクションの例:0xaa89, 0x7e65, 0x8572, 0x625c, 0x2dd2, 0xda71。
レイヤー2アドレス(元の攻撃アドレス0x8b3cから2ホップ)からレイヤー4アドレスへの資金流動の一部:

最初の大規模な送金バッチは、攻撃から最初の1週間、7月16日から7月22日の間に発生しました。攻撃者は、アドレス0x6a6dからTornado Cashに約50万ドル相当の不正資産を送金しました。攻撃者の不正資金の送金は、明確な特徴を示していました。彼らは資金を攻撃アドレスから遠く離れた下流アドレス(高リスクアドレス)に移動させ、一部を徐々にTornado Cashに流し込んでいました。最初のバッチでは、最長の送金パスは最大20ホップに達しました。攻撃者は、不正資金の流れを隠蔽するために、非常に深いマネーロンダリングパスを利用しました。8月から10月にかけて、残りの不正資金は、同じ特徴を持つ送金バッチで徐々にTornado Cashに送金されました。
アドレス0x8e85(0x8b3cから1ホップ)からTornado Cash Routerへの資金送金バッチの例:

図が示すように、2024年8月13日から8月16日の間に、攻撃者は12ホップのパスを通じて、徐々に206 ETHをTornado Cashに送金しました。アドレス0xe9f7で、攻撃者は204 ETHを2つのトランザクションに分割しました。100 ETHはTornado Cashに送金され、104 ETHはさらなるマネーロンダリングアドレスに転送されました。この分割パターンは、プロセス全体を通して一貫していました。つまり、攻撃者はTornado Cashが関与する各インタラクションで、新しい、より深いアドレスを使用しました。
対策
攻撃から2日後、LI.FIは公式にインシデントレポートを発表し、すべてのチェーンで脆弱なコントラクトファセットを無効化し、さらなる不正アクセスを防ぐことに成功したと主張しました。LI.FIは補償計画を開始し、影響を受けたユーザーに全額返金しました。盗まれた資産の回収については、法執行機関や業界のセキュリティチームを含む関連する第三者と協力して、資金の追跡と回収を試みると主張しました。2024年10月22日現在、不正資金のほぼすべてがTornado Cashに送金されており、Li.Fiは追跡レポートをまだ公開していません。
関連アドレスとトランザクション
| アドレス | トランザクション | 不正資金流動 |
|---|---|---|
| 0x8e85eace2fa757c1d97c5ebfb8b0622e5f23c5a1 | 0xe237, 0x0d23 | 206.49 ETH |
| 0xcb7c341dc6172b642dcf4a14015be70a27e5b31e | 0x050c, 0x37d4 | 873,568 USDT + 36.48 ETH |
| 0x7b93fa16c04cdcf91949d4f5f893f740992ae57e | 0x57ea, 0x52ac | 332.02 ETH |
| 0x3462d2523cded523ad47c14111aa1dcbe7773675 | 0xc66d, 0xc0ff | 120.55 ETH |
| 0xd0be9c4c84068a9964c3781f540f703c300db268 | 0x0c3b, 0x1670 | 275.38 ETH |
資金流動の概要:

MetaSleuthでさらに確認: https://metasleuth.io/result/eth/0x14c1597cc833783ed8ac08ecc9b704b0a398201d?source=c8cd3609-0402-45eb-bb9e-2f710bd66554



