npm/PyPI エコシステムが標的:新たなサプライチェーン・マルウェア攻撃の詳細が判明

New Supply Chain Malware Operation Hits npm and PyPI Ecosystems, Targeting Millions Globally

2025/06/08 TheHackerNews — GlueStack 関連の 12以上のパッケージを標的とする、マルウェア拡散を目的としたサプライチェーン攻撃の存在を、サイバー・セキュリティ研究者たちが指摘している。Aikido Security は、「”lib/commonjs/index.js” への変更時に侵入した、このマルウェアを操作する攻撃者は、シェル・コマンドの実行/スクリーン・ショットの撮影/感染マシンへのファイル・アップロードが可能にする。これらのパッケージのダウンロード数は、合計で毎週約 100万回に達している」と、The Hacker News に述べている。

この不正アクセスの用途として挙げられるのは、暗号通貨のマイニング/機密情報の窃取/サービスのシャットダウンといった、各種の後続アクションの実行である。Aikido によると、最初のパッケージへの侵入は、2025年6月6日の午後9時33分 (GMT) に検知されたという。

影響を受けるパッケージとバージョンの一覧は、以下の通りである。

  • @gluestack-ui/utils version 0.1.16 (101 Downloads)
  • @gluestack-ui/utils version 0.1.17 (176 Downloads)
  • @react-native-aria/button version 0.2.11 (174 Downloads)
  • @react-native-aria/checkbox version 0.2.11 (577 Downloads)
  • @react-native-aria/combobox version 0.2.8 (167 Downloads)
  • @react-native-aria/disclosure version 0.2.9 (N/A)
  • @react-native-aria/focus version 0.2.10 (951 Downloads)
  • @react-native-aria/interactions version 0.2.17 (420 Downloads)
  • @react-native-aria/listbox version 0.2.10 (171 Downloads)
  • @react-native-aria/menu version 0.2.16 (54 Downloads)
  • @react-native-aria/overlay version 0.3.16 (751 Downloads)
  • @react-native-aria/radio version 0.2.14 (570 Downloads)
  • @react-native-aria/slider version 0.2.13 (264 Downloads)
  • @react-native-aria/switch version 0.2.5 (56 Downloads)
  • @react-native-aria/tabs version 0.2.14 (170 Downloads)
  • @react-native-aria/toggle version 0.2.12 (589 Downloads)
  • @react-native-aria/utils version 0.2.13 (341 Downloads)

これらのパッケージに注入された悪意のコードは、先月の npm パッケージ “rand-user-agent” の侵害後に配信された RAT と類似しており、同じ脅威アクターが、これらの活動の背後にいる可能性が示唆される。

このトロイの木馬は更新版であり、システム情報 “ss_info” と、ホストのパブリック IP アドレス “ss_ip” を収集するための、2つの新しいコマンドをサポートしている。

この侵害のあとに、プロジェクトのメンテナは、アクセス・トークンを失効させ、影響を受けたバージョンを非推奨とした。悪意のバージョンをダウンロードした可能性のあるユーザーに対しては、安全なバージョンへとロールバックし、潜在的な脅威を軽減することが推奨される。

Aikido は、「潜在的な影響は甚大であり、このマルウェアの持続メカニズムが特に懸念される。いったん感染が生じてしまうと、メンテナによるパッケージ更新の後であっても、攻撃者は標的マシンへのアクセスを維持する」と述べている。

その一方で、2025年6月9日に公開されたインシデント・レポートにおいて、プロジェクトのメンテナは、「コントリビューターの1人に関連付けられたパブリック・アクセストークンが侵害され、”react-native-aria” パッケージの改竄版と @gluestack-ui/utils パッケージが、脅威アクターにより npm で公開された」と認めた。

Suraj Ahmed Choudhury は、「侵害されたパッケージは、権限のあるメンテナの侵害されたアカウントにより公開された。React Native ARIA は、フロントエンド専用のライブラリである。したがって、インストールされた後であっても、CLI やスクリプトでコードが実行されることはないため、ユーザーのシステムで悪意のコードが実行される可能性は極めて低い。現時点での私たちの理解と使用パターンに基づくと、システムレベルの侵害は想定されない」と述べている。

さらに、このメンテナは、すべての必須ではないコントリビューターの、GitHub リポジトリへのアクセスを無効化し、公開と GitHub アクセスにおいて、二要素認証 (2FA) を有効化したと述べている。

npm で発見された悪質パッケージの破壊的な能力を検証する

前述の2つの不正な npm パッケージ (express-api-sync と system-health-sync-api) は、Socket により発見されたものであり、それを受けるかたちで、今回の PyPI パッケージが発見されたことになる。これらのパッケージは、正規のユーティリティを装いながら、アプリケーション・ディレクトリ全体を削除する、ワイパー機能を組み込んでいる。


これらの悪意のパッケージは、アカウント “botsailer” (メール:anupm019@gmail[.]com) により公開されたものであり、削除されるまでの間に、112 回と 861 回のダウンロード数を記録している。

1つ目のパッケージである “express-api-sync” は、2つのデータベース間でデータを同期するための Express API であると謳っている。しかし、それを開発者がインストールし、アプリケーションに組み込むと、ハードコードされたキー “DEFAULT_123” を取り込んだ HTTP リクエストが受信され、悪質なコードが実行されるという。

具体的に言うと、そのキーを受け取った悪意のパッケージは 、Unix コマンド “rm -rf *” を実行し、カレント・ディレクトリ以下の全ファイルを再帰的に削除していく。この削除の対象には、ソースコード/コンフィグ・ファイル/アセット/ローカル・データベースが含まれる。

