Massive “Shai-Halud” Supply Chain Attack Compromised 477 NPM Packages
2025/09/17 CyberSecurityNews — Shai-Halud と呼ばれる大規模なサプライチェーン攻撃が、npm レジストリを介して JavaScript エコシステムに侵入してきた。CrowdStrike のパッケージなど、合計で 477 個の npm パッケージに仕込まれたのは、認証情報の窃取/ソースコードの流出/開発者マシン上での RCE などを目的とする、ステルス性の高いバックドアおよびトロイの木馬化のモジュールである。

主なポイント
- 難読化されたバックドアが、マイナー・バージョン・アップデートを通じて 477 個の npm パッケージに挿入された。
- 一連のペイロードが収集した認証情報は、C2 サーバに送信された。
- バージョンの固定/サプライチェーン・スキャン/チェックサム検証/シークレット・ローテーションなどによる修正が実施されている。
Shai-Halud サプライチェーン攻撃
この攻撃キャンペーンは 2025年8月初旬に開始され、マイナー・バージョンアップ (例:1.2.3 → 1.2.4) の際に悪意のアップデートを公開するために、侵害したメンテナーのアカウントが悪用された。それぞれのアップデートにおいて、モジュールのエントリ・ファイル (通常は index.js) 内に小型の難読化ペイロードが挿入された。このローダーは C2 サーバに接続し、第 2 段階のペイロードを取得するものだ。
このペイロードは、プロジェクト・ディレクトリを検索し、”.env” ファイル/SSH 秘密鍵 (id_rsa)/”.git/config” に保存された Git 認証情報を収集し、暗号化した上で攻撃者のインフラに送信した。
Shai-Halud によるバージョン指定のハイジャックにより、緩いセマンティック・バージョン指定 (例:^1.2.0) を行っていた下流プロジェクトは、自動的にトロイの木馬化されたリリースを取り込むことになった。その結果として、開発ツールや、CLI ユーティリティ、UI コンポーネント・フレームワークなどの、著名なライブラリが影響を受け、被害範囲が拡大した。
検出戦略
- npm audit/Snyk/OWASP Dependency-Check などを CI パイプラインに統合し、異常なバージョン・リリースを検知する。
- “npm ci –prefer-offline –hash-checksums” を用いて、既知の有効な SHA-256 ハッシュに対する整合性検証を行う。
- ランタイム監視 (Windows は Sysmon/Linux は auditd) により、不審なネットワーク呼び出しや eval() の使用を検出する。
緩和策
- 依存関係のバージョン固定:特定バージョンに固定し、semver 範囲の広がりを防ぐ。
- シークレットのローテーション:公開済 API トークン/SSH キー/環境変数を取り消し再生成する。
- 依存関係の監査:”npm ls –prod –depth=0″ を実行し、直接の依存関係を確認した上でアドバイザリと照合する。
オープンソース・エコシステムは依然として主要ターゲットであるため、厳格な検証と継続的な監視により、ソフトウェア・サプライチェーンを保護することが重要である。
npm パッケージの更新プロセスを悪用してバックドアを仕込むという、大規模なサプライチェーン攻撃 Shai-Halud が展開されています。攻撃者は正規のメンテナー・アカウントを侵害し、通常のマイナー・バージョン更新に見せかけて、悪意あるコードを追加しています。その結果として、依存関係でのバージョン指定が緩いプロジェクトでは、自動的に改ざんされたパッケージが取り込まれています。さまざまなパッケージに影響が生じています。それらを ご利用のチームは、ご注意ください。よろしければ、Shai-Halud で検索も、ご参照ください。

You must be logged in to post a comment.