Shai-Halud による大規模サプライチェーン攻撃:477 件の npm パッケージにバックドアとトロイの木馬

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 認証情報を収集し、暗号化した上で攻撃者のインフラに送信した。

Packages compromised

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″ を実行し、直接の依存関係を確認した上でアドバイザリと照合する。

オープンソース・エコシステムは依然として主要ターゲットであるため、厳格な検証と継続的な監視により、ソフトウェア・サプライチェーンを保護することが重要である。