2つ目のパッケージは遥かに高度であり、情報窃取とワイパーの両方の機能を持ち、オペレーティング・システムに応じて、削除コマンド Windows “rd /s /q .” もしくは Linux “rm -rf *” を実行する。

セキュリティ研究者の Kush Pandya は、「”express-api-sync” が鈍器であるのに対して、”system-health-sync-api” は情報収集機能を内蔵した破壊の万能ナイフである」と述べている。

この npm パッケージの注目すべき点は、電子メールを秘密の通信チャネルとして使用し、ハードコードされた SMTP 認証情報を介して、攻撃者が管理するメール・ボックスに接続するところにある。パスワードは Base64 エンコードで難読化されているが、ユーザー名はインドに拠点を置く不動産会社のドメインのメール・アドレス “auth@corehomes[.]in “を指している。

Socket は、「重要なイベントが発生するたびに、anupm019@gmail[.]com にメールが送信される。そのメールには、バックエンドの URL 全体が含まれており、公開されてはならない内部インフラの詳細/開発環境/ステージング・サーバなどが漏洩する可能性がある」と述べている。

SMTP をデータ窃取に利用するという、巧妙な手口が採用されている。大半のファイアウォールが、送信メール・トラフィックをブロックしないため、悪意のトラフィックが正規のアプリケーション・メールに紛れ込む可能性は十分にあるはずだ。

さらに、このパッケージは “//system/health” と “//sys/maintenance” のエンドポイントをレジスタ化し、プラットフォーム固有の破壊コマンドを実行する。後者は、メインのバックドアが検出されブロックされた場合の、フォールバック・メカニズムとして機能する。

Kush Pandya は、「最初に、攻撃者は、サーバのホスト名とステータスを返す GET //system/health を使ってバックドアを検証する。そして、設定されていることが判明したら、dry-run モードでテストを行い、その後に、POST //system/health または、バックアップの POST /_/sys/maintenance エンドポイントで、キーである HelloWorld を指定して破壊攻撃を実行する」と述べている。

この2つの新たな npm パッケージの発見が示すのは、偽のライブラリを悪用する脅威アクターは、情報や暗号通貨を窃取するだけではなく、システム破壊にも焦点を当て始めていることである。このような戦術から、金銭的な利益はもたらされないことから、異例の展開と言えるだろう。

Instagram のグロース・ツールを装う PyPI パッケージで認証情報収集

Python Package Index (PyPI) リポジトリ上で Instagram のグロース・ツールを装う、新たな Python ベースの認証情報収集ツール imad213 が、ソフトウェア・サプライチェーン・セキュリティ企業 pepy により発見された。pepy.tech に掲載された統計情報によると、このパッケージは 3,242回もダウンロードされているという。

Kush Pandya は、「このマルウェアは Base64 エンコードで正体を隠蔽し、Netlifyでホストされた制御ファイルを通じて、リモート・キル・スイッチを実装するものだ。このマルウェアが実行されると、ユーザーに対して Instagram の認証情報が要求される。その後のアクションとして、フォロワー数の増加を装いながら、10種類のサードパーティ・ボット・サービスに認証情報をブロードキャストする」と説明している。

この Python ライブラリは、2025年3月2 日にレジストリに参加した、im_ad__213 (別名 IMAD-213) というユーザーによりアップロードされたものだ。このユーザーは、Facebook/Gmail/Twitter/VK の認証情報を収集するためのパッケージ (taya/a-b27) や、Apache Bench を利用してストリーミング・プラットフォームや API を分散型サービス拒否 (DDoS) 攻撃の対象にするなどをアップロードしている。

現時点において、PyPI からダウンロードが可能なパッケージのリストは、以下のとおりである:

  • imad213:ダウンロード数 3,242
  • taya:ダウンロード数 930
  • a-b27:ダウンロード数 996
  • poppo213:ダウンロード数 3,165

上記の imad213 が PyPI にアップロードされる2日ほど前に、IMAD-213 が公開したGitHub README.md ドキュメントには、「このライブラリは、主に教育および研究が目的であり、いかなる誤用についても責任を負わない」と記されている。

GitHub の説明には、”偽の安全対策” も記載されており、メイン・アカウントで問題が発生するのを避けるため、偽の Instagramアカウントまたはテンポラリ・アカウントを使用するようユーザーに促している。

Kush Pandya は、「ユーザーは自分が安全だと思い込むだろうが、それにより誤ったセキュリティ対策が生み出され、有効な認証情報が攻撃者に渡ってしまう」と述べている。

このマルウェアが起動すると、外部サーバとの接続が行われ、テキスト・ファイル “pass.txt” が読み込まれる。このファイルの内容が、文字列 “”imad213” と一致する場合にのみ、悪意のチェーンは続行する。そこに組み込まれているキル・スイッチは、複数の目的に利用できるものである。したがって脅威アクターは、制御ファイルのコンテキストを変更するだけで、ライブラリの実行権限を持つユーザーの特定や、ダウンロードしたコピーの無効化などを実行できる。

次のステップにおいて、このライブラリは、ユーザーに対して Instagram の認証情報の入力を促す。入力された認証情報は、”「”credentials.txt” というローカル・ファイルに保存され、10件にも及ぶ疑わしいボット・サービス Web サイトへとブロードキャストされる。これらの Web サイトの一部は、同じ組織により運営されていると思われる、トルコの Instagram グロース・ツールのネットワークにリンクしている。これらのドメインは、2021年6月に登録されたものだ。

Socket は、「これらの認証情報収集ツールの出現は、ソーシャル・メディアを標的とするマルウェアの、懸念すべき傾向を浮き彫りにしている。10 種類のボット・サービスが認証情報を取得していることから、盗み出したログイン情報を複数のサービスに分散させて出所を隠蔽する、認証情報ロンダリングの初期段階とも思える」と指摘している。