簡単に言うと、攻撃者はしばらくの間オンチェーンで公然と準備を進め、その後1回のEIP-7702委任でバイナンスのホットウォレットBinance 14を自分のコントラクトに変え、未明から掃討を開始した。夜明けまでに、バイナンスのホットウォレットに関連するアドレスから約56.43億ドルが流出し、イーサリアム、ビットコイン、トロン、複数のL2にまたがった。Tether、Circle、Ripple、World Libertyなどの発行体が共同で約25.4億ドルを凍結し、これは流出額の約45%に相当する。そして現時点まで、その悪意ある委任は依然として取り消されていない。
バイナンスの現在の公式な説明は一貫して、潜在的なセキュリティ問題を調査中であり、ユーザー資金は完全に安全であるというものだ。
イーサリアム:35.28億ドル
ビットコイン:14.49億ドル
トロン:6.28億ドル
Arbitrum + Optimism + Base:合計約3,800万ドル
Tether約15.67億USDT、Circle約8.23億USDC(両者合計23.16億)、さらにRipple約2億RLUSD、World Liberty Financial約2,780万USD1 + 200万WLFIを加え、25.4億となる。
10月28日以降:攻撃者の発起アドレス0x7C86…5CA0は、Gasの支払い専用としてTornado Cashからの出金約0.1 ETHを3件受け取った。このアドレスは以前、バイナンスと何の関係もなかった。
10月29日10:29: 最初の掃討コントラクト0x19be…f2bfをデプロイ。後に放棄された。
10月29日21:51: 2つのテストウォレットにEIP-7702委任を書き込んだ。この2つのウォレットはいずれもバイナンスのものではなく、攻撃者が自ら用意した外部ウォレットである。
10月29日22:20と22:24: 1回目、2回目の演習で、掃討を呼び出してこの2つのテストウォレットを空にした。1回目は多少問題が発生した可能性があり、4分後に再度実行された。
10月29日 23:59: 修正版コントラクト 0x63e8…6fAe をデプロイ。最終的にバイナンス上で有効化
10月30日 00:21 から 00:30: 3回目の演習、3つ目のウォレットに切り替え、2回の委任と1回のスイープ。
その後3時間51分の沈黙。そして実行に移る。
04:21:00: EIP-7702 タイプのトランザクションを送信し、0x63e8…6fAe のコードを Binance 14(アドレス 0x28C6…1d60)に委任。同一トランザクションに50件の承認を詰め込み、nonce が一致したのは1件のみ。
04:24:23: メインスイープが発生。Binance 14 自身が呼び出しを发起し、0x5227…2f8c へ 167,464 ETH と63種のトークン(約16.15億 USDT を含む)を送金。手数料は 0.0004 ETH、1ドル未満。
04:24:47: Binance 16 が同一アドレスへ 28,005.6 ETH を追加送金、ほぼシームレスに接続。
04:30 から 04:33: USDT の分割を開始、5億を 0x9749…C762 へ、2億を 0x0Ddf…697e へ送金。
04:38: 195,460 ETH を一括で 0x8532…43D4 へ移動。これが単一トランザクションとして最大の移送。
04:41 と 04:59: 攻撃者が Binance 14 上で別の関数 0x043ff9d2 を呼び出し;同じ分に Hot Wallet 34 がそれぞれ7.8億と4,300万 USDC を送金。攻撃者は Binance 14 の当該コントラクトに対する権限を借用した。
05:04: さらにスイープが発生し、1,699.92 ETH を掃き出し。
05:22 から 06:02: 分散化。RLUSD 8,850万、UNI 702万、PEPE 7.77兆、wBETH 29,934、ENA 2.175億を、それぞれ全新規アドレスへ送金。各アドレスには事前に0.5から1 ETH を Gas 用として入金。
05:44:この過程で、Binance 14 上で再び一度のスイープが成功し、ちょうど入金されたばかりの新しい預金が掃き出された。
委託から最初のスイープまで、わずか3分24秒しか経過していない。しかしBinanceのリスク管理システムは何の遮断動作も行わなかった。
その後5時から、Binanceと各プロジェクト側は資産の凍結を開始した。Tether約15.67億USDT、Circle約8.23億USDC(両者合計23.16億)、さらにRipple約2億RLUSD、World Liberty Financial約2,780万USD1+200万WLFIを加え、合計25.4億となった。
EIP-7702はイーサリアムのPectraアップグレードで導入された機能である。通常のウォレット(EOA)が一時的にスマートコントラクトのコードを借りることを可能にする。ウォレットの所有者が一度授权に署名すると、以後このアドレスへのあらゆる呼び出しは、その外部コードを実行することになる。
攻撃者の使い方は次の通りである:
コントラクト0x63e8…6fAeをデプロイする。中には一つの関数sweep(address pool, address[] depositors)しかなく、ETHと指定された一連のトークンをすべて指定アドレスに転送する。
Binance 14の授权署名を取得し、このコードをBinanceのホットウォレットに「インストール」する。
インストール完了から3分24秒後、Binanceのホットウォレットアドレス上で直接スイープコントラクトを呼び出す。
したがって、外部から見るとBinanceのホットウォレット自身が資金を送金したように見える。チェーン上では「外部アドレスが資産を転送した」動作は一切見えず、Binance 14が正常な出金を行っているように見える。
攻撃者はBinance 14のリアルタイムnonceを知らなかった(そのウォレットは依然として取引を送信し続けている)。そこで彼は一つの取引に50個の授权を詰め込み、nonceをNからN+49まで並べ、そのうち一つが命中することを賭けた。結果として一つだけが有効になった。
BlockBeats の公式コミュニティに参加しよう:
Telegram 公式チャンネル:https://t.me/theblockbeats
Telegram 交流グループ:https://t.me/BlockBeats_App
Twitter 公式アカウント:https://twitter.com/BlockBeatsAsia