クロスチェーン分散型取引所(DEX)のTHORChain(ソーチェーン)は20日、5月15日に発生した約1,070万ドル(約17億円)のハッキング被害に関する公式事後報告書を公開した。攻撃者がネットワークに参加してからわずか2日で資金庫の秘密鍵を再構成し、不正に資金を引き出した経緯が詳細に記されている。ユーザー資金の被害はなく、流出したのはプロトコルが管理する資金のみだという。
参加2日で秘密鍵を再構成──攻撃の全容
ソーチェーンでは、資金庫の秘密鍵を1人が持つのではなく、複数のバリデーター(ノード)に分散して管理する「GG20」という署名方式を採用している。各ノードは鍵の断片だけを保有し、取引の承認時には複数ノードが協力して署名を生成する。鍵の全体が1か所に集まることは本来ない設計だ。しかし攻撃者はこの仕組みの脆弱性を突き、断片から完全な秘密鍵を再構成することに成功した。
報告書が明らかにしたタイムラインはこうだ。攻撃者はまず5月1日に「Dinosauruss」というハンドル名でソーチェーンの開発者向けDiscordに参加し、ノードの参加方法について質問を重ねた。5月13日に約63万5,000RUNEを担保として預け、正規のバリデーターとしてネットワークに加入。5つある資金庫の1つにランダムに割り当てられた。
2日間、通常の署名作業に参加しながら鍵の再構成を進めた攻撃者は、5月15日午前7時26分(UTC)に犯行に及んだ。正規の承認プロセスを完全に迂回し、再構成した秘密鍵で直接不正な送金を実行。被害額は当初約740万ドルと推定されたが、最終的に約1,070万ドルに上方修正された。
52分で自動停止、しかし事前防止は機能せず
ソーチェーンの自動監視システム(ソルベンシーチェッカー)は、不正送金から数分で資金庫の残高異常を検知。人の介入なしに、イーサリアム、アバランチ、BNBチェーン、Base、ドージ、GAIAの署名と取引を約52分で自動停止した。
ただし、本来であれば署名前に不正を食い止めるはずの事前防止機能は機能しなかった。攻撃者がすでに秘密鍵を再構成し、正規の署名プロセスを経由せず直接送金していたためだ。
その後、コミュニティメンバーがDiscord上で異常なトランザクションを発見し、約18〜20のノードオペレーターが手動で一時停止を積み重ねた。さらにオンチェーンガバナンスの投票により、取引・署名・チェーン監視・バリデーター交代のすべてが順次凍結され、コミュニティの最初の警告から約1時間でネットワーク全体が停止している。残り4つの資金庫には被害はなかった。
ソーチェーンはすでにパッチv3.18.1をリリースし、全ノードオペレーターにアップグレードを要請している。流出資金の回復はADR-028を通じたコミュニティ投票で方針を決定し、v3.19で実装する予定だ。なお、ソーチェーンは2021年にも2度のハッキング被害を受けており、マネーロンダリングに利用された事例も含めると、セキュリティ面の課題が繰り返し指摘されてきた。
関連:イーサリアム財団「署名内容を見える化」──Bybit級ハッキング防止へ新規格
関連:DEXワサビ、ハッキング被害──約8.6億円流出、秘密鍵の漏洩が原因か
関連銘柄:
thorchain
※価格は執筆時点でのレート換算(1ドル=159円)



