- Shai Hulud 2.0 が npm エコシステムを再び攻撃し、Zapier、ENS Domains、AsyncAPI、PostHog、Postman など主要プロジェクトのパッケージを感染させた
- 悪性コードはインストール過程で自動実行され、開発者システムとクラウド環境の秘密情報を窃取
- 感染したシステムで TruffleHog を使って API キー、トークン、パスワードなどを探し、公開 GitHub リポジトリにアップロード
- 今回の攻撃は以前より拡大し、最大100個のパッケージを感染、認証失敗時には ホームディレクトリのファイル削除機能 も含む
- npm エコシステムの信頼の仕組みを脅かす大規模なサプライチェーン攻撃であり、すべての開発チームに秘密情報の点検と交換の必要性を突きつけた
Shai-Hulud キャンペーン概要
- Shai-Hulud は npm エコシステムで自己増殖するワーム型マルウェアで、感染した開発環境を通じて急速に拡散
- 感染時に TruffleHog を使って API キーやトークンなど露出した秘密情報を検索
- 収集した情報は 公開 GitHub リポジトリへ送信され、その後新たな悪性パッケージを npm に公開して拡散
- 攻撃者は今回の攻撃を 「Second Coming」 と命名
- npm が 12月9日に旧式トークンを廃止すると予告したタイミングに合わせて攻撃が再開された
攻撃タイムライン
- 8月27日: S1ngularity キャンペーンのレポート公開
- 9月16日: 1回目の Shai-Hulud 攻撃が発生
- 9月18日: 技術分析とペイロード動作の報告
- 11月24日: npm トークン廃止直前に 2回目の攻撃(Second Coming) が発生
攻撃手法の変化
- 今回の攻撃では
setup_bun.js ファイルを通じて Bun ランタイムをインストールし、その後 bun_environment.js を実行
- ランダムな名前の GitHub リポジトリを生成して窃取データをアップロード
- 感染対象パッケージ数が 20個から100個に増加
- GitHub または npm の認証に失敗した場合、ユーザーのホームディレクトリ全体を削除する機能を含む
感染したパッケージ
- 合計 492個の npm パッケージが感染しており、月間ダウンロード数は 1億3,200万回に達する
- 主な被害プロジェクト: Zapier、ENS Domains、AsyncAPI、PostHog、Postman、Browserbase
- 例示パッケージ:
@zapier/zapier-sdk, @ensdomains/ensjs, @asyncapi/cli, posthog-js, @postman/pm-bin-linux-x64 など
秘密情報の流出
- 悪性コードは 「Sha1-Hulud: The Second Coming」 という説明を含む GitHub リポジトリに秘密情報をアップロード
- 現時点で 26,300個以上のリポジトリが露出したことが確認されている
攻撃者のミス
- 一部のパッケージには
setup_bun.js のみが含まれ、bun_environment.js が欠落していたため、ワームが完全には実行されなかった
- このため 攻撃の拡散範囲は限定された
感染経路と最初の感染地点
- 最初の感染は 2025年11月24日 03:16:26 GMT+0 に
go-template および AsyncAPI 関連の36個のパッケージで始まった
- その後 PostHog(04:11:55)、Postman(05:09:25) の順に拡散
- AsyncAPI CLI リポジトリで 悪性ブランチ作成後に配布されたコードが確認された
潜在的影響
- インストール時に自動実行され、開発者のローカル環境、ビルドシステム、クラウド認証情報にアクセス可能
- 窃取された秘密情報を通じて 追加のアカウント侵害や悪性パッケージ公開 の可能性
- npm エコシステムの 信頼ベースのサプライチェーンセキュリティに対する深刻な脅威
セキュリティ対応の推奨
- Zapier および ENS 関連の npm 依存関係を総点検
- GitHub、npm、クラウド、CI/CD の秘密情報を全面交換
- GitHub で 「Sha1-Hulud: The Second Coming」 という説明があるリポジトリを探索
- CI 環境で npm の
postinstall スクリプトを無効化
- パッケージバージョンの固定と MFA の有効化、Safe-Chain などのツールで悪性パッケージを遮断
結論
- Shai-Hulud 2.0 は npm サプライチェーンを狙った大規模な再攻撃であり、
数百の人気パッケージと数千の GitHub リポジトリが影響を受けた
- すべての開発チームは 依存関係の検証、秘密情報の交換、自動インストールスクリプトの遮断 を直ちに実施する必要がある
まだコメントはありません。