2025年12月25日、Trust WalletはChrome拡張機能(v2.68)で重大なセキュリティ侵害を受け、約850万ドルのユーザー資金が盗難されました。
根本原因は、拡張機能に注入された悪意のあるバックドアであり、プロジェクトの標準リリースプロセスを侵害したサプライチェーン攻撃に起因しています。注入されたバックドア方式は、ユーザーのシードフレーズを攻撃者が管理するサーバーにアップロードし、この特定の拡張機能バージョンで生成またはインポートされたウォレットを危険にさらします。その後、攻撃者は複数のチェーンでユーザー資金を流出し、KYC不要な取引所に送金しました。
背景
Trust WalletのChrome拡張機能は、典型的な自己管理型ウォレットとして設計されており、ユーザーはウォレットを作成したり、既存のウォレットをインポートしたりできます。あらゆる仮想通貨ウォレットの中心となるのは、ニーモニックとも呼ばれるシードフレーズです。これは、ウォレットの秘密鍵を人間が読める形式で表現したものです。このシードフレーズは、ウォレットに関連するすべての秘密鍵を決定論的に導き出すことができるため、ユーザーが持つ最も重要な秘密です。シードフレーズにアクセスできる者は誰でも、ウォレットの全資金を完全に制御できます。
シードフレーズが安全に自己管理されるように、Trust Walletの拡張機能は、暗号化アルゴリズムを使用してローカルに暗号化された形式で保存します。これは、適切な認証を伴う正規のユーザー要求があった場合にのみ復号化できます。このプロセスでは、ユーザーは設定した方法に応じて、生体認証またはパスワードで認証する必要があります。正常に機能する自己管理型ウォレットでは、復号化されたシードフレーズはローカルの拡張機能環境内でのみ使用され、外部サーバーに送信されることはありません。
脆弱性分析
脆弱性は、ウォレットのアンロックフロー、特に生体認証とパスワードの両方の手段に由来します。アンロック操作を行うと、シードフレーズは分析データとして収集され、正規のエンドポイントを装った攻撃者が管理するドメインに送信されます。エクスプロイトメカニズムは2つの手段で同一であるため、脆弱性を説明するために生体認証経路を例として取り上げます。
以下の分析とスクリーンショットは、難読化解除されたソースコードに基づいています。
復号化されたシードフレーズの取得
悪意のあるコードは、8423.jsファイル内のアンロック関数に注入され、ユーザー認証後のウォレットアンロックとシードフレーズの復号化を処理します。アンロックロジックでは、攻撃者は無害に見える分析収集メカニズムを埋め込みました。以下のコードスニペットで強調されているように、シードフレーズの取得は、通常の認証フローの直後に配置されました。すべてのウォレットをトラバースし、復号化されたシードフレーズを抽出し、欺瞞的に名付けられた変数 errorMessage に保存します。このデータは、分析イベントオブジェクトの error プロパティに埋め込まれます。
パスワードアンロックフロー(485〜527行目)にも同様の悪意のあるパターンが現れており、生体認証をパスワードベースの復号化に置き換えています。
機密データの送信
シードフレーズが収集され、分析データとしてパッケージ化されると、PostHog分析インフラストラクチャを通じてルーティングされました。このインフラストラクチャは、v2.68でデータ送信のために攻撃者によって意図的に導入されました。この経路を通じて、シードフレーズを含む分析データは分析サービスラッパーに送信され、PostHogの capture() メソッドが呼び出されてイベントオブジェクトが生成されます。イベントはキューに入れられ、バッチ処理された後、JSON形式にシリアライズされます。JSONペイロードは圧縮され、HTTP POSTリクエストを介して攻撃者のサーバーに送信されます。
4482.js ファイルは、api.metrics-trustwallet.com に分析データをルーティングするPostHog構成を明らかにしています。このドメインは、正規のTrust Wallet分析エンドポイントを模倣するために、攻撃者によって特別に登録されました。
拡張機能v2.68でテストしたところ、ウォレットのアンロック操作中にトリガーされた不審なリクエストをキャプチャして分析しました。このリクエストは、GZIP圧縮されたデータを攻撃者が管理するエンドポイントに送信し、解凍してプレーンテキストでシードフレーズを抽出できます。
攻撃分析
攻撃プロセスは、初期準備から最終的なエクスプロイトまで約1ヶ月に及び、3つの段階で展開されました。
-
Chrome Web Store (CWS) APIキーの侵害
-
悪意のあるコードを含む拡張機能のデプロイ
-
侵害されたユーザーウォレットからの資金盗難
ステージ1: CWS APIキーの侵害
物語は、11月に発生した「Shai-Hulud 2.0」[2]として知られる広範なサプライチェーン攻撃から始まりました。このキャンペーンは、NPM(Node Package Manager)を介して開発者環境を標的とし、多数の正規NPMパッケージにバックドアを仕掛けました。開発者がこれらの侵害されたパッケージをインストールすると、悪意のあるコードがシステム上で実行され、機密情報や認証トークンが盗まれました。
このサプライチェーン攻撃を通じて、攻撃者はTrust WalletのChrome Web Store (CWS) APIキーを取得しました。このキーは、拡張機能ビルドをChrome Web Storeに直接アップロードすることを可能にし、標準リリースプロセスにおけるTrust Walletの内部承認とレビューを完全に回避できたため、特に重要でした。
ステージ2: 悪意のあるコードを含む拡張機能のリリース
2025年12月、盗まれたCWS APIキーを手に、攻撃者は攻撃インフラストラクチャを実装しました。
-
悪意のあるドメイン
metrics-trustwallet.com(およびサブドメインapi.metrics-trustwallet.com)を登録し、データ収集エンドポイントをホストしました。 -
ウォレットのアンロックフローにバックドアコードを注入し、PostHog分析構成を変更してデータをサーバーに送信するようにしました。
-
盗まれたAPIキーを使用して、標準リリースプロセスを回避し、悪意のある拡張機能バージョン2.68をChrome Web Storeに直接アップロードしました。
悪意のあるバージョン2.68は、Chromeの自動レビューを通過し、公式開発者アカウントからの正規のアップデートとしてストアに公開されました。
ステージ3: 侵害されたユーザーウォレットからの資金盗難
ユーザーがこの脆弱な拡張機能を使用してウォレットをアンロックすると、シードフレーズは攻撃者が管理するサーバーである api.metrics-trustwallet.com に静かに送信されました。これらのシードフレーズへの完全なアクセスにより、攻撃者は被害者ウォレットの完全な制御権を得ました。
すぐに資金を引き出す(迅速な検出を引き起こす可能性がある)のではなく、攻撃者は忍耐強く、被害者プールが拡大するのを許容しながら、ステルス性を維持しました。
12月25日から、攻撃者は侵害されたウォレットからの体系的な資金抽出を開始しました。この操作は、10の異なるブロックチェーンにまたがる約2,520の個別のウォレットアドレスに影響を与えました。
まとめ
この侵害は、セキュリティが開発とデプロイメントを含むプロトコルライフサイクル全体を網羅する必要があることを痛感させるものです。2025年には、サプライチェーン攻撃が仮想通貨インフラストラクチャに対する最も破壊的な脅威として浮上し、わずか2件のインシデント(2月には15億ドルのBybitハックを含む)で重大な損失が発生しました。スマートコントラクト監査を超えて、プロトコルはビルドパイプラインを保護し、開発者の認証情報を保護し、継続的な監視を維持してユーザー資産を保護する必要があります。
参照
BlockSecについて
BlockSecは、フルスタックのブロックチェーンセキュリティおよび暗号コンプライアンスプロバイダーです。お客様がコード監査(スマートコントラクト、ブロックチェーン、ウォレットを含む)、リアルタイムでの攻撃傍受、インシデント分析、不正資金の追跡、AML/CFT義務の履行を、プロトコルおよびプラットフォームのライフサイクル全体にわたって実行できるよう支援する製品とサービスを構築しています。
BlockSecは、著名なカンファレンスで複数のブロックチェーンセキュリティ論文を発表し、DeFiアプリケーションのゼロデイ攻撃を数件報告し、多数のハッキングを阻止して2,000万ドル以上を救済し、数十億ドルの暗号資産を保護してきました。
-
公式ウェブサイト:https://blocksec.com/
-
公式Twitterアカウント:https://twitter.com/BlockSecTeam



