
2025年5月、セキュリティ企業Socketの調査チームは、npm(Node.js向けのパッケージマネージャ)上で発見された60件の悪意あるパッケージについて報告しました。これらのパッケージは、インストール時に自動的に実行されるスクリプトを含んでおり、開発者やCI環境からネットワーク情報やユーザ情報を外部に送信する機能を持っています。
特に問題となるのは、送信先がDiscordのWebhookである点で、攻撃者がリアルタイムで情報収集を行っていた可能性が指摘されています。
目次
攻撃の手口:インストール時に情報を収集し外部送信
調査によると、これらのnpmパッケージには、npm install
実行時にトリガーされる postinstall
スクリプトが含まれており、次のような情報を収集します。
-
ホスト名
-
内部・外部のIPアドレス
-
DNSサーバー情報
-
ユーザーディレクトリパス
-
実行ユーザー名
-
実行パッケージのメタデータ(名前、バージョン、パスなど)
このスクリプトはNode.jsの標準モジュール(os
, dns
, https
)を使用して情報を収集し、それらをJSON形式にまとめてDiscordのWebhook URLへ送信します。攻撃者はこの方法で、インストールされた環境のネットワーク構成や開発フローを静かに把握しています。
サンドボックス回避も実装済み
悪意あるスクリプトには、仮想環境や研究用のサンドボックスで実行された場合に処理を中断する仕組みが含まれています。具体的には、以下のようなホスト名・ユーザーディレクトリ名・クラウド環境(AWS、GCPなど)を検出した場合、データ送信を停止する処理が記述されています。
この処理により、マルウェア解析ツールや仮想マシン上での解析を回避し、実際の開発者やCI/CDパイプラインに対してのみ情報収集を行う設計になっているとみられます。
公開された60のパッケージはすでに3,000件以上インストール済み
この攻撃は2025年5月中旬から確認されており、最初のパッケージは11日前に公開されました。直近のパッケージは公開から数時間以内にSocket社が検出しており、攻撃が現在進行中であることを示しています。
60件のパッケージは、以下の3つのnpmアカウントからそれぞれ20件ずつ公開されていました。
アカウント名 | 登録メール | パッケージ数 |
---|---|---|
bbbb335656 | npm9960+1@gmail[.]com | 20件 |
sdsds656565 | npm9960+2@gmail[.]com | 20件 |
cdsfdfafd1232436437 | npm9960+3@gmail[.]com | 20件 |
代表的な悪意あるパッケージには、seatable
、datamart
、seamless-sppmy
などが含まれており、いずれも同一のスクリプトロジックを内包しています。
目的は「偵察」だが、今後の攻撃につながる恐れ
今回のスクリプト自体にはファイルの改ざんやデータの破壊といった直接的な攻撃機能は含まれていません。
しかし、企業ネットワーク内の構成情報を攻撃者が把握することで、将来的にピンポイントな侵入や権限昇格、社内リポジトリへのアクセスといった「次の攻撃フェーズ」につながる可能性が高まります。
CI/CD環境から漏洩した情報には、社内のnpmリポジトリのURLやビルドパスなどが含まれている可能性があり、サプライチェーン攻撃の起点となり得ます。
npm側の対応と開発者への推奨策
記事執筆時点(2025年5月26日)で、問題のパッケージはまだnpm上で公開されたままになっており、Socket社はこれらの削除をnpmに申請しています。
開発者およびセキュリティ担当者に求められる対応は以下のとおりです
-
依存関係の監査
postinstall
スクリプトを含むパッケージをチェックし、不審なものがないか確認する -
CI/CDパイプラインの保護
ビルドサーバーやCI環境のネットワークアクセス制限や出力ログの監視を強化する -
セキュリティツールの導入
SocketのCLIやGitHubアプリなど、悪意あるコードの兆候(外部通信、Webhook、短いtarballなど)を自動検出できるツールを導入する -
怪しいアカウントのパッケージは使用しない
信頼性の低い、もしくは新規作成されたばかりのnpmアカウントからのパッケージ使用は慎重に検討する
まとめ
この攻撃は、静かに開発現場の情報を収集し、将来的な侵害の準備を行う「偵察型マルウェア」の一例です。特に、npmのような広く使われているエコシステムにおいて、postinstall
スクリプトを使った情報収集は極めて効果的であり、今後も類似の攻撃が繰り返されると予想されます。
パッケージの便利さに潜むリスクを常に意識し、開発チームと情報システム部門が連携して、依存関係の管理とセキュリティ対策を強化していくことが求められます。