ソフトウェア開発で広く利用されているパッケージマネージャー「npm」において、悪意あるパッケージが発見され、開発コミュニティに新たな懸念が広がっています。サイバーセキュリティ研究者らの報告によると、4つのnpmパッケージが情報窃取マルウェアや分散型サービス拒否(DDoS)攻撃用のボットネットを配布していたことが明らかになりました。
これらの悪質なパッケージは、開発者のシステムから機密情報を盗み出したり、標的のウェブサイトに対して大規模なDDoS攻撃を仕掛けたりする能力を持っています。特に、オープンソース化されたワームのコードを悪用した事例も含まれており、サプライチェーン攻撃の新たな波が到来している可能性が指摘されています。
悪意あるnpmパッケージの詳細と機能
今回特定された悪質なnpmパッケージは以下の4つです。これらはすべて「deadcode09284814」という同一のnpmユーザーによって公開されていました。
chalk-tempalte(825ダウンロード)@deadcode09284814/axios-util(284ダウンロード)axois-utils(963ダウンロード)color-style-utils(934ダウンロード)
これらのパッケージは、ダウンロード数自体はそれほど多くないものの、それぞれ異なる種類の悪質なペイロードを含んでおり、攻撃者の手口の多様性を示しています。
DDoS攻撃ボットネット「Phantom Bot」の脅威
特に注目すべきは「axois-utils」パッケージです。このパッケージは、Golangで開発されたDDoSボットネット「Phantom Bot」をシステムに送り込むように設計されています。Phantom Botは、HTTP、TCP、UDPといった複数のプロトコルを利用して標的のウェブサイトに大量のトラフィックを送り込み、サービス停止を引き起こす能力を持っています。
さらに、このボットネットはWindowsとLinuxの両方のマシンで永続性を確立する機能を備えています。具体的には、Windowsのスタートアップフォルダにペイロードを追加したり、スケジュールされたタスクを作成したりすることで、システムが再起動されてもマルウェアが常駐し続けるように仕向けます。これにより、感染したマシンは攻撃者によってDDoS攻撃の踏み台として利用され続ける危険性があります。
情報窃取ワーム「Shai-Hulud」のクローン
残りの3つのパッケージは、情報窃取型のペイロードをシステムに投下します。その中でも「chalk-tempalte」は、TeamPCPが公開した「Shai-Huludワーム」のソースコードの直接的なクローンを含んでいることが判明しました。セキュリティ企業OX Securityの分析によると、攻撃者はこの公開されたコードをほとんど変更することなく、独自のC2(コマンド&コントロール)サーバーと秘密鍵を組み込んだ動作可能なバージョンとしてnpmにアップロードしていました。
このワームは、窃取した認証情報をリモートのC2サーバー「87e0bbc636999b.lhr[.]life」に送信します。さらに悪質なのは、窃取したGitHubトークンを悪用してAPI経由で新しいGitHub公開リポジトリを作成する点です。このリポジトリには「A Mini Sha1-Hulud has Appeared」という説明が付与されており、攻撃の痕跡を残すとともに、さらなる悪用を企図している可能性も考えられます。
その他の情報窃取パッケージ
「@deadcode09284814/axios-util」と「color-style-utils」の2つのnpmパッケージは、より直接的な情報窃取機能を持ちます。これらは、感染したシステムから以下の種類の機密情報を抜き取り、それぞれ異なるC2サーバーに送信します。
- SSHキー
- 環境変数
- クラウド認証情報
- システム情報
- IPアドレス
- 仮想通貨ウォレットデータ
これらのデータは、攻撃者にとって非常に価値が高く、さらなるサイバー攻撃や金銭的利益のために悪用される可能性があります。クラウド認証情報が盗まれれば、企業のクラウド環境全体が危険に晒されることにもなりかねません。
サプライチェーン攻撃の新たな波と背景
今回の事例は、npmエコシステムにおけるサプライチェーン攻撃の脅威が深刻化している現状を浮き彫りにしています。OX Securityは、「Shai-Huludのコードがオープンソース化されたことで、脅威アクターはサプライチェーン攻撃やタイポスクワッティングを行う動機をさらに強めている」と指摘しています。
サプライチェーン攻撃とは、ソフトウェアの供給経路(サプライチェーン)に潜む脆弱性を悪用し、正規のソフトウェアやライブラリを通じてマルウェアを配布する攻撃手法です。npmのようなオープンソースのパッケージリポジトリは、その利便性の高さから世界中の開発者に広く利用されていますが、同時に悪意あるコードが混入した場合、非常に広範囲に影響が及ぶリスクを内包しています。
攻撃者は、正規のパッケージに酷似した名前の悪意あるパッケージを公開する「タイポスクワッティング」や、人気のあるパッケージの依存関係に悪意あるコードを忍び込ませるなど、多様な手口を用いています。今回のケースでは、単一の攻撃者が複数の異なる手法と情報窃取タイプを組み合わせてnpmに悪質なコードを拡散しており、これは今後のサプライチェーン攻撃の「第一段階」に過ぎない可能性も示唆されています。
オープンソースソフトウェアの利用は開発効率を大幅に向上させますが、その一方で、導入するパッケージの信頼性を常に検証し、潜在的なリスクを評価する責任が開発者と企業に求められます。
開発者と企業が取るべき具体的な対策
今回の脅威から身を守るためには、開発者と企業は迅速かつ包括的な対策を講じる必要があります。OX Securityは以下の具体的な手順を推奨しています。
1. 悪意あるパッケージの即時アンインストール
- 上記で特定された4つのnpmパッケージ(
chalk-tempalte,@deadcode09284814/axios-util,axois-utils,color-style-utils)をシステムから直ちに削除してください。プロジェクトの依存関係からもこれらを排除することが重要です。
2. 悪意ある設定の特定と削除
- 統合開発環境(IDE)やコーディングエージェント(例: Claude Code)など、開発環境に悪意ある設定や構成が追加されていないか確認し、発見した場合は削除してください。
3. 秘密鍵(シークレット)のローテーション
- SSHキー、APIキー、クラウド認証情報など、システムに保存されているすべての秘密鍵や認証情報を直ちにローテーション(変更)してください。特に、GitHubトークンが盗まれている可能性があるため、GitHubの個人アクセストークンも再発行することが必須です。
4. GitHubリポジトリの確認
- 自身のGitHubアカウントや組織のリポジトリの中に、「A Mini Sha1-Hulud has Appeared」という文字列を含む説明のリポジトリが作成されていないか確認してください。もし発見された場合は、直ちに削除し、関連するGitHubトークンを無効化してください。
5. 不審なドメインへのネットワークアクセスブロック
- マルウェアが通信していたC2サーバーのドメインやIPアドレス(例:
87e0bbc636999b.lhr[.]life,80.200.28[.]28:2222,edcf8b03c84634.lhr[.]life)へのネットワークアクセスを、ファイアウォールやプロキシサーバーでブロックしてください。
6. 依存関係の継続的な監視と監査
- npmパッケージの依存関係を定期的に監査し、既知の脆弱性や悪意あるパッケージが含まれていないかを確認するツール(SCA: Software Composition Analysis)を導入することを検討してください。
- 使用するパッケージのバージョンを固定し、不必要な自動アップデートを避けることで、予期せぬ悪意あるコードの混入リスクを低減できます。
7. 最小権限の原則と多要素認証の徹底
- 開発環境やCI/CDパイプラインにおいて、必要最小限の権限のみを付与する「最小権限の原則」を徹底してください。
- GitHubやnpmなどのサービスへのアクセスには、多要素認証(MFA)を必ず有効にし、アカウントの乗っ取りリスクを低減してください。
npmエコシステムのセキュリティ課題と将来展望
npmはJavaScript開発において不可欠なツールであり、その広大なエコシステムは開発の生産性を飛躍的に向上させてきました。しかし、そのオープン性と利便性が、同時に悪意ある攻撃者にとって魅力的な標的となるというジレンプを抱えています。
今回の事例は、攻撃者がオープンソースのコードを悪用し、複数のマルウェアタイプを組み合わせて攻撃を仕掛けるという、より洗練された手法を用いていることを示しています。これは、従来の脆弱性対策だけでなく、サプライチェーン全体の信頼性を確保するための包括的なアプローチが必要であることを意味します。
npmコミュニティとプラットフォーム提供者は、悪意あるパッケージの検出と削除を強化し、開発者に対してより安全なパッケージ選択のための情報提供を進める必要があります。また、開発者自身も、安易なパッケージの導入を避け、信頼できるソースからのパッケージのみを使用し、常に最新のセキュリティ情報を把握する意識を持つことが不可欠です。
将来的には、パッケージの署名検証や、AIを活用した異常検知システムなど、より高度なセキュリティメカニズムがnpmエコシステムに導入されることが期待されます。しかし、最終的には、サプライチェーンの各段階に携わるすべての関係者がセキュリティ意識を高め、協力し合うことで、このような脅威に対抗していくしかありません。
よくある質問
npmパッケージのセキュリティを確認する方法は?
npmパッケージのセキュリティを確認するには、まず公式のnpmレジストリでパッケージの公開者情報やダウンロード数、最終更新日などを確認します。また、npm auditコマンドを実行して既知の脆弱性をチェックしたり、SnykやDependabotのようなソフトウェア構成分析(SCA)ツールを導入して、依存関係全体のセキュリティリスクを継続的に監視することが推奨されます。
サプライチェーン攻撃とは具体的にどのようなものですか?
サプライチェーン攻撃とは、ソフトウェアやサービスの供給経路(サプライチェーン)に潜む脆弱性や悪意ある要素を悪用し、最終的なユーザーや組織に損害を与えるサイバー攻撃です。例えば、npmパッケージの場合、正規のパッケージに悪意あるコードを仕込んだり、人気のあるパッケージに似た名前の偽パッケージを公開したりすることで、開発者のシステムにマルウェアを侵入させます。これにより、開発されたアプリケーション自体が悪意ある機能を持つようになったり、開発者の機密情報が盗まれたりする可能性があります。
開発環境で他に注意すべき点はありますか?
開発環境では、使用するすべてのソフトウェアやツールを常に最新の状態に保ち、セキュリティパッチを適用することが重要です。また、不必要な権限を付与しない「最小権限の原則」を徹底し、開発用マシンで重要な機密情報を直接扱わないようにする、あるいは厳重に保護された環境で作業するといった対策も有効です。さらに、GitHubやクラウドサービスへのアクセスには必ず多要素認証(MFA)を設定し、パスワードの使い回しを避けることも基本中の基本です。
まとめ
今回のnpmパッケージを巡る一連の悪意ある活動は、ソフトウェアサプライチェーンにおけるセキュリティの脆弱性を改めて浮き彫りにしました。情報窃取マルウェアやDDoSボットネットの拡散は、開発者だけでなく、それらのパッケージを利用する最終的なアプリケーションやサービスにも深刻な影響を及ぼす可能性があります。
Shai-Huludワームのオープンソース化が攻撃の動機付けとなっているという指摘は、オープンソースコミュニティが直面する新たな課題を示唆しています。開発者や企業は、依存関係の厳格な管理、セキュリティツールの活用、そして何よりもセキュリティ意識の向上を通じて、これらの脅威から自らを守るための積極的な対策を講じることが求められます。npmエコシステム全体の安全性を確保するためには、コミュニティ、プラットフォーム提供者、そして個々の開発者全員が協力し、継続的な努力を重ねていくことが不可欠です。

