9月15日、セキュリティ研究者はnpmパッケージエコシステムを標的とした重大なサプライチェーン攻撃を報告した。
このインシデントでは、広く利用されているコードパッケージを侵害する自己増殖型マルウェアが使われ、その中には@ctrl/tinycolorも含まれていた。これは180以上のパッケージに影響を及ぼす、より広範なキャンペーンの一環だった。この攻撃は、オープンソースのパッケージレジストリに対する脅威が根強く存在し、現代のソフトウェア開発ワークフローにおいて同レジストリが重要な役割を担っていることを浮き彫りにした。
攻撃の概要
このキャンペーンで最初に特定されたパッケージ、rxnt-authenticationは9月14日に更新されており、その直後に追加の侵害が検出された。
調査の結果、マルウェアはワームのような挙動を利用してnpm内を拡散しており、このエコシステムで初めて記録された自己複製型攻撃の1つであることが判明した。正規のパッケージに自身を埋め込むことで、このマルウェアはソフトウェア配布をnpmに依存する開発者や組織にリスクをもたらした。
マルウェアの機能
悪意のあるコードは、認証情報の収集、データの外部流出、npmレジストリ全体へのさらなる拡散を目的とした複数段階のプロセスを実行した。
- 認証情報の収集:マルウェアは感染したシステムや継続的インテグレーション(CI)環境をスキャンし、クラウドキー、認証トークン、環境変数などの秘密情報を探した。機密情報の発見には、TruffleHogなどのツールが使われた。
- データの外部流出:盗み出した情報は、ホストやシステムのメタデータとともに、Shai-Huludなどの名前を付けた公開GitHubリポジトリにダンプされ、攻撃者が侵害データを取得できる状態になっていた。
- GitHub Actionsの悪用:マルウェアは悪意のあるワークフローファイル(.github/workflows/shai-hulud-workflow.yml)を配置し、リポジトリの秘密情報を抽出して攻撃者が管理するWebフックに転送した。
- 自己複製:npmの認証トークンを取得したマルウェアは、侵害された開発者が管理する他のパッケージを再公開し、さらなる拡散を確実にするためコードを埋め込んだ。
- リポジトリの改ざん:非公開リポジトリが公開状態に変更されたり、追加のワークフローやブランチを挿入されたりすることで、開発環境全体に感染範囲が広がった。
サプライチェーンの脅威
このインシデントは、npmエコシステムで相次ぐ著名な侵害に続くものだ。その中には、暗号資産関連のパッケージや開発フレームワークを狙った攻撃も含まれる。こうした事態は、パッケージ管理システムにおけるサプライチェーンの脆弱性がもたらすシステム上のリスクを浮き彫りにしている。
JavaScriptパッケージの世界最大のリポジトリであるnpmは、アプリケーション開発で重要な役割を果たしているため、頻繁に標的となっている。
緩和策と推奨事項
GitHubアカウントとnpmレジストリを確認する
組織は、許可されていないリポジトリの作成や、Shai-Huludと名付けられたブランチの作成など、GitHubアカウント上の不審な活動を監査すべきだ。開発者も、自分のアカウントで承認されていないパッケージバージョンや新たに公開されたコンテンツがnpmレジストリにないか確認する必要がある。
侵害されたパッケージを特定して削除する
影響を受けたnpmパッケージは、メンテナーによってレジストリから削除されている。セキュリティチームは、開発パイプラインやエンドポイントから影響を受けたパッケージを確認し、アンインストールすべきだ。感染が確認された場合は、埋め込まれたマルウェアを除去するため、ローカルのnpmキャッシュを消去し、依存関係を再インストールする必要があるかもしれない。
侵害された秘密情報をローテーションする
トロイの木馬化されたパッケージを実行しているデバイスは、対策が完了するまで隔離すべきだ。クラウドキー、APIトークン、データベース接続文字列、SSHキー、GitHubの秘密情報など、露出したすべての認証情報をローテーションする必要がある。
たとえ侵害が確認されていなくても、環境全体で価値の高い秘密情報をローテーションすることで、潜在的な露出を抑えられる。
ネットワーク活動を監視する
調査の結果、マルウェアは拡散の成功を確認するため、webhook[.]siteへの外向き接続を利用していたことが判明した。このサービスを利用していない組織は、不正なトラフィックを防ぐため、ドメインのブロックを検討すべきだ。
今回のnpmサプライチェーン侵害は、オープンソースエコシステムを標的とするマルウェアの高度化が進んでいることを示している。
認証情報の窃取、データの外部流出、自己複製を組み合わせたこのキャンペーンは、分散型パッケージ管理プラットフォームに内在するリスクを浮き彫りにした。新たに出現するサプライチェーンの脅威から開発環境を守るには、事前の監査、秘密情報のローテーション、継続的な監視が依然として不可欠だ。





