npm パッケージに仕込まれた情報窃取型マルウェア:暗号通貨関連の機密情報を流出?

Infostealer campaign compromises 10 npm packages, targets devs

2025/03/27 BleepingComputer — npm パッケージ 10個が改ざんされ、悪意のコードが仕込まれ、開発者のシステムから環境変数などの機密データが接種されていたことが、Sonatype の最新の調査により明らかになった。この攻撃キャンペーンは複数の暗号通貨関連パッケージを標的としており、その中には、週に数千回ダウンロードされる人気のパッケージ “country-currency-map” も含まれている。

問題とされるコードは、Sonatype の研究者 Ali ElShakankiry により発見されたものだ。この悪意のコードは、”/scripts/launch.js” と ”/scripts/diagnostic-report.js” という、高度に難読化された2つのスクリプトに仕込まれており、パッケージのインストール時に、自動的に実行されるようになっていた。

Malicious diagnostic-report.js script
Malicious diagnostic-report.js script
Source: BleepingComputer

Sonatype によると、これらの JavaScript はデバイスの環境変数を盗み出し、それらをリモート・ホスト “eoi2ectd5a5tn1h.m.pipedream(.)net” に送信するという。この環境変数には、API キー/データベース認証情報/クラウド認証情報/暗号化キーなどが含まれる可能性があり、さらなる攻撃の足がかりとして悪用される恐れがある。

Malicious code introduced via update
Malicious code introduced via update
Source: Sonatype

改ざんが確認されたリポジトリで発見された悪意のコードは、いずれも同一のものであった。さらに、それらのリポジトリの多くは、何年にもわたって安全だと見なされていた。したがって、何らかの方法で侵害された可能性が高いと、Sonatype のマルウェア・アナリストであり、BleepingComputer の記者でもある Ax Sharma は指摘する。

Sonatype は、「今回の npm パッケージ改ざんの要因は、クレデンシャル・スタッフィング、あるいは、期限切れドメイン乗っ取りによる、npm の古い管理者アカウントへの侵害だと推測される。クレデンシャル・スタッフィングとは、過去の侵害で窃取したユーザー名とパスワードを再利用する攻撃者が、他の Web サイト上のアカウントを侵害する行為である。どちらの手口も、npm の公式ドキュメントで一般的な攻撃手法として紹介されている」と報告している。

以下は、侵害が確認されたパッケージ/侵害されたバージョン/悪意のバージョンのダウンロード回数の一覧である:

  • country-currency-map:バージョン2.1.8:288 DL
  • @keepkey/device-protocol:バージョン7.13.3:56 DL
  • bnb-javascript-sdk-nobroadcast:バージョン2.16.16:61 DL
  • @bithighlander/bitcoin-cash-js-lib:バージョン5.2.2:61 DL
  • eslint-config-travix:バージョン 6.3.1:0 DL
  • babel-preset-travix:バージョン 1.2.1:0 DL
  • @travix/ui-themes:バージョン 1.1.5:0 DL
  • @veniceswap/uikit:バージョン 0.65.34:0 DL
  • @crosswise-finance1/sdk-v2:バージョン 0.1.21:0 DL
  • @veniceswap/eslint-config-pancake:バージョン 1.6.2:0 DL

上記の、country-currency-map 以外のパッケージに関しては、いずれも侵害されたバージョンが、最新版として npm で公開されている。したがって、それらをダウンロードすると、情報窃取型のマルウェアに感染する恐れがある。

なお、country-currency-map パッケージについては、3月26日の時点で悪意のバージョン 2.1.8 が非推奨とされており、メンテナから開発者たちに対して、安全なバージョンである 2.1.7 を使用するように促すメッセージが残されている。

Author's notice on npm
Maintainer’s notice on npm
Source: BleepingComputer

なお、改ざんされた npmパッケージに対応する GitHub リポジトリには、マルウェアは存在していなかった。したがって、今回の攻撃の発生要因は、npm メンテナ・アカウントのセキュリティ対策の不備にあるという仮説が、この事実により裏付けられる。

npm は、人気プロジェクトに対して、2要素認証の導入を義務付けている。しかし、今回の攻撃の影響を受けたプロジェクトの中には、数年前から更新されていない古いパッケージも含まれている。さらに言えば、それらのメンテナは、すでに活動していない可能性もある。