バイビット強奪:北朝鮮が47分で15億を盗んだ手口
2025年2月21日。協定世界時午後12時30分。
Bybitのオペレーションセンター内では、ドバイに本社を置き、日々の取引量が数百億ドルに上る暗号通貨取引所であるBybitで、予定されていた送金が開始される。
40万1347のEthereumトークン。その時点でおよそ15億ドル。この送金はルーティンであり、セキュリティのためにオフラインで保管されているBybitのマルチシグ冷ウォレットから、運用の流動性のために使われるホットウォレットへのものだ。
3人のBybitの幹部従業員がこの取引を承認する必要がある。彼らは各自のワークステーションでSafe{Wallet}インターフェースを開く。送金先アドレスを確認する。取引の詳細を確認する。すべてが予定された操作と一致している。
彼らは署名する。
1分後、40万1000のEthereumトークンが消え去った。
ホットウォレットには送金されなかった。北朝鮮が管理するアドレスに送金されたのだ。
パスワードは盗まれていない。秘密鍵は抜き取られていない。認証情報もフィッシングされていない。Bybit自身のインフラも侵害されていない。3人の署名者は、手順書通りに正確に行動した。彼らは画面に表示された内容を承認したのだ。
彼らが画面に見たものは、嘘だった。
これは史上最大の単一の暗号通貨窃盗事件である。ギネス世界記録の分類によれば、これは史上最大の銀行強盗であり、2003年にサダム・フセインがイラク中央銀行から引き出した10億ドルさえも上回る。
それはウェブサイト上の単一のファイルを変更することによって実行された。
この攻撃はBybitを直接標的としたものではない。
Bybitのインフラ(サーバー、従業員のワークステーション、署名ハードウェア、内部ネットワーク)は一切侵入されていなかった。独立企業であるSygniaとVerichainsが実施したその後のすべてのフォレンジック調査でも、同じ結果が確認された。Bybitはハッキングされていなかったのだ。
ハッキングされた企業はSafe、旧Gnosis Safeであり、Ethereumエコシステムで最も広く使われているマルチシグウォレットプラットフォームだ。Safeはapp.safe.globalでウェブインターフェースを維持しており、ほとんどの機関投資家のEthereum保有者はこれを通じて大規模な取引の多者承認を管理している。
Safeのエンジニアリングチームは約30名からなる。その中で、少数のシステム管理者が本番環境のコードベースとデプロイされたウェブインターフェースを変更する権限を持っている。
2月21日の約30日前、それらのシステム管理者の1人が標的となる。
この攻撃経路は、Federal Bureau of InvestigationがTraderTraitorとして内部的に追跡している北朝鮮の部隊の戦術と一致している。この部隊は、北朝鮮偵察総局のThird Bureauから活動する、より広範なLazarus Groupの下位組織である。
具体的な手法はSafeや捜査当局からは公表されていない。最も可能性が高いのは、LinkedInの連絡先、開発者フォーラム、または技術協力の口実を経由した、高度に標的を絞ったソーシャルエンジニアリングの手法だ。管理者は正当な技術的成果物に見えるものをダウンロードする。その成果物にはマルウェアが含まれていた。
マルウェアはAWSセッショントークンを盗む。これは長期間有効な認証情報ではなく、SafeのウェブインターフェースがホストされているAmazon Web Servicesにアクセスするために、Safeの開発者が通常の業務中に使用する一時的な認証トークンである。
これらのトークンを使って、攻撃者はSafeのAWSアカウントへのアクセス権を得る。
彼らはデータを抜き取らない。ランサムウェアをデプロイしない。インフラ内での横移動も試みない。
彼らは1つのJavaScriptファイルを変更する。
SafeのAmazon S3ストレージバケットから配信されるファイルは、Bybitの署名者のブラウザで取引承認インターフェースをレンダリングするフロントエンドのJavaScriptである。
変更されたバージョンには、後にフォレンジック調査官が条件付き悪性ロジックと表現するものが含まれている。
Safeの大多数のユーザー(一般保有者、他の取引所、分散型金融プロジェクト)にとっては、変更されたJavaScriptは正規のバージョンと全く同じように動作する。インターフェースは正常に表示される。取引は期待通りに処理される。何も問題があるようには見えない。
悪意のあるコードは、特定の条件が満たされた場合にのみ実行される。
これらの条件はBybitのために正確に設計されている。
コードはチェックする:このセッションは3つの特定ウォレットアドレスのいずれかに対して認証されているか?提案されている取引はBybitのEthereum冷ウォレットからの送金か?両方の条件が真であれば、続行する。
両方の条件が真であれば、悪意のあるJavaScriptは署名者に表示される直前の取引データを傍受する。そして、取引ロジックを差し替える。署名者が画面で見るもの(送金先アドレス、金額、操作タイプ)は、正規の意図された送金と視覚的には全く同じままである。
彼らが実際に署名しているのは、北朝鮮によって管理されるコントラクトへの`delegatecall`である。
Ethereumにおいて、`delegatecall`は、あるスマートコントラクトが別のスマートコントラクトのコンテキストでコードを実行することを可能にするプリミティブであり、呼び出し元のストレージと資金に完全にアクセスできる。署名者が`delegatecall`を含む取引を承認するとき、彼らは単に資金を送金しているわけではない。彼らは呼び出されたコントラクトに、呼び出し元のウォレットに対する完全な制御権を与えているのだ。
彼らがルーティン送金だと信じて承認することで、3人のBybit署名者は、北朝鮮が管理するコントラクトに、彼らの冷ウォレットの完全な所有権を与えてしまったのだ。
攻撃者はその後、それを吸い上げる。
40万1347のEthereumトークン。15億ドル。
3人の署名者全員がアカウントで多要素認証を有効にしていた。3人全員がアクティブなハードウェアセキュリティキーを持っていた。しかし、それらは全く意味をなさなかった。欺瞞は認証の上位層で発生したのだ。つまり、署名者自身の目で、承認を求められている内容を解釈する層でだ。
取引がEthereumメインネットに着地してから2分後、Safeのウェブサイト上の悪意のあるJavaScriptは削除された。
変更されたファイルは正規のバージョンに置き換えられた。その後のapp.safe.globalへの訪問者はすべてクリーンなコードを受け取る。ライブ環境からは証拠が消え去ったのだ。
しかし、ファイルが配信されたのはSafeのインフラだけではなかった。Internet Archiveが維持するウェブの公開アーカイブであるWayback Machineのアーカイブが、悪意のあるバージョンがアクティブにデプロイされていた期間にそれを捕捉していたのだ。捜査官が攻撃を再構築する際、アーカイブされたファイルが中心的なフォレンジック証拠となる。攻撃者たちは、公開ウェブアーカイブが彼らのエクスプロイトのコピーを密かに作成しているとは予想していなかった。
Bybitの検知システムは数分以内に異常を検知する。CEOのBen Zhouは数時間以内に窃盗を公に認める。ブロックチェーン分析企業は盗まれたEthereumをリアルタイムで追跡し始める。
資金洗浄作戦はすでに始まっていた。
北朝鮮の暗号通貨洗浄の手法は成熟している。
窃盗発生から最初の48時間以内に、ブロックチェーン分析家は、約1億6000万ドル相当のEthereumが、分散型取引所とクロスチェーンブリッジを通じて首尾よく洗浄されたと推定している。資産は変換され、断片化され、プライバシープロトコルを通じて混合され、何千ものブロックチェーンアドレスに再構成された。
優先される変換先はBitcoinである。
Bitcoinのトランザクションモデルは、物理的な現金に例えられる、すべての取引を離散的な単位として扱う構造であるUnspent Transaction Outputs(UTXO)を使用する。Bitcoinを通じて特定のドル価値を追跡するには、個々のUTXOを多数のアドレスにわたって追う必要があり、Ethereumアカウントを追跡するよりも指数関数的に複雑なフォレンジック作業となる。
北朝鮮の資金洗浄部隊は、FBIによってTraderTraitorと指定されており、盗まれたEthereumのほとんどを最初の1週間以内にBitcoinに変換する。
FBIは、攻撃から5日後の2025年2月26日に、窃盗が北朝鮮によるものであると正式に断定する公共サービス告知を発行した。同局は、資金洗浄インフラの一部として特定された51のEthereumアドレスを公開する。そして、取引所、分散型金融プラットフォーム、ブロックチェーンインテリジェンス企業に対し、これらのアドレスから派生する取引をブロックするよう求めた。
国家主導のサイバー攻撃調査の基準からすれば、この特定は迅速である。それはパターンマッチングによって可能になった。
Bybitから盗まれた資金を移動するために使用されたアドレスは、特定の時点で、過去の暗号通貨窃盗事件(2024年のPhemex窃盗、2024年のBingX窃盗、2023年のPoloniex窃盗)で使用されたアドレスと重複している。ブロックチェーンインテリジェンス企業のEllipticとTRM Labsは、独立捜査官ZachXBTと共に、数日以内にその重複を確立した。
同じ運営者が、繰り返される強盗事件で同じ資金洗浄インフラを運用している。このインフラこそが彼らの署名なのだ。
規模の背景。
複数のブロックチェーンインテリジェンス企業によると、Lazarus Groupとその下位組織は、複数年にわたり、推定34億ドルから60億ドル以上の暗号通貨を盗んできた。2024年だけでも、北朝鮮関連の窃盗は20億ドルを超えた。
Bybitの15億ドルは、単一の作戦で奪われたものであり、次に大きい単一の強盗事件、日本のDMM Bitcoin取引所から2024年に盗まれた3億800万ドルを5倍も上回る。
資金は資金洗浄ネットワークを通じて、Democratic People's Republic of Korea政府が管理する口座に流入する。Treasury Departmentの指定により、これらの口座が弾道ミサイル開発や核プログラムを含む北朝鮮の兵器プログラムに資金を提供していることが繰り返し確認されている。
Bybitはといえば、存続している。会社は支払い能力がある。窃盗から数時間以内に、CEOのBen Zhouはブリッジローンと他の機関投資家からの戦略的な資金流入を手配し、準備金を補充した。顧客資金は保護されたままである。預け入れた資産を失ったユーザーはいなかった。
この取引所は回復報奨金プログラムを開始し、回収された資金の最大10パーセントを、その追跡または押収に協力した者に提供している。
盗まれたEthereumの大部分はまだ回収されていない。
この事件ファイルで未解決の要素は、構造的なものだ。
Bybitは、暗号通貨のカストディのベストプラクティスの基準から見て、何も間違ったことをしていなかった。準備金にコールドストレージを使用し、送金にマルチシグ承認を使用し、評判の良い第三者インターフェースプロバイダーを使用し、署名者にはハードウェアセキュリティキーを使用した。業界が推奨するすべての防御的コントロールをBybitは実装していた。
攻撃は、Bybitの制御外の層を侵害することによって、これらすべてを迂回した。
インターフェースプロバイダーであるSafeは、何千もの機関投資家クライアントにサービスを提供している。それらのクライアントのいずれもが標的になり得た。Bybitが選ばれたのは、攻撃者が初期の偵察を通じて、その冷ウォレットアドレスと取引パターンを事前に特定していたからだ。条件付きJavaScriptは、これらの特定のデータポイントを中心に設計されていた。
根本的なアーキテクチャの脆弱性は、特定のものではなく、一般的なものだ。
暗号通貨取引の署名に使用されるあらゆるウェブインターフェースは、定義上、表示操作の潜在的なポイントである。インターフェースが(そのホスティングインフラ、コンテンツデリバリーネットワーク、ソースコードリポジトリ、またはデプロイメントパイプラインの侵害を通じて)巧妙に改変され得る場合、ほとんどの実装において、署名者は自分が実際に何を署名しているのかを独立して検証することはできない。
独立した取引表示機能を備えたハードウェアウォレットは、部分的な緩和策である。しかし、多くのハードウェアウォレットは、`delegatecall`のような複雑な取引構造を人間が読める形式でデコードしない。それらは生ハッシュを表示する。64文字の16進数文字列を凝視しているユーザーは、目視でその意味を確認することはできない。
ユーザーはインターフェースを信頼しなければならない。
北朝鮮は、2025年2月21日、その信頼の代償を示したのだ。
Fragment Zeroはこの事件ファイルを追跡する。
盗まれた資金は、グローバルなブロックチェーン上で断片化され続けている。一部はタグ付けされ制裁されたアドレスに静止したままだ。一部は動き続けている。FBIが特定した51のアドレスは、複数のチェーンにわたって数百に増加している。
マシンが侵害されたSafeの開発者は、公には名前が公表されていない。彼に到達するために使用された具体的なソーシャルエンジニアリングの手法も公には詳細が明らかにされていない。
Lazarus Groupは活動を続けている。Bybitの窃盗事件の数ヶ月後には、数千万ドル規模の、より小規模ながらも依然として相当な窃盗が、同じインフラによるものとされている。
より深い疑問は、暗号通貨が盗まれ得るか否かではない。
より深い疑問は、今やどれだけの金融インフラが、数十億ドルもの資産とそれを承認する人間の間に位置する、少数のオープンソースインターフェースプロジェクト(小規模なチームによって維持され、ライブデプロイメントパイプラインを通じて更新され、ウェブブラウザを通じて利用される)に依存しているか、ということである。
このケースでは、史上最大の窃盗を防ぐことができた可能性のある人物は1人だった。そして彼は、何かをクリックしてしまったのだ。