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つのスクリプトに仕込まれており、パッケージのインストール時に、自動的に実行されるようになっていた。
Sonatype によると、これらの JavaScript はデバイスの環境変数を盗み出し、それらをリモート・ホスト “eoi2ectd5a5tn1h.m.pipedream(.)net” に送信するという。この環境変数には、API キー/データベース認証情報/クラウド認証情報/暗号化キーなどが含まれる可能性があり、さらなる攻撃の足がかりとして悪用される恐れがある。
改ざんが確認されたリポジトリで発見された悪意のコードは、いずれも同一のものであった。さらに、それらのリポジトリの多くは、何年にもわたって安全だと見なされていた。したがって、何らかの方法で侵害された可能性が高いと、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 を使用するように促すメッセージが残されている。
なお、改ざんされた npmパッケージに対応する GitHub リポジトリには、マルウェアは存在していなかった。したがって、今回の攻撃の発生要因は、npm メンテナ・アカウントのセキュリティ対策の不備にあるという仮説が、この事実により裏付けられる。
npm は、人気プロジェクトに対して、2要素認証の導入を義務付けている。しかし、今回の攻撃の影響を受けたプロジェクトの中には、数年前から更新されていない古いパッケージも含まれている。さらに言えば、それらのメンテナは、すでに活動していない可能性もある。
定期的と言ってよいほどの頻度で登場する、リポジトリ汚染の話です。今回の記事を読むと、”古くて枯れているから安全” という思い込みが、かなり危険なものであることが解ります。ダウンロードしたパッケージは、使用前に必ず検査という手順が必要ですね。ただし、それが、依存関係の中でダウンロードされる場合もあるので、頭の痛い話です。ご利用のチームは、ご注意ください。よろしければ、カテゴリ Repository と、npm で検索も、ご利用ください。


.jpg)
You must be logged in to post a comment.