AIコーディング支援が「攻撃の永続化経路」になる時代|npmワーム Shai-Hulud / Mini Shai-Hulud に学ぶ開発者端末・CI/CD・シークレット防御2026
- URL: https://blog.cloudnative.co.jp/articles/npm-supply-chain-worm-shai-hulud-mini-2026
- 日付: 2026-06-25
- Tier: Tier 3
- 要旨: npmワーム Shai-Hulud と亜種 Mini Shai-Hulud は、OIDC トークン悪用により正規ビルドパイプラインを乗っ取り、SLSA Build Level 3 の正当な証跡まで付与した悪性パッケージを公開する初の事例。パッケージ非公開企業でも攻撃対象は開発者端末と CI/CD に露出したシークレット(クラウドキー・PAT・Claude Code 設定など)。SLSA や SBOM があっても安全とは限らない。対策は侵害前提での予防的シークレット・ローテーション、Action 参照の SHA 固定、OIDC/短命認証への移行、インストール時のランタイム監視。AI コーディング支援の設定ファイル保護と MCP 接続の棚卸しが新たに必須。
詳細
Shai-Hulud は 2025 年 9 月初出現の自己増殖型 npm ワーム。500 超パッケージ・700 超リポジトリに波及後、2026 年 5 月の TanStack 侵害では GitHub Actions 設定ミスを突いて OIDC 公開エンドポイントを乗っ取り、正規ビルドプロセスで生成された悪性パッケージに正当な SLSA Build Level 3 証跡(Sigstore 発行)を付与する初の事例となった。このとき @tanstack/react-router 週 1,270 万ダウンロード、計 npm 170 超・PyPI 2 パッケージ・404 悪性バージョンで、npm と PyPI を同一作戦で同時侵害した初事例。5 月 12 日にソース公開後、模倣犯と派生(Miasma 系)が増殖。6 月には Red Hat npm 配下 32 パッケージ侵害(Miasma)、node-gyp binding.gyp 悪用(Phantom Gyp)と高度化継続中。攻撃の起点は認証情報窃取で、窃取対象は AWS/GCP/Azure キー、npm/GitHub トークン、CI/CD シークレット、Kubernetes・Vault 資格、SSH 鍵に加え、Claude Code 設定ファイル(/.claude.json、/.claude/mcp.json 等)を含む。OpenAI でも従業員端末 2 台が TanStack パッケージ経由で侵害される実被害。SLSA/SBOM は「来歴の正しさ」を保証するもので「コード安全性」ではなく、preinstall 無効化は binding.gyp などライフサイクル外へ攻撃点が移行済み。防御は侵害前提で、速く無効化・再発行できる設計。優先順位は、最優先が CI/CD 露出シークレットの棚卸しと予防的ローテーション、高優先が Action SHA 固定・pull_request_target 点検・OIDC/短命認証への移行、中が ランタイム監視・AI 支援設定保護。