Injective SDK on npm infected with cryptocurrency wallet stealer

ハッカーは、Injective LabsのSDKプロジェクトのGitHubリポジトリを乗っ取り、それを悪用してNode Package Manager(npm)上に悪意のあるパッケージを公開し、仮想通貨ウォレットの秘密鍵やニーモニックシードフレーズを盗み出しました。

アプリケーションセキュリティ企業のSocket、Ox Security、StepSecurityは、@injectivelabs/sdk-ts npmパッケージのバージョン1.20.21を通じて、このサプライチェーン攻撃を検知しました。

Injective SDKは、分散型金融(DeFi)、トークン化された資産、分散型取引所(DEX)に焦点を当てたレイヤー1ブロックチェーンであるInjectiveブロックチェーン上でアプリケーションを構築するためのTypeScript/JavaScriptソフトウェア開発キット(SDK)です。

image

このパッケージはnpmで週5万回のダウンロードがあり、暗号資産ウォレット、トレーディングボット、分散型取引所、DeFiアプリケーション、決済ツールを開発する開発者によって利用されています。

研究者によると、攻撃者は正当なプロジェクト貢献者に属する GitHub アカウントを乗っ取り、6月8日に最初の不審なコミットを行い、その直後に悪意のあるバージョンのパッケージを公開しました。

また、攻撃者はこのプロジェクトに関連する他の17のパッケージについてもバージョン1.20.21を公開し、それらすべてを侵害されたSDKバージョンに固定しました。

正当なアカウント所有者は数分以内に侵害を検知し、変更を元に戻した上で、クリーンなリリースであるバージョン1.20.23を公開しました。

しかし、更新を通じて悪意のあるパッケージを取得した、あるいはそれらを使用した開発者のシステムは、侵害された可能性が高い。

Socketによると、このパッケージの悪意のあるバージョンは、非推奨(deprecated)とされるまで310回ダウンロードされており、削除はされておらず、GitHub上の悪意のあるリリースアーティファクトは現在も入手可能です。

また、研究者らは、このパッケージが npm に対して 87 の直接的な依存関係を持ち、さらに複数の間接的な依存関係も存在する可能性が高いと指摘しています。

Ox Securityのレポートによると、これら87の依存パッケージの累計ダウンロード数は11万2000回をわずかに上回っていたとのことです。

仮想通貨ウォレットを標的に

このマルウェアは、インストール時ではなく、開発者がウォレットキーを生成またはインポートする SDK 関数を使用する際に起動します。

これらの関数が呼び出されると、マルウェアはニーモニックシードフレーズと秘密鍵の全情報を取得し、そのデータをBase64でエンコードします。すべての情報は、トラフィックを正当なものに見せかけるため、Injective LabsのパブリックインフラストラクチャエンドポイントへのHTTP POSTリクエストを介して外部へ流出されます。

StepSecurityの報告によると、このマルウェアは盗んだ秘密情報を即座に送信するのではなく、複数の鍵とニーモニックを2秒間キューに蓄積し、それらをHTTPリクエストヘッダーにまとめて送信していた。

その後、攻撃者はニーモニックまたは秘密鍵を使用して、被害者のウォレットを自身のデバイスに移し替え、デジタル資産にアクセス、利用、または転送する可能性があります。

侵害の疑いがある開発者は、暗号資産を新しいウォレットに移し、環境内のすべての秘密鍵を更新する必要があります。