2022 年 10 月 13 日、Beosin の EagleEye Web3 セキュリティ監視プラットフォームによると、FTX 取引所はハッカーのために大量の XEN トークンを作成するためにすべてのガス料金を支払うように操作されたガス盗用攻撃を受けていました。
この攻撃を受けて、Coinlive は、シンガポールに本拠を置く Web3 セキュリティ会社である Beosin にエクスプロイトの具体的なプロセスを分析するよう依頼しました。
1. イベント関連情報
A few transactions of the attacks: 0xc96b84cd834655290aa4bae7de80a3c117cc19d414f5bcf2fb85b8c5544300890x8eb73bd5c08318a4cfd233940c3a58744830cda999e59ecbc56f094618a91d690x6bada8e084f8d3b62311f0b6eda10f2690e7542dab75a0de436a640036bccf94
攻撃者のアドレスの 1 つ: 0x1d371CF00038421d6e57CFc31EEff7A09d4B8760
攻撃されたコントラクトの 1 つ: 0xCba9b1Fd69626932c704DAc4CB58c29244A47FD3
攻撃された FTX ホットウォレットアドレス: 0xC098B2a3Aa256D2140208C3de6543aAEf5A94444
2.攻撃の流れ
例として、特定の攻撃トランザクション (0x8eb73bd5c08318a4cfd233940c3a58744830cda999e59ecbc56f094618a91d69) に焦点を当てます。
最初のステップで、攻撃者は悪意のあるコントラクト アドレスをチェーン (0xCba9b1Fd69626932c704DAc4CB58c29244A47FD3) に展開しました。
2 番目のステップでは、ハッカーは FTX ホット ウォレット アドレスを使用して少量の資金を悪意のあるコントラクト アドレス (0xCba9...7FD3) に転送し、その後、このコントラクトを使用してサブコントラクトをバッチで作成しました。
攻撃全体で多くのコントラクトが作成され、サブコントラクトが実行されるたびにサブコントラクトが自己破壊されるため、例として次の図を示します。
3 番目のステップでは、サブコントラクトの fallback() 関数が $XEN コントラクトへのミント リクエストを開始します。 claimRank() 関数は、ミンティングの期間 (>= 1 日) を渡します。必要なのは、通話のガス料金のみで、その他の費用は一切かかりません。
claimMintRewardAndShare() 関数は請求用であり、期限に達したかどうかのみを判断し (この場合、ハッカーによって 1 日に設定されます)、任意のアドレスに無条件に引き出すことができます。ただし、この呼び出しプロセスでは、トランザクションの開始者は FTX ホット ウォレット アドレスであるため、呼び出しプロセス全体のガスは FTX ホット ウォレット アドレスによって支払われ、$XEN ミント アドレスは攻撃者のアドレスです。
上記の 3 つのステップが 1 サイクルで連続的に繰り返されます。期限切れのトークンを撤回するたびに、新しいミンティング リクエストを同時に開始します。
3. 脆弱性分析
この攻撃は主に、FTX が受信者の契約アドレスに制限を課していないという事実を利用しており、ETH のガス制限に制限を課していないため、ハッカーは $XEN トークンを悪用して利益を得ることができます。
公開時点で、FTX 取引所は合計 81 ETH を失い、ハッカーは $XEN トークンを DODO や Uniswap などの分散型取引所を通じて ETH 送金に交換しました。
Beosin のファンドの動きと追跡チャート