#2 Bybitインシデント:Web2の脆弱性が史上最大の仮想通貨ハッキングを招く

#2 Bybitインシデント:Web2の脆弱性が史上最大の仮想通貨ハッキングを招く

2025年2月21日、Safe{Wallet}の開発者マシンがソーシャルエンジニアリングによって侵害され、攻撃者が約15億ドルの損失をBybitにもたらしました。攻撃者はSafe{Wallet}のAWS S3バケットに悪意のあるJavaScriptを注入し、特にBybitのトランザクションを標的にしました。注入されたコードは、署名プロセス中にトランザクションの内容を変更しました。Safe{Wallet}のUIには正当なトランザクションが表示されましたが、署名者のLedgerデバイスに送信された実際のペイロードは、BybitのSafeコントラクトを悪意のある実装にアップグレードし、攻撃者に完全な制御権を与えました。署名され実行されると、攻撃者はコントラクトからすべての資産を流出させました。詳細な技術的内訳は、以前のレポート[1, 2]で入手可能です。

背景

Safe{Wallet}(別名GnosisSafe)は、n-of-mモデルを使用するマルチシグウォレットインフラストラクチャです。トランザクションを実行するには、m人の署名者のうち少なくともn人の署名が必要です。

各Safeウォレットはプロキシコントラクトとしてデプロイされます。このインシデントの中心となる2つのストレージ変数は以下の通りです。

  • masterCopyスロット0):実装コントラクトのアドレス。このコントラクトには、署名検証やアップグレードメカニズムを含むすべての実行ロジックが含まれています。プロキシはdelegatecallを介してすべての呼び出しをmasterCopyに委任します。
  • thresholdスロット4):必要な最小署名数(n)。BybitのSafeでは、これは3でした。

プロキシはdelegatecallを使用するため、masterCopyで呼び出されるどの関数もプロキシのストレージコンテキストで実行されます。これは、delegatecallのターゲットがスロット0のmasterCopyを直接上書きでき、単一のトランザクションで全体の実装を置き換えることができることを意味します。

脆弱性分析

攻撃経路はシステムの3つのレイヤーを通過し、それぞれが攻撃者が悪用した構造的な条件を提示しました。

フロントエンド提供モデル。 Safe{Wallet}のフロントエンドJavaScriptはAWS S3バケットから提供されていました。このアーキテクチャでは、バケットへの書き込みアクセス権を持つ人なら誰でも、署名者用のトランザクションを構築するコードを変更できます。サブオリジン整合性(SRI)ハッシュやコード署名などの整合性検証メカニズムは、このリスクを軽減できますが、ほとんどのdAppフロントエンドではまだ標準的なプラクティスではありません。攻撃者は侵害された開発者マシンのアクセス権を取得し、提供されたJavaScriptを静かに変更しました。

UI表示と署名ペイロードの間のギャップ。 注入されたJavaScriptは、Safe{Wallet} UIに正規のトランザクションのように見せかけて表示しましたが、Ledgerハードウェアウォレットには別のペイロードを送信しました。Ledger画面に表示されるトランザクションの詳細とUIは異なっていましたが、ハードウェアウォレット画面で生のトランザクションデータを解釈することは、特に複雑なマルチシグ操作の場合、簡単ではありません。このギャップにより、攻撃者は悪意のあるペイロードに対して3つの有効な署名を取得することができました。

プロキシアップグレードモデル。 背景で説明したように、delegatecallはプロキシのストレージコンテキストでターゲットのコードを実行します。Safeプロキシアーキテクチャは、スロット0の単一のmasterCopyポインターを介してすべての呼び出しをルーティングします。このポインターを上書きすると、プロキシは単一のトランザクションで、署名検証ロジックやアップグレードメカニズムを含む、まったく異なる実装にリダイレクトされます。n-of-mモデルはトランザクションを開始できるユーザーを管理しますが、トランザクションが承認され実行されると、実装自体を変更できます。新しい実装が署名検証を削除すると、それ以降のすべてのトランザクションでマルチシグ保護が実質的に失われます。

攻撃分析

攻撃は、悪意のあるコードの注入実装の置き換え資産の盗難の3つのステップで進行しました。

ステップ1:悪意のあるコードの注入

攻撃者はSafe{Wallet}の開発者マシンを侵害し、フロントエンドを提供するAWS S3バケットに悪意のあるJavaScriptを注入しました。注入されたコードは、BybitのSafeアドレスからのトランザクションを特に標的としました。BybitのCEOであるBen Zhou[2]によると、Safe{Wallet}のUIには正規のトランザクションが表示されましたが、署名者のLedgerデバイスには別のペイロードが送信されました。署名者はUIに表示されたとおりにトランザクションを承認し、攻撃者は悪意のあるペイロードに対して3つの有効な署名を取得しました。

ステップ2:実装の置き換え

攻撃者は、収集した3つの署名とともに悪意のあるトランザクションを送信しました。SafeプロキシはexecTransaction()masterCopyに委任し、execTransaction()は署名を検証してからトランザクションペイロードを実行しました。これは攻撃者のコントラクト(0x962214...5c7242)へのdelegatecallでした。このdelegatecallはプロキシのストレージコンテキストで実行されるため、攻撃者のtransfer()関数はスロット0のmasterCopyの値を悪意のある実装アドレス(0xbDd077...9516)で上書きしました。この時点から、Safeコントラクトへのすべての呼び出しは攻撃者のコードに委任されるようになりました。

ステップ3:資産の盗難

masterCopyが悪意のある実装を指すようになり、マルチシグ要件はもはや適用されなくなりました。攻撃者はSafeコントラクトで直接SweepERC20()SweepETH()を呼び出しました。これらの関数は、攻撃者の実装コントラクトで定義されており、署名検証なしにすべての保有資産を転送しました。5回のドレイントランザクションが実行され、合計約15億ドルの損失が発生しました。

関連コントラクトとトランザクション

タイプ 説明 アドレス / ハッシュ
コントラクト BybitのSafeコントラクト 0x1Db92e2EeBC8E0c075a02BeA49a2935BcD2dFCF4
コントラクト 元のmasterCopyコントラクト 0x34CfAC646f301356fAa8B21e94227e3583Fe3F5F
コントラクト 悪意のあるmasterCopyコントラクト 0xbDd077f651EBe7f7b3cE16fe5F2b025BE2969516
コントラクト 攻撃者のコントラクト(transfer() 0x96221423681A6d52E184D440a8eFCEbB105C7242
トランザクション masterCopyコントラクトを置き換えたTx 0x46deef0f52e3a983b67abf4714448a41dd7ffd6d32d32da69d62081c68ad7882
トランザクション 15,000 cmETHをドレインしたTx 0x847b8403e8a4816a4de1e63db321705cdb6f998fb01ab58f653b863fda988647
トランザクション 90,375 stETHをドレインしたTx 0xa284a1bc4c7e0379c924c73fcea1067068635507254b03ebbbd3f4e222c1fae0
トランザクション 8,000 mETHをドレインしたTx 0xbcf316f5835362b7f1586215173cc8b294f5499c60c029a3de6318bf25ca7b20
トランザクション 401,346 ETHをドレインしたTx 0xb61413c495fdad6114a7aa863a00b2e3c28945979a10885b12b30316ea9f072c
トランザクション 90 USDTをドレインしたTx 0x25800d105db4f21908d646a7a3db849343737c5fba0bc5701f782bf0e75217c9

まとめ

このインシデントは、オフチェーンインフラストラクチャの侵害が、いかに壊滅的なオンチェーン損失につながる可能性があるかを示しました。攻撃者はWeb2の侵害、フロントエンドの改ざん、プロキシアップグレードを単一の攻撃経路に結合させ、オンチェーンの脆弱性を一切悪用することなくマルチシグ保護を回避しました。

重要な教訓:

  • フロントエンドの整合性は、オンチェーンセキュリティと同等の注意に値します。 攻撃チェーンはフロントエンド提供レイヤーで始まりました。dAppが高額なトランザクションを仲介するにつれて、整合性検証(SRI、コード署名、再現可能なビルド)によるフロントエンドコードの保護と、不正な変更の監視は、基本的な要件となります。
  • ハードウェアウォレットの検証は、実際には依然として困難です。 ハードウェアウォレットは実際の署名ペイロードを表示できますが、小さな画面で複雑なマルチシグトランザクションデータを解釈することは、既知のユーザビリティの課題です。オンデバイスでのトランザクション概要の可読性を向上させることは、ウォレットエコシステムにとって未解決の問題です。
  • プロキシアップグレードメカニズムは、高レバレッジのターゲットです。 Safeプロキシアーキテクチャは、単一のアップグレード可能なポインターを介してすべてのロジックをルーティングします。1ステップでの実装置き換えを許可するメカニズムは、リスクを集中させます。タイムロック、二次確認ステップ、またはアップグレードの独立したガーディアンを追加することで、単一の侵害されたトランザクションの影響を軽減できます。

参考文献

  1. BlockSec: Bybit $1.5B Hack In-Depth Analysis

  2. Bybit CEO Ben Zhou X Broadcast


BlockSecについて

BlockSecは、フルスタックのブロックチェーンセキュリティおよび暗号コンプライアンスプロバイダーです。私たちは、顧客がコード監査(スマートコントラクト、ブロックチェーン、ウォレットを含む)、リアルタイムでの攻撃傍受、インシデント分析、不正資金追跡、およびAML/CFT義務の履行を、プロトコルとプラットフォームのライフサイクル全体で支援する製品とサービスを構築しています。

BlockSecは、著名なカンファレンスで複数のブロックチェーンセキュリティ論文を発表し、DeFiアプリケーションの複数のゼロデイ攻撃を報告し、多数のハッキングを阻止して2,000万ドル以上を救済し、数十億ドルの暗号通貨を確保しました。

Sign up for the latest updates
#1 Cetus Incident: One Unchecked Shift Drains $223M in the Largest DeFi Hack of 2025

#1 Cetus Incident: One Unchecked Shift Drains $223M in the Largest DeFi Hack of 2025

Cetus Protocol, the largest concentrated-liquidity DEX on Sui, was exploited on May 22, 2025, resulting in an estimated ~$223M loss across multiple liquidity pools. The attacker leveraged a flaw in checked_shlw(), a custom overflow-prevention helper used in fixed-point u256 math, where an incorrect constant and comparison failed to block unsafe left shifts and caused silent truncation of high bits during liquidity delta calculations. By crafting specific liquidity and tick/price-range parameters, the exploit made required deposits appear near-zero while minting an oversized liquidity position, which was later withdrawn to drain real pool reserves.

#2 Bybit Incident: A Web2 Breach Enables the Largest Crypto Hack in History

#2 Bybit Incident: A Web2 Breach Enables the Largest Crypto Hack in History

The largest crypto hack ever, the February 21, 2025 Bybit breach stole about $1.5B after attackers used social engineering to compromise a Safe{Wallet} workflow, injected malicious JavaScript into an AWS S3 bucket, tampered with the transaction signing process, and upgraded Bybit’s Safe{Wallet} contract to a malicious implementation that drained funds across multiple chains.

Weekly Web3 Security Incident Roundup | Jan 25 – Feb 1, 2026

Weekly Web3 Security Incident Roundup | Jan 25 – Feb 1, 2026

During the week of January 25 to February 1, 2026, six blockchain security incidents were reported with total losses of ~$18.05M. These involved improper input validation, token design flaws, key compromises, and business logic errors across DeFi protocols on multiple chains. The primary causes included unchecked user inputs enabling arbitrary calls, flawed burn mechanisms allowing price manipulation, compromised developer tools, and missing solvency checks in lending functions.