検索
ニュース

npmに偽パッケージ10種 クロスプラットフォームで認証情報を窃取セキュリティニュースアラート

Socketは、npmで偽のライブラリーパッケージが多段階の難読化技術と偽CAPTCHAを使い、認証情報を窃取する攻撃を報告した。開発環境やクラウド資格情報が流出する恐れがあるため、再設定と鍵更新を推奨している。

Share
Tweet
LINE
Hatena

 Socketは2025年10月28日(現地時間)、npmパッケージ管理システムに存在する悪意のあるパッケージに関する調査結果を公表した。これらは正規ライブラリー名に似せた名称で登録されており、インストール時に自動的に実行される仕組みを悪用して多段階の情報窃取を実行する。

 Socketの脅威調査チームはこれらが4段階の難読化技術を使って実際の動作を隠しつつ、偽のCAPTCHA表示やシステム情報を収集し、最終的に認証情報を盗むプログラムを展開することを確認している。

npmサプライチェーンを狙う高度な攻撃、Socketが詳細公表

 問題のパッケージは「typescriptjs」「deezcord.js」「dizcordjs」「dezcord.js」「etherdjs」「ethesjs」「ethetsjs」「nodemonjs」「react-router-dom.js」「zustand.js」。いずれも人気のあるライブラリー名に近い名称が使われ、開発者が誤ってインストールするよう誘導されていた。これらは2025年7月4日に公開され、約4カ月にわたりnpm上で配布され続け、合計で9900回以上ダウンロードされていたとされる。

 これらのパッケージはnpmの「postinstall」スクリプトを利用して自動実行される構造になっていた。インストール後に新しいターミナル画面を開き、ユーザーが通常のインストール作業中に気が付きにくいよう設計されている。実行スクリプトはオペレーティングシステムを検出し、「Windows」「Linux」「macOS」ごとに異なる手順で悪意あるコードを起動する。

 スクリプト内部のJavaScriptコードは、自己復号型のeval構文、XOR暗号化、URLエンコード、制御構造の難読化という4層構成で隠ぺいされている。これによって静的解析が困難となり、コードの全容を把握するには実行時の挙動を確認する必要がある。

 攻撃の第1段階において、インストール直後に偽のCAPTCHAが表示される。この画面は実際の認証を伴わず、開発者に正当な操作だと誤認させる目的がある。画面には「Installing ethers package...」など、正規ライブラリーのインストールを模したメッセージも表示される。第2段階では入力を受け付けた後、スクリプトは被害者のIPアドレスを外部サーバ(195[.]133[.]79[.]43)に送信し、地域情報や研究者による検証を識別していたとみられる。

 第3段階では「data_extracter」と呼ばれる約24MBの実行ファイルがダウンロードされ、自動的に実行される。このプログラムはPyInstallerでパッケージ化されているクロスプラットフォーム型の情報窃取ツールで、Pythonで作成されている。WindowsではCredential Manager、macOSではKeychain、LinuxではSecretServiceを対象に認証情報を抜き取り、クラウドサービスや開発環境へのアクセスに使われる資格情報を収集する。

 data_extracterはファイルシステムを広範に探索し、「Amazon Web Services」(AWS)や「Kubernetes」「Docker」などの設定ファイル、SSH秘密鍵、ブラウザのSQLiteデータベース、APIキーを含む環境ファイルなどを収集する機能を持つ。

 Webブラウザに保存されているセッションCookieを抽出し、クラウドサービスや開発ツールへの認証済みアクセスを不正に再現できる状態を作り出す。OAuthやJWTトークンも対象となり、クラウドインフラやリポジトリーへの持続的な不正アクセスが可能となる危険がある。

 収集情報(被害端末の資格情報、セッション情報、API認証データなど)はZIP形式で圧縮され、コマンド&コントロール(C2)サーバに送信される。Socketは今回の一連の攻撃がnpmエコシステム内のサプライチェーンを狙った高度な攻撃事例だと分析している。多段階の難読化、偽装UI、IP追跡、クロスプラットフォーム型情報窃取など複数の要素を組み合わせ、開発者の警戒をすり抜ける仕組みが確認されている。

 調査チームはnpm側に対しパッケージ削除を要請し、影響範囲の確認を進めている。既にこれらをインストールした環境は侵害されている可能性が高く、システムの全ての認証情報の再設定、トークンの失効、SSH鍵の更新、アクセスログの精査が必要とされる。外部接続ログにおけるC2サーバのIPアドレスへの通信履歴の確認も推奨される。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る