Mini Shai-Hulud ― npm Supply ChainがCI/CD Credential Theftへ直結する
Executive Summary
Microsoftは2026年5月20日、@antvのnpm Maintainer Accountが侵害され、広く利用されるPackageの悪意あるVersionを通じてCI/CD Credentialを窃取するSupply Chain Attack「Mini Shai-Hulud」を報告しました。PayloadはGitHub、AWS、Vault、npm、Kubernetes、1Password等のCredentialを探索し、Dependency Chainを通じて下流Projectへ影響を拡大しました。1
GitHubは対応として640の悪意あるPackageを削除し、Write権限と2FA bypassを持つ61,274のnpm Granular Access Tokenを無効化したとMicrosoftは報告しています。Software Dependencyの侵害がBuild System Identityの侵害へ直結することを示す事例です。
なぜ今なのか
Software Supply Chainの価値はSource Codeそのものだけではありません。CI/CD PipelineにはPackage Publish Token、Cloud Credential、Signing Material、Deployment Credential等の高価値Secretが集中しています。
Maintainer Accountが侵害されると、正規Package Updateを通じて多数の組織へPayloadを配布できます。
攻撃Chain
- npm Maintainer Accountを侵害
- 正規Scopeで悪意あるPackage VersionをPublish
- Downstream Dependencyへ自動伝播
- npm install時のScriptでPayload実行
- CI/CD / Cloud / Developer Credentialを探索
- Stolen Tokenを利用してRepository / Packageへ拡大
MITRE ATT&CK® Mapping
この表は、攻撃・Campaignの理解に有用な場合だけ表示します。Source-labeled は一次情報がATT&CK IDを明示したもの、Analyst-mapped は一次情報に記載された行動を本LibraryがATT&CKへ対応付けたものです。後者は、元情報の発行者がそのATT&CK IDを明示したことを意味しません。
| Technique | Tactic | Basis | Article context |
|---|---|---|---|
| T1195.001 Compromise Software Dependencies and Development Tools | Initial Access | Analyst-mapped | 侵害されたnpm Maintainer / PackageとLifecycle Scriptを利用したDependency Chain侵害に対応。 |
| T1552.001 Credentials In Files | Credential Access | Analyst-mapped | .awsやVault Token Path等のCredential File探索に対応。 |
| T1528 Steal Application Access Token | Credential Access | Analyst-mapped | GitHub / npm / Kubernetes等のAccess Token取得・再利用に対応。 |
経営インパクト
| 観点 | 影響 |
|---|---|
| Developer Supply Chain | Direct DependencyでなくてもTransitive経由で侵害 |
| Cloud Risk | CI/CD SecretからCloud Control Planeへ到達し得る |
| Trust | Package署名・Provenanceだけでは侵害を完全に防げない |
| Incident Scope | 影響確認にはBuild Log、Lockfile、Token利用履歴が必要 |
日本企業への示唆
SBOMを作るだけでなく「いつ、どのVersionを、どのRunnerでBuildしたか」を追跡できる必要があります。Supply Chain Incident時にはPackage削除だけでなく、その期間に利用されたCredential Rotationが重要です。
推奨アクション
- npm等のLifecycle Scriptを必要最小限にする
- CI/CD Tokenを短命・Least Privilege化する
- Package LockfileとBuild Provenanceを保持する
- Dependency Updateを自動承認せずRisk-basedに検証する
- Compromised Package利用時はCredential Rotationまで実施する
- Maintainer / Package ReputationをThird-party Riskへ組み込む
用語解説
Transitive Dependency
直接指定したLibraryがさらに依存している間接的なDependency。利用者が意識しないまま組み込まれることがあります。