2025年2月21日頃、UTC時間14時にBybit取引所がハッキングされ、15億ドル近くの損失が発生しました。これは、これまでの仮想通貨史上最大のセキュリティインシデントです。以前のセキュリティ侵害とは異なり、今回の盗難はスマートコントラクトの権限に関する問題によるものではなく、Bybitが使用していたSafeマルチシグウォレットの悪意のあるアップグレードによるものでした。攻撃者は複数のSafeウォレットオペレーターを欺き、ウォレットのアップグレードトランザクションに署名させ、それによってSafeウォレットの制御を成功裏に奪取しました。制御を奪取した後、攻撃者は資金を流出させました。
この攻撃はBybitを標的とした綿密に計画された作戦であったことが判明しており、攻撃者は最終的な襲撃を開始する2日前に、攻撃コントラクトをオンチェーンでデプロイし、テストしていました。本ブログ記事では、まずSafeウォレットの紹介から始め、攻撃プロセス全体を分析し、最後にセキュリティに関する推奨事項をいくつか提供します。
Safeマルチシグウォレットとは
Safeマルチシグウォレットは、複数のキーを使用してトランザクションを承認することがコア機能であるスマートコントラクトウォレットの一種です。このウォレットでは、送金やその他の操作を実行する前に、複数のユーザー(通常は事前に指定されたキーホルダー)がトランザクションに署名する必要があります。これにより、セキュリティが強化され、単一障害点や単一キーの侵害を防ぐことができます。
ウォレットが作成される際に、複数のキーが設定されます(通常、「n-of-m」モデルを使用)。これは、複数のキーホルダーのうち、トランザクションを実行するために特定の数の署名が必要であることを意味します。例えば、「3-of-5」マルチシグウォレットは、5人のキーホルダーのうち、少なくとも3人の署名が必要であることを意味します。
公式のSafeウェブサイトに依存せずにトランザクションを構築する方法はありますが、ユーザーエクスペリエンスの観点からは、ほとんどのユーザーがSafeウェブサイトを通じてトランザクションを構築し、署名することを選択します。通常、ユーザーはhttps://app.safe.globalにアクセスしてトランザクションを構築します。Safeウォレットを使用してトランザクションを構築および署名する際、ユーザーはまずトランザクションをシミュレートして、オンチェーンでの潜在的な結果を理解し、期待に沿っているかを確認します。結果が期待通りであれば、オペレーターは署名プロセスを完了します。
以下は、Safeウォレットのトランザクション構築インターフェイスのスクリーンショットです。Safeウェブサイトは現在一時的に利用できないため、以下のスクリーンショットはインターネットから提供されています(出典:https://milkroad.com/reviews/safe-wallet/)。

実際には、Safeウォレットを使用する際に、以下のセキュリティリスクが存在します。
-
長いセキュリティチェーン: ユーザーは、Safe公式ウェブサイト、アプリ、バックエンドサービス、さらに自身のコンピューターとブラウザ、そして最終的には署名に使用するウォレット(ブラウザ拡張機能またはハードウェアウォレット)を信頼する必要があります。これらのコンポーネントのいずれかが攻撃者によって侵害された場合、オペレーターは誤った情報を受け取る可能性があります(例:インターフェイスが通常の送金トランザクションを表示しているにもかかわらず、アップグレードトランザクションに署名している)。
-
ハードウェアウォレットでのトランザクション解析の欠如: ハードウェアウォレットは、一般的にSafeトランザクションを解析する能力を欠いています。これは、ユーザーがSafeインターフェイスによって誤解された場合、最終的な署名の際にクロスチェックする手段がなく、「ブラインド署名」として知られる状態につながることを意味します。
攻撃プロセス
最終攻撃を開始する前に、攻撃者はすでに攻撃コントラクトをオンチェーンでデプロイし、テストしていました。攻撃プロセス全体には、複数の異なるアドレスが関与していました。
ステップ1:資金の取得
攻撃者はまず、攻撃のための初期資金を取得する必要がありました。通常、攻撃者はミキシングプラットフォーム(例:Tornado Cash)を通じて資金を取得し、痕跡を隠します。しかし、今回のケースでは、攻撃者の資金はBinanceから来ていました。これは、攻撃者が身元を隠すための方法であると考えられます。ミキシングサービスからの資金とアドレスは通常、セキュリティ企業によって厳密に監視されていますが、取引所からの資金はそれほど厳密に監視されていません。さらに、資金は取引所から origin していましたが、取引所のアカウントがKYCを受けていなかったか、KYC情報が偽造されていた可能性があります。

ステップ2:コントラクトのデプロイとテスト
実際の攻撃を開始する前に、攻撃者は一連のテストを実施しました。これらのテストには、Safeウォレットのデプロイ、攻撃コントラクトのデプロイ、そして自身がデプロイしたSafeウォレットを使用してアップグレード操作を実行し、アップグレードされたSafeウォレットから資金を抽出することが含まれていました。さらに、テスト中、攻撃者は最終的にBybitで流出されたウォレット内の資産と一致する限定的な範囲の資産のみを実験しました。これは、攻撃者がBybitのSafeウォレットを specifically 標的としていたことを示しています。

攻撃者はテスト目的でSafeウォレットを作成しました。テスト用Safeウォレットのアドレスの1つは次のとおりです。
0x509b1eDa8e9FFed34287ccE11f6dE70BFf5fEF55

攻撃者はSafeコントラクトのアップグレードをテストしました。Phalcon Explorerで関連情報を以下のリンクから確認できます。

アップグレードのテスト後、攻撃者は引き出しプロセスのテストに進みました。アドレス:
0x509b1eda8e9ffed34287cce11f6de70bff5fef55
のアップグレードされたSafeコントラクトから、stEth資産を直接引き出しました。

ステップ3:ユーザーを欺いてアップグレードトランザクションの構築と署名をさせる
テスト完了後、攻撃者はユーザーを欺いてSafeコントラクトのアップグレードトランザクションを構築および署名させる必要がありました。テストは2日前に実施されたため、詐欺はテストの2日以内に行われた可能性が高いです。これがSafeサーバーへの攻撃によって達成されたのか、それともウォレットオペレーターのコンピューターへの攻撃によって達成されたのかは、まだ公には確認されていません。
ステップ4:攻撃の実行

十分な数の署名を取得した後、攻撃者はトランザクションをオンチェーンに提出し、コントラクトのアップグレードを成功裏に実行しました。アップグレード後、攻撃者は資金を引き出しました。悪意のあるアップグレードトランザクションは、以前のテストトランザクションと同一であることが判明しました。

学びと洞察
実際、昨年も同様の攻撃が2回発生しています。Radiantからの盗難やインドの取引所WazirX(2億ドル以上の損失)など、いずれもSafeウォレットを使用した悪意のあるトランザクションへの署名によって引き起こされました。今回のインシデントとの違いは、今回署名されたトランザクションがコントラクトのアップグレードトランザクションであったことです。したがって、これらのセキュリティインシデントから教訓を得て、将来の攻撃を防ぐことは、大量のデジタル資産を保有する取引所やプロジェクトチームが取り組むべき課題であり続けています。これは、日常業務、内部プロセス管理、機密性の高い操作のためのセキュリティプロトコル、および分散化設定を改善することによって達成され、攻撃されるリスクを軽減します。
第二に、トランザクション署名中にウォレットがセキュリティプロセスにどのように better に参加できるかという問題は未解決のままです。現在、特にハードウェアウォレットは、複雑なトランザクションを解析する能力を欠いていることが一般的です。さらに、ハードウェアウォレットはインターネットに直接接続しないため、ブラインド署名を回避するためにトランザクションシミュレーションを実行し(そして結果をユーザーに分かりやすく表示する)方法が課題として残っています。
さらに、BlockSec Phalconのようなセキュリティ監視プラットフォームを使用してSafeウォレットを監視し、異常な動作が迅速に検出・対処されるようにするなど、複数のセキュリティ対策を実装する必要があります。実際、PhalconはすでにSafeウォレットを監視する能力を持っており、将来的にはこのような監視が自動的に設定できるよう製品をアップグレードし続け、ユーザーがSafeを使用して大量の資産を管理する際のリスク回避を支援します。このインシデントはSafeウォレットの使用によって引き起こされましたが、「Safe」を恐れる必要はありません。これは依然としてマルチシグウォレットの事実上の標準であり、そのコントラクトセキュリティは長年にわたって証明されています。
最後に、セキュリティ対策は決して単一ポイントの突破口のための戦場ではなく、一度きりで永続する万能薬も存在しないことを強調する必要があります。運用およびビジネスのセキュリティを確保する一方で、業界関係者はBlockSec Phalconを最後の防衛線として使用して資産を保護することができます。



