ゼロアワーテクノロジー || Bybit攻撃の分析

Bybit取引所に関連する重大なセキュリティインシデントを検出しました。401,346 ETH、8,000 mETH、90,375 stETH、15,000 cmETH、約15億米ドル相当が送金され、合計15億米ドルの損失が発生しました。

背景

2025年2月21日の夕方、 Bybit取引所に関連する重大なセキュリティインシデントを検出しました。その夜 02:16 UTC に、Bybit Cold Wallet (https://etherscan.io/tx/0xb61413c495fdad6114a7aa863a00b2e3c28945979a10885b12b30316ea9f072c ) によって開始された大規模な送金が検出されました。

401,346 ETH、8,000 mETH、90,375 stETH、15,000 cmETHが送金され、その価値は約15億米ドルに上ります。複数回の確認の結果、これはBybitに対する攻撃であると判明しました。

背景

Exchangeウォレットのアーキテクチャ

通常、取引所が直接インターネットにアクセスできるウォレットはホットウォレットと呼ばれます。頻繁な送金が必要なため、ホットウォレットの秘密鍵は通常オンラインにあり、ホットウォレット内の資金は一般的に少額で、取引所の毎日の売上高を満たすだけで済みます。取引所のコールドウォレットには通常、取引所の資金の大部分が保管されており、取引所の法人アカウントに相当します。コールドウォレットは、ホットウォレットの資金を補充するなど、特別な条件下でのみ使用されます。したがって、コールドウォレットは通常、インターネットに直接アクセスしないオフラインウォレットであり、ほとんどの取引所で使用されているコールドウォレットはマルチサインウォレットです。今回のBybitのコールドウォレットも例外ではなく、Safeのマルチシグネチャウォレットを採用しています。

代理店契約

ブロックチェーン上に展開されたスマートコントラクトは変更できませんが、ビジネスの変更によって問題が発生することが多いため、プロキシコントラクトという設計メカニズムが登場しました。プロキシ コントラクトは、スマート コントラクトのビジネス ロジックとストレージ データを分離できる設計パターンです。そのコアメカニズムは、ユーザーのトランザクション要求をロジック コントラクトに転送して実行するための中間層として「プロキシ コントラクト」を使用することですが、最終状態 (データと資産) はプロキシ コントラクトに保存されます。通常、プロキシ契約は、透過プロキシ、UUPS、ビーコンなどに分類されます。最も一般的なものは、透過プロキシと UUPS です。すべてのプロキシ コントラクトでは、ロジック コントラクトである実装を設定する必要があります。

攻撃とインシデントの分析

詳細な分析の結果、攻撃者の攻撃は 3 つの段階に分かれていることが判明しました。

フェーズ1

攻撃者は、2025-02-18 03:29:11 UTC に攻撃契約 0x96221423681A6d52E184D440a8eFCEbB105C7242 をデプロイしました。契約をデプロイするためのトランザクションは、https://etherscan.io/tx/0x84cd9d6cb84df9df4be638899f4a56053ed98042febd489ef3d51a3ed3652d40 です。後でこれを攻撃契約 7242 と呼ぶことにします。

その後、攻撃者は別の攻撃契約 0xbDd077f651EBe7f7b3cE16fe5F2b025BE2969516 を 2025-02-18 06:00:35 UTC にデプロイしました。契約をデプロイするためのトランザクションは https://etherscan.io/tx/0xc47ac9038127cef763a1c9a33309a645c5a4fa9df1b4858634ae596ccc2aee5e でした。後でこれを攻撃契約 9516 と呼ぶことにします。

フェーズ2

攻撃者は、Bybit の 3 つのマルチ署名ウォレットに、https://etherscan.io/tx/0x46deef0f52e3a983b67abf4714448a41dd7ffd6d32d32da69d62081c68ad7882 のトランザクション ハッシュを使用してトランザクションに署名させました。この取引を詳しく分析してみましょう。

ゼロアワーテクノロジー || バイビット攻撃の分析

トランザクションの実行フローを見ると、これが実際にはトランザクションよりも非常に単純であることがわかります。これは、トランザクションのマルチ署名ウォレットの署名を取得し、Safe ウォレットを呼び出してトランザクションを実行することを意味します。実行されるトランザクションも非常に単純で、攻撃コントラクト 7242 の転送関数を呼び出し、転送関数の _to は攻撃コントラクト 9516 になり、_value は 0 になります。

それでは、逆コンパイルしてコントラクト 7242 を攻撃するロジックを見てみましょう。

ゼロアワーテクノロジー || バイビット攻撃の分析

すると、作成されたトークンの所有者は、Launchpad 公式サイトのスマート コントラクトでもあることがわかります。

コントラクト 7242 の転送関数への攻撃は非常に簡単で、コントラクトの slot0 を転送関数の最初のパラメータ受信者に変更するだけであることがわかります。次に、実行プロセスを引き続き観察します。まず、安全なウォレットのプロキシ コントラクトが delegatecall を介して安全なウォレットの impl コントラクトを呼び出し、次に impl コントラクトが delegatecall を介して攻撃コントラクトの転送関数を呼び出します。 delegatecall の原則は、呼び出し元のコンテキストを使用して、呼び出されたコードを実行することです。したがって、攻撃コントラクトを実行するコンテキストは安全なウォレットのプロキシ コントラクトであるため、変更された slot0 は安全なウォレットのプロキシ コントラクトの slot0 でもあります。引き続き、セーフウォレットのプロキシコントラクトのコードを見てみましょう。

ゼロアワーテクノロジー || バイビット攻撃の分析

セーフウォレットのプロキシコントラクトの slot0 がセーフウォレットの論理コントラクトアドレスであることがわかりました。また、攻撃契約7242の転送関数の機能は、slot0を変更することです。その後、上記のプロセスを実行した後、攻撃者は安全なウォレットの論理コントラクト アドレスを変更して、コントラクト 9516 を攻撃します。この時点で、Bybit のコールドウォレットは攻撃者によって完全に乗っ取られています。

フェーズ3

攻撃者はBybitのコールドウォレットを乗っ取った後、攻撃コントラクト9516のsweepERC20およびsweepETH関数を呼び出して、コールドウォレット内のすべてのERC20トークンとETHを転送しました。この時点で攻撃は完了です。 sweepERC20 の具体的な実装を見てみましょう。

ゼロアワーテクノロジー || バイビット攻撃の分析

その機能は、指定されたコールドウォレット内の指定されたトークン残高をターゲットウォレットに転送することです。攻撃者はコールドウォレット内の90 USDTを転送し、

ゼロアワーテクノロジー || バイビット攻撃の分析

8,000ミリETH

ゼロアワーテクノロジー || バイビット攻撃の分析

90,375 ステ

ゼロアワーテクノロジー || バイビット攻撃の分析

15,000 cmETH

ゼロアワーテクノロジー || バイビット攻撃の分析

一人ずつ回って下さい。次に、sweepETHの具体的な実装を見てみましょう。

ゼロアワーテクノロジー || バイビット攻撃の分析

ご覧のとおり、この機能の主な機能は、ウォレット内のすべての ETH を攻撃者が指定したアドレスに転送することです。攻撃者はこの機能を利用してコールドウォレット内のすべてのETHを転送し、攻撃フェーズが完了しました。

ゼロアワーテクノロジー || バイビット攻撃の分析

発見された攻撃手法

分析の結果、攻撃者の手法は非常に綿密であることがわかりました。分析中に判明したことを詳しく説明します。

1. 攻撃者は最初にアドレス0x5C6120BA4C5B5E18DDcb9589e649e86EE6d540dDを悪用した。

ゼロアワーテクノロジー || バイビット攻撃の分析

テスト用に安全なウォレットを作成しました。

ゼロアワーテクノロジー || バイビット攻撃の分析

その後、チェーン上で攻撃のリハーサルが行われました。

ゼロアワーテクノロジー || バイビット攻撃の分析

この機能トランザクションの実行プロセスを確認できます。

ゼロアワーテクノロジー || バイビット攻撃の分析

その後、攻撃コントラクト9516のsweepERC20とsweepETHも使用されて、1つのブロックでのコインの引き出しをテストしました。

ゼロアワーテクノロジー || バイビット攻撃の分析

2. 攻撃契約 7242 と攻撃契約 9516 はどちらも slot0 を変更する機能を持っています。

ゼロアワーテクノロジー || バイビット攻撃の分析

ゼロアワーテクノロジー || バイビット攻撃の分析

攻撃者は、複雑な攻撃契約である攻撃契約 9516 を直接呼び出すのではなく、透過プロキシに似た単純な攻撃契約 7242 を呼び出して、コールド ウォレットの実装を変更しました。攻撃者は、呼び出されるコントラクト関数が複雑すぎるために、未知の保護がトリガーされたり、関係者の警戒心を喚起されたりするのではないかと懸念しているのではないかと推測します。さらに、攻撃機能の名前も「転送」という非常に紛らわしいものです。攻撃者はコールドウォレットのimplコントラクトを変更した後、多額の資金を直接送金するのではなく、まず90 USDTを送金しました。大規模な送金は後で完了します。

ゼロアワーテクノロジー || バイビット攻撃の分析

ご覧のとおり、攻撃者は最初にテストのためにごく少額のお金を送金しました。事故を防ぐため、大規模な送金はブロックチェーンが正常にアップロードされた後にのみ行われます。ブロック番号 21895251 ですべての大規模な転送が完了したことがわかります。

未解決の謎

なぜマルチ署名メカニズムは攻撃者によって簡単に破られてしまうのでしょうか?いくつかの可能性を挙げます:

1. まず、Safeウォレットのコントラクトまたはフロントエンドがサプライチェーン攻撃を受けました。bybitはSafeをETHにのみ使用しているわけではないことがわかっています。この場合、Safeを使用しているすべてのウォレットが攻撃者によって空になります。その後、Safe 社は、徹底的な調査を行った結果、フロントエンドと契約に対するサプライチェーン攻撃は行われなかったとの発表も行いました。

2. マルチ署名保有者の 1 人が攻撃者によって侵害され、攻撃者はそれを使用して転送を開始し、他の人はそれを慎重に確認せずに署名しました。このような多額のお金が入ったウォレットの秘密鍵保有者が行うすべての操作には通信や内部プロセスが必要になる可能性があるため、状況を知らずに誰かが署名する可能性は低いと分析しました。

3. 攻撃者はすべてのマルチ署名保有者の情報を侵害し、すべてのマルチ署名保有者を使用して署名し、最終的に攻撃を完了しました。

4. マルチ署名 UI が攻撃者によって変更され、マルチ署名保有者を誤解させました。

5. 攻撃者は内部システムに潜み、完全なプロセスを開始しました。

現時点では、さらなる情報が公開されない限り、攻撃者が使用した手法を最終的に特定することは困難です。しかし、確かなのは、攻撃者が、慎重な予備調査、オンチェーンのテストや実験から、マルチ署名保有者やシステムに対する複雑な攻撃に至るまで、オンチェーンとオフチェーンの攻撃手法に非常に熟達しているということです。また、当社は今後bybitがより多くの情報を公開することを期待しており、bybitに関連する技術サポートを提供していきたいと考えています。

要約する

この攻撃により、Bybit Exchangeは総額15億米ドルの損失を被り、この攻撃は取引所に対する史上最も大きな損害をもたらした攻撃となった。実際、インドの取引所WarirXでも同様の攻撃が発生しています。取引所は、その莫大な資本のためにトップ攻撃者の標的となることが多く、国家が支援する APT による攻撃を受ける可能性もあります。したがって、取引所は攻撃を受けるリスクを軽減するために、さまざまな側面からセキュリティ レベルを向上させる必要があります。ただし、これに限定されるものではなく、マルチ署名にはオフグリッド デバイス (コンピューター、モバイル デバイス) が使用されます。実行する必要のあるトランザクションは、最初にローカルでシミュレートされて期待どおりかどうかが確認され、全体的な操作と日常のコンテンツ プロセスで複数の関係者によって複数回検証されます。最後に、Web3 セキュリティでは、単一の対策が万能というわけではありません。無敵であり続けるためには、攻撃者との戦いにおいて継続的に改善する必要があります。

共有先:

著者:零时科技

本記事はPANews入駐コラムニストの見解であり、PANewsの立場を代表するものではなく、法的責任を負いません。

記事及び見解は投資助言を構成しません

画像出典:零时科技侵害がある場合は、著者に削除を連絡してください。

PANews公式アカウントをフォローして、一緒に強気相場と弱気相場を乗り越えましょう
おすすめ記事
8時間前
12時間前
2025-12-07 10:07
2025-12-07 06:24
2025-12-06 09:12
2025-12-06 08:03

人気記事

業界ニュース
市場ホットスポット
厳選読み物

厳選特集

App内阅读