コードの突破ではなく、信頼の裏切り
身元不明の脅威アクターが、暗号資産プロトコルAFX Tradeの資産を実質的にすべて流出させました。スマートコントラクトのコード自体に脆弱性を悪用したわけではありません。攻撃者が狙ったのは、ブリッジのオペレーターがトランザクションを検証する際に用いる重要な秘密鍵でした。暗号学的なコンセンサスを偽造することで、攻撃者はシステムを騙し、2,415万USDC(デジタルドル)を自身のウォレットへ直接引き出す形で承認させました。
AFX Tradeは主にArbitrumネットワーク上で稼働しており、USDCのみで決済される無期限先物取引を扱う分散型取引所として機能しています。7月22日、攻撃者は大規模な引き出しリクエストを作成しました。重要なのは、ネットワークのバリデーターノードから盗み出した暗号署名を使い、この不正なトランザクションの認証に成功した点です。
ブリッジ攻撃の手口
AFX Tradeのブリッジ構造では、引き出しの実行におよそ3分の2の多数決によるコンセンサスが必要とされていました。ブロックチェーンセキュリティ企業Blockaidによると、攻撃者はこの閾値を満たすために必要な5つの署名を入手することに成功したといいます。スマートコントラクトは暗号学的に正当な署名を忠実に検証し、200秒間の異議申し立て猶予期間を経て、有効な異議が提出されなかったことを確認したうえで、2,415万USDCという巨額の資金を攻撃者が指定したアドレスへ送金してしまいました。詳細はAFX Tradeハッキングに関するArbiscanのトランザクション記録で確認できます。
注目すべきは、ブリッジのスマートコントラクトのロジック自体はプログラム通りに正確に動作していたという点です。今回の壊滅的な脆弱性はブロックチェーン上ではなく、完全にオフチェーン側、つまりオペレーターによる秘密鍵の管理・保管方法に関する重大な運用セキュリティ上の不備に起因していました。この鍵を手にしたことで、攻撃者は形式的に正当な引き出し許可を一方的に生成できる権限を得てしまったのです。
ネットワークの隔離と資金の持ち出し手口
Arbitrumの開発元であるOffchain Labsの担当者は、今回のインシデントの範囲について速やかに説明を行いました。AFX Trade事件に関するOffchain Labsの声明によると、Arbitrumの主要ブリッジは完全に安全であり、侵害は一切受けていないとのことです。今回の侵害は、AFX Tradeのプロジェクトチームが独自かつ自律的に運用していた専用ブリッジに厳密に限定されていました。したがって、この事件はArbitrumネットワーク全体に対するシステム的な脅威には当たりません。
資金の持ち出しに成功した後、攻撃者は盗み出したUSDCを迅速にEthereumメインネットへブリッジしました。そして、このステーブルコインを組織的に約12,467 ETH(評価額にしておよそ2,400万ドル相当)へと交換しています。ブロックチェーンのフォレンジック追跡サービスによると、本記事執筆時点で、この不正資金はすべて攻撃者が管理する単一のウォレットに集約されたままとなっています。
今回盗まれた資金は、AFX TradeのTotal Value Locked(TVL、預かり資産総額)のほぼ全額に相当していました。侵害が発生する前、同プラットフォームの取引量は急速に伸びており、7月中旬には数ヶ月ぶりの高水準を記録していました。新規ユーザーと資金の流入が続いていたことで、攻撃者はまさにプラットフォームの流動性が最大となるタイミングを狙い撃ちし、プロトコルの準備資産を根こそぎ流出させる結果となりました。
翻訳元: https://meterpreter.org/afx-trade-crypto-heist/