Jscramblerのnpmサプライチェーン攻撃、クラウド認証情報と暗号資産ウォレットの秘密情報を窃取

何者かがJscramblerのnpmパッケージを侵害し、隠された、クロスプラットフォーム対応の認証情報窃取ペイロードを含む複数のトロイの木馬化バージョンを公開しました。

この攻撃は開発者、ビルドパイプライン、CI/CDシステムを標的としており、npmインストールを通じてソースコード、クラウド認証情報、デプロイトークン、機密性の高い環境変数にアクセスできる状態でした。

Jscramblerのnpmサプライチェーン攻撃

Socketの調査チームが検知したところによると、最初の悪意あるリリースである[email protected]は、2026年7月11日の公開からわずか6分で検出されました。このパッケージの週間ダウンロード数は約15,800件に上ります。

この初期バージョンには、npmインストール処理中に自動的にnode dist/setup.jsを実行する、文書化されていないpreinstallライフサイクルフックが仕込まれていました。つまり被害者は、ペイロードを実行させるためにパッケージをインポートしたり、Jscramblerのコマンドラインツールを手動で呼び出したりする必要すらなかったということです。

この悪意あるローダーは、dist/intro.jsという名前に偽装されたバイナリコンテナを読み込み、被害者のOSに応じて埋め込まれた実行ファイルを選択し、一時ディレクトリ内のランダムな名前を持つ隠しファイルからひそかに起動していました。このコンテナには、Linux x86-64、Windows x86-64、Apple SiliconのmacOSシステム向けのネイティブペイロードが含まれていました。

この攻撃キャンペーンはその後、Jscramblerのバージョン8.16.0、8.17.0、8.18.0、8.20.0にも拡大しました。バージョン8.14.0、8.16.0、8.17.0では悪意あるpreinstallフックが使われていましたが、それ以降のリリースでは配信方法が変更されています。

バージョン8.18.0からは、攻撃者はインストールフックを取り除き、dist/index.jsdist/bin/jscrambler.jsに自己実行型のドロッパーを注入するようになりました。これにより、アプリケーションがこの依存パッケージをインポートするか、そのCLIを実行した際にマルウェアが動作する仕組みです。この手法は、npm install --ignore-scriptsのような制御や、ライフサイクルスクリプトのみに着目したスキャナーを回避できてしまいます。

バージョン8.18.0と8.20.0では、侵害されたJscramblerのリリースへの自己依存も宣言されており、推移的な感染拡大を可能にする恐れがありました。

Rustベースのこれらのペイロードは、設定情報や検出対象を隠すために、個別に暗号化されたChaCha20-Poly1305形式の文字列を使用しています。Socketは約2,421件の暗号化された文字列を復元し、広範なデータ窃取機能を明らかにしました。

このマルウェアは、AWS、Google Cloud、Microsoft Azureを含むクラウド環境を標的としています。クラウドメタデータサービスのトークン、ローカルのCLI認証情報、サービスアカウントファイル、AWS Secrets Managerのデータ、SSMパラメータストアの値、Azureの管理トークンを探索します。

CloudStorage

さらに、MetaMask、Trust Wallet、Coinbase Wallet、Phantom、Exodusから暗号資産ウォレットのデータを盗み出そうとします。標的となるものには、ウォレットのシードフレーズ、リカバリーフレーズ、保管データ、鍵導出パラメータなどが含まれます。

注目すべきは、このペイロードがClaude Desktop、Cursor、Windsurf、Factory、Zed、VS Codeなどの開発ツールにおいて、AIコーディングアシスタントやMCPサーバーの設定ファイルも探索する点です。こうしたファイルにはAPIキー、内部サービスのURL、Model Context Protocolの認証情報が含まれる場合があります。

このマルウェアはさらに、ブラウザのデータやDiscord、Slack、Telegram、Steamといったアプリケーションも標的にします。また、FirefoxやChromiumベースのブラウザのプロファイル、システムのキーリング、開発者の秘密情報も調査対象です。静的解析により、マルチパートPOSTの/uploadリクエストを用いたTLSベースの情報窃取が確認されています。

各組織は直ちに、影響を受けたバージョンのインストール状況を確認し、これを削除するとともに、侵害された開発者端末やCIシステムを通じて漏洩した可能性のあるすべての秘密情報をローテーションすべきです。これにはnpmトークン、クラウドキー、GitHubトークン、デプロイ認証情報、APIキー、暗号資産ウォレットの認証情報が含まれます。

Jscramblerは、npm公開用の認証情報を通じて不正な公開が行われたことを確認しました。同社は該当する認証情報を失効・ローテーションし、悪意あるバージョンを非推奨とした上で、安全であるとされる[email protected]をリリースしました。利用者はバージョン8.22.0にアップグレードするか、他の安全性が確認済みのリリースに固定することが推奨されます。

侵害指標(IOC)

注: 誤ってアクセスやリンクが解決されることを防ぐため、IPアドレスとドメインは意図的に無害化表記(例: [.])としています。再有効化はMISP、VirusTotal、SIEMなど、管理された脅威インテリジェンスプラットフォーム内でのみ行ってください。

IOCの種類 指標
悪意あるパッケージ [email protected], 8.16.0, 8.17.0, 8.18.0, 8.20.0
安全なリリース [email protected]
悪意あるローダー dist/setup.js
バイナリコンテナ dist/intro.js
dist/setup.js SHA-256 a742de963f14a92d24ebcbc7b44ac867e23a20d31d1b0094a13a4f83287f4e60
dist/intro.js SHA-256 a41a523ef9517aab37ed6eea0ec881821bdcb7aefcb5c5f603adc7907f868c86
Linux ELF SHA-256 fbbcf4d8f98168f78f5c0c47a9ae56d59ec8ac84a7c9ca6b797fedfb8d62d2bd
Windows PE SHA-256 b7ca95d1b23c8e67416a25cedf741de0917c2096bbc9d24649eea7853d054903
macOS Mach-O SHA-256 c8fd47d36bdf7c825378593ab82ed8c24d1dc52e26b507812393e24e1d5201fd

Windows、Linux、macOSの仮想マシンでサイバー脅威を実際に操作し、攻撃の全体像を再現 - ANY RUNでマルウェアとフィッシングを分析

翻訳元: https://gbhackers.com/jscrambler-npm-supply-chain-attack-steals-cloud-credentials/

ソース: gbhackers.com