イベントレビュー
2025年2月21日午後2時16分11秒(UTC)、BybitのEthereumコールドウォレット(0x1db92e2eebc8e0c075a02bea49a2935bcd2dfcf4)が攻撃を受け、約401,346 ETH、15,000 cmETH、8,000 mETH、90,375 stETH、90 USDTが不明なアドレスに転送され、総額は約14億6,000万米ドルに上りました。
攻撃者はフィッシング攻撃を通じて、Bybit のマルチ署名ウォレットの署名者を騙し、悪意のあるトランザクションに署名させました。具体的な手順は次のとおりです。
攻撃者は事前に、資金を送金するためのバックドア機能を含む悪意のある契約を展開しました。
Safe のフロントエンド インターフェイスを改ざんして、Safe の署名者に表示されるトランザクション情報が、Ledger ハードウェア ウォレットに実際に送信されたデータと一致しないようにします。
攻撃者は偽造されたインターフェースを通じて 3 つの有効な署名を取得し、Safe マルチ署名ウォレットの実装契約を悪意のある契約に置き換えて、コールドウォレットを制御し、資金を転送することに成功しました。
Sygnia は、Bybit から、攻撃の範囲と発生源を特定し、現在および将来のリスクを軽減することを目的として、攻撃の根本原因を究明するためのフォレンジック調査の実施を委託されました。最新のレポートについては、 Bybit 中間調査レポート(https://docsend.com/view/rmdi832mpt8u93s7/d/rwecw3rumhqtgs6a) をご覧ください。
現在までに、法医学調査により以下の発見が明らかになっています。
トランザクションの開始と署名に使用されたすべてのホストのフォレンジック調査により、Safe の AWS S3 バケット内のリソースに悪意のある JavaScript コードが挿入されていたことが明らかになりました。
リソースの変更時間と公開されているネットワーク履歴アーカイブは、悪意のあるコードの挿入が Safe の AWS S3 バケットで直接実行されたことを示しています。
挿入された JavaScript コードの初期分析により、その主な目的はトランザクションを操作し、署名プロセス中にその内容を事実上変更することであることが判明しました。
さらに、挿入された JavaScript コードの分析により、トランザクションの発信元が 2 つの契約アドレス (Bybit の契約アドレスと現在特定されていない契約アドレス (脅威アクターが管理するテスト契約に関連する可能性が高い)) のいずれかと一致する場合にのみ実行されるアクティベーション条件が明らかになりました。
悪意のあるトランザクションが実行され公開されてから 2 分後、JavaScript リソースの新しいバージョンが Safe の AWS S3 バケットにアップロードされました。これらの更新バージョンでは悪意のあるコードが削除されています。
初期の調査結果によると、攻撃は Safe の AWS インフラストラクチャから発生したことが示されています。
これまでのところ、フォレンジック調査では、Bybit のインフラストラクチャが侵害された兆候は見つかっていない。
3 つの署名ホストのフォレンジック調査により、攻撃の根本的な原因は Safe インフラストラクチャから発生した悪意のあるコードであることが明らかになりました。
Bybit のインフラストラクチャに侵害の兆候は見つかりませんでした。
これらの調査結果をさらに確認するために調査が継続されています。
現時点での情報から判断すると、今回の主な問題はフロントエンドではありません。今回の攻撃の主な原因は、AWS 上のストレージサービスがハッキングされ、JavaScript が改ざんされたことで、Safe フロントエンドで開始されたトランザクションの内容が変更されたことです。しかし、フロントエンドでは、Safe フロントエンドが基本的な SRI 検証を実行していれば、JavaScript が変更されたとしても何も問題は発生しなかったでしょう。このように、フロントエンドには何らかの責任があるはずです。もちろん、Bybit にも責任がある。まず、彼らが使用したハードウェア ウォレットには具体的な取引情報が表示されなかったことが確認されている。Safe フロントエンド自体に対する信頼が低かったのだ。
ハードウェア ウォレットでは、複雑なトランザクションを処理する際に制限があり、マルチ署名ウォレットの詳細なトランザクション データを完全に解析して表示できないため、署名者はトランザクションの内容を完全に検証せずに「盲目的に署名」することになります。
ハッカーは、インタラクション プロセスの設計上の欠陥を悪用してユーザーの資産を詐取することに長けています。たとえば、UI ハイジャックを使用してユーザーをだまして署名させる、ブラインド署名を使用してユーザーをだまして署名させる、許可署名を使用してユーザーの資産を盗む、TransferFrom を使用してユーザーをだましてフィッシングさせる、最後の桁が同じショート ポジションを使用して詐欺を働く、NFT を狙ったフィッシング、その他の一般的なフィッシング手法などです。
Web3テクノロジーの急速な発展に伴い、フロントエンドセキュリティとブロックチェーンセキュリティの境界は徐々に曖昧になっています。従来のフロントエンドの脆弱性 (XSS、CSRF など) は、Web3 シナリオで新たな攻撃の側面を帯びる一方、スマート コントラクトの脆弱性や秘密鍵管理の欠陥などの問題により、リスクがさらに増大します。
次に、2つのシナリオからフロントエンド開発とセキュリティ問題の関係を分析します。
シナリオ1: トランザクションパラメータの改ざん - インターフェースには転送と表示されているが、実際には承認が実行される
例: フロントエンドの表示とオンチェーン実行の分離
ユーザーの視点:
✅ ウォレットのポップアップウィンドウに「1 ETH を 0x ユーザーに転送...」と表示されます
実際のオンチェーン効果:
⚠️ 「approve(attacker, unlimited)」を実行するといつでも資産を転送できます
どうすればいいですか? EIP-712 構造化署名検証
1. フロントエンドは検証可能なデータを生成する
2. スマートコントラクト検証署名
影響:フロントエンド パラメータが改ざんされると、署名が一致せず、トランザクションが自動的にロールバックされます。
シナリオ 2: ブラインド署名ハイジャック - ハードウェア ウォレットがハッキングされた理由
例: 元帳解析ルールの改ざん
1. 攻撃者はフロントエンド コードを乗っ取り、偽のコールデータをハードウェア ウォレットに送信します。
2. 元帳画面表示:
実際の実行: 「approve(attacker, unlimited)」
どうすればいいですか?ハードウェアウォレットのセマンティック分析 + オンチェーン二次検証
1. ハードウェアウォレットのファームウェアをアップグレードしてEIP-712をサポートする
2. オンチェーンの必須セマンティックマッチング
結論
フロントエンド セキュリティと Web3 セキュリティの統合は、課題であると同時にチャンスでもあります。 Bybitの盗難事件は、暗号通貨業界のセキュリティ管理と技術アーキテクチャにおける深刻な問題を露呈した。ハッカーの攻撃手法が進化し続ける中、業界はますます複雑化する脅威に対処するために、デバイスのセキュリティ、トランザクションの検証、リスク管理メカニズムなど、さまざまな側面から保護機能を総合的に強化する必要があります。フロントエンド開発者が行う必要があるのは、DApp へのアクセス、ウォレットへの接続、メッセージの署名、トランザクションの署名、トランザクション後の処理、その他のリンクを繰り返し検証することです。 「受動的な修復」から「能動的な免疫」への飛躍を実現します。この方法でのみ、Web3 のオープンな世界におけるすべてのトランザクションの価値と信頼を保護することができます。
もちろん、オンチェーン契約のセキュリティ監査もすべてのDappに不可欠です。ZAN AI Scan (https://zan.top/cn/home/ai-scan? chInfo=ch_WZ)は、形式検証とAI支援によるセキュリティ仕様生成を通じてコードの正確性を確保し、数百万の展開済み契約のコード類似性と知的財産リスク分析を提供し、展開済みプロジェクトに影響を与える可能性のあるゼロデイ脆弱性やセキュリティインシデントに関する24時間365日の監視と即時通知を提供します。また、スマート コントラクトのさまざまな現実世界の脆弱性を検出するために、巨大な脆弱性データベースに基づいて最適化された GPT モデルも備えています。
この記事は、ZAN チームの KenLee (X アカウント@zan_team ) によって書かれました。