Beosin:FTXがGas窃盗攻撃を受けた事件の技術分析
ChainCatcher のメッセージによると、Beosin セキュリティチームは FTX が Gas 窃取攻撃を受けた事件について分析し、攻撃取引の一例 (0x8eb73bd5c08318a4cfd233940c3a58744830cda999e59ecbc56f094618a91d69) を挙げています。攻撃者はまず、チェーン上に攻撃コントラクト (0xCba9b1Fd69626932c704DAc4CB58c29244A47FD3) をデプロイしました。
FTX のホットウォレットアドレスは攻撃コントラクトアドレスに少額の資金を送金し、攻撃コントラクト (0xCba9…7FD3) を利用して大量のサブコントラクトを一括作成します。攻撃全体で大量のコントラクトが作成され、サブコントラクトの実行が完了するたびに、サブコントラクトは自壊します。
次に、サブコントラクトの fallback() 関数が Xen コントラクトに対してコイン発行リクエストを行います。以下の関数、claimRank() 関数には期限(最小 1 日)を入力してコインを発行します。コイン発行の条件は、呼び出しのガス費用のみを支払うことで、他のコストはありません。また、claimMintReward() 関数は引き出し関数であり、この関数は期限が達成されたかどうかのみを判断します(今回のハッカーが設定した期限は最小値の 1 日です)。条件なしで引き出すことができます。しかし、この呼び出しプロセスでは、取引の発起者は FTX ホットウォレットアドレスであるため、呼び出しプロセス全体のガスは FTX ホットウォレットアドレスによって支払われ、Xen のコイン発行アドレスは攻撃者のアドレスです。
最初の 3 つのステップは何度も繰り返され、各繰り返しの過程で期限が到来したトークンが引き出され、新たなコイン発行リクエストが同時に発起されます。
記事執筆時点で、Beosin Trace を通じて追跡した結果、FTX 取引所は 81ETH の損失を被り、ハッカーは DODO や Uniswap を通じて XEN トークンを ETH に交換して移転しました。








