イベント概要
2025年2月21日午後2時16分11秒(UTC)、Bybitのイーサリアムコールドウォレット(0x1db92e2eebc8e0c075a02bea49a2935bcd2dfcf4[1])が悪意のある契約アップグレードにより盗まれました。 BybitのCEOであるベン・ゾウ氏[2]の声明によると、攻撃者はフィッシング攻撃を使用してコールドウォレットの署名者を騙し、誤って悪意のあるトランザクションに署名させたとのことです。彼は、取引が正当な操作を装っていたと述べました。Safe{Wallet} インターフェースには通常の取引が表示されていましたが、実際に Ledger デバイスに送信されたデータは悪意のあるコンテンツで改ざんされていました。攻撃者は3つの有効な署名を取得し、Safeマルチ署名ウォレットの実装契約を悪意のある契約に置き換えて資金を盗みました。この脆弱性により約14億6,000万ドルの損失が発生し、Web3.0史上最大のセキュリティインシデントとなりました。
攻撃取引記録
安全なウォレット実装契約を悪意のある契約にアップグレードします。
https://etherscan.io/tx/0x46deef0f52e3a983b67abf4714448a41dd7ffd6d32d32da69d62081c68ad7882
Bybit コールドウォレットから資金を送金するための複数のトランザクション:
401,346 ETH[ 3 ]
15,000 cmETH[4]
8,000ミリETH[5]
90,375 stETH[ 6 ]
90 USDT[ 7 ]
メインアドレス
Bybitマルチシグネチャコールドウォレット(被害者)[8]
攻撃者の最初の攻撃活動アドレス[9]
悪意のある契約の実施[10]
安全な「委任呼び出し」プロセスで使用される攻撃契約[11]
攻撃プロセス
1. 攻撃者は、攻撃の 3 日前 (2025 年 2 月 18 日、UTC 時間) に 2 つの悪意のある契約を展開しました。
これらの契約には資金を送金するためのバックドア機能が含まれています。[12]
契約のアップグレードを可能にするためにストレージスロットを変更するコード[13]
2. 2025年2月21日、攻撃者は3つのマルチシグウォレットの所有者(署名者)を騙して悪意のあるトランザクションに署名させ、Safe実装契約をバックドアを含む以前に展開された悪意のある契約にアップグレードしました[14]:https://etherscan.io/tx/0x46deef0f52e3a983b67abf4714448a41dd7ffd6d32d32da69d62081c68ad7882
3. 攻撃トランザクションの「operation」フィールドの値は「1」で、GnosisSafe コントラクトに「delegatecall」を実行するように指示し、「0」は「Call」を示します。
4. トランザクションは、攻撃者がデプロイした別のコントラクト(0x96221423681a6d52e184d440a8efcebb105c7242[15])へのデリゲート呼び出しを実行しました。このデリゲート呼び出しには、呼び出されるとコントラクトの最初のストレージスロット「uint 256 _transfer」を変更する「transfer()」関数が含まれていました。
GnosisSafe コントラクトでは、最初のストレージ スロットに「masterCopy」アドレスが含まれています。これは、GnosisSafe コントラクトの実装コントラクト アドレスです。
攻撃者は、Gnosis Safe コントラクトの最初のストレージ スロットを変更することで、実装コントラクト アドレス (つまり、「masterCopy」アドレス) を変更することができました。
トランザクションの詳細から、攻撃者が「masterCopy」アドレスを 0x bDd 077 f 651 EBe 7 f 7 b3 cE 16 fe 5 F 2b 025 BE 2969516 に設定していることがわかります。これには、以下で説明する「sweepETH()」および「sweepERC 20()」関数が含まれています。
5. 攻撃者が使用する契約アップグレード方法は従来とは異なるものであり、攻撃意図の検出を回避するために特別に設計されています。 Bybit 署名者の観点から見ると、署名されたデータは、疑惑を呼ぶ可能性のある「アップグレード」関数ではなく、単純な「transfer(address, uint 256)」関数呼び出しのように見えます。
6. アップグレードされた悪意のある実装コントラクト[16]には、バックドア関数「sweepETH()」と「sweepERC 20()」が含まれていました。これらの関数を呼び出すことで、攻撃者はコールドウォレット内のすべての資産を転送し、最終的に14億ドル相当のETHを盗みました。
脆弱性分析
この侵害の根本的な原因は、フィッシング攻撃が成功したことでした。攻撃者はウォレット署名者を騙して悪意のあるトランザクションデータに署名させ、最終的には契約の悪意のあるアップグレードにつながります。このアップグレードにより、攻撃者はコールドウォレットを制御し、その資金をすべて転送できるようになりました。現時点では、フィッシング攻撃の具体的な計画や実行方法はまだ不明です。
脆弱性発生から2時間後、Bybit CEOのベン・ジョウ氏がXプラットフォームでのライブ放送で説明したところによると、インシデント発生当時、Bybitチームはコールドウォレットからホットウォレットへの通常の資産移転プロセスを実行しており、同氏はSafeマルチ署名トランザクションの最後の署名者だったという。彼は、取引が偽装されていたことを明確に指摘しました。Safe{Wallet} インターフェース上のすべての署名者が見たアドレスと取引データは正しい内容として表示され、URL は Safe{Wallet} によって正式に検証されていました。しかし、取引データが署名のためにLedgerハードウェアウォレットに送信されたとき、実際の内容は改ざんされていました。 Ben Zhou氏はまた、Ledgerデバイスのインターフェースで取引の詳細を再確認しなかったとも述べています。攻撃者が Safe{Wallet} インターフェースをどのように改ざんできたかはまだ不明です。 Arkham[17]が公開した情報によると、オンチェーンアナリストの@zachxbtは、攻撃がLAZARUSハッカーグループによって計画され実行されたことを示す確固たる証拠を提出した。
学んだ教訓
この事件は、2024年10月16日に発生したRadiant Capitalの侵害事件(文献1[18]、文献2[19])を彷彿とさせ、約5,000万ドルの盗難につながった。当時、攻撃者は開発者のデバイスに侵入し、Safe{Wallet} フロントエンド インターフェースを改ざんして正当な取引データを表示するようにしていましたが、実際にハードウェア ウォレットに送信されたデータは悪意のあるコンテンツでした。この種の改ざんは、手動インターフェースレビューや Tenderly シミュレーション テストでは検出されませんでした。攻撃者は当初、信頼できる元請負業者を装い、マルウェア(macOSに永続的なバックドアを確立する)を含む圧縮PDFファイルをTelegramメッセージ経由で標的に送信することで、デバイスへのアクセスを獲得した。
Bybit 事件におけるインターフェース改ざんの根本的な原因は確認されていないものの、デバイスの侵害が重要な要因である可能性があります (Radiant Capital 事件と同様)。どちらの事件でも、攻撃が成功するための 2 つの主要な前提条件、つまりデバイスの侵害とブラインド署名が明らかになりました。このような攻撃の頻度が増加していることを考えると、次の 2 つの攻撃方法と緩和戦略の分析に重点を置く必要があります。
1. デバイスがハッキングされる:
ソーシャル エンジニアリングを通じてマルウェアを拡散し、被害者のデバイスに侵入することは、Web3.0 分野における大規模攻撃の主な手段であり続けています。この手法は、LAZARUS GROUP などの国家レベルのハッカー グループが初期防御を突破するためによく使用されます。デバイスの侵害により、セキュリティ制御が事実上回避される可能性があります。
緩和戦略:
デバイスのセキュリティを強化する:厳格なエンドポイント セキュリティ ポリシーを策定し、CrowdStrike などの EDR ソリューションを導入します。
専用署名デバイス: 分離された環境で専用デバイスを使用してトランザクション署名を実行し、多目的デバイスが公開されるリスクを回避します。
一時的なオペレーティング システム:重要な操作 (マルチ署名トランザクションなど) 用に非永続的なオペレーティング システム (一時的な仮想マシンなど) を構成して、クリーンなオペレーティング環境を確保します。
フィッシング シミュレーション演習:セキュリティ意識を高めるために、高リスクの役割 (暗号資産オペレーターやマルチ署名署名者など) に対してフィッシング攻撃シミュレーションを定期的に実施します。
レッド チーム攻撃および防御訓練:攻撃者の戦術をシミュレートして、既存のセキュリティ制御の有効性を評価し、それに応じて強化します。
2. ブラインド署名の脆弱性:
ブラインド署名とは、ユーザーがトランザクションの詳細を完全に検証せずにトランザクションに署名することを意味し、その結果、悪意のあるトランザクションが誤って承認されることになります。このような安全でない操作は DeFi ユーザーの間では一般的であり、大量の資産を管理する Web3.0 機関にとって特に危険です。ハードウェアウォレットLedgerは最近この問題について議論しました(参考文献1 [ 20 ]、参考文献2 [ 21 ])。 Bybit 事件では、悪意のあるインターフェースがトランザクションの真の意図を隠し、改ざんされたデータが Ledger デバイスに送信され、署名者がデバイス側で詳細を検証しなかったため、最終的に脆弱性が発生しました。
緩和戦略:
検証されていない Dapps を避ける:信頼できるプラットフォームのみとやり取りし、ブックマークを通じて公式プラットフォームにアクセスし、フィッシング リンクを避けます。
ハードウェア ウォレットの 2 回目の検証: Ledger またはその他のデバイスの画面でトランザクションの詳細 (受信アドレス、金額、関数呼び出し) を項目ごとに確認し、期待どおりであることを確認します。
トランザクションのシミュレーション:署名する前に、トランザクションをシミュレートしてその結果を観察し、その正確性を確認します。
非ビジュアル インターフェースを使用する:サードパーティのグラフィカル インターフェースへの依存を減らすには、コマンド ライン ツール (CLI) を選択します。CLI は UI 操作のリスクを軽減し、トランザクション データのより透過的なビューを提供します。
異常終了:トランザクションのいずれかの部分に異常がある場合、署名プロセスは直ちに終了され、調査が開始されます。
デュアルデバイス検証メカニズム:署名する前に、別のデバイスを使用してトランザクション データを個別に検証します。デバイスは、ハードウェア ウォレットに表示されるデータと一致する、読み取り可能な署名付き検証コードを生成する必要があります。
Radiant CapitalとWazirX 2の数千万ドルの損失[22]に続き、BybitはWeb3.0史上最大の盗難の被害者となった。こうした攻撃の頻度と複雑さはますます増大しており、業界の運用セキュリティにおける重大な欠陥が露呈しています。攻撃者は、価値の高いターゲットを組織的に狙っています。攻撃者の能力が増すにつれて、集中型取引所 (CEX) と Web3.0 機関は、セキュリティ保護レベルを総合的に向上させ、外部の脅威の反復的な進化に警戒する必要があります。