CISA Warns of Shai-Hulud Self-Replicating Worm Compromised 500+ Packages in npm Registry
2025/09/24 CyberSecurityNews — CISA が発令した緊急セキュリティ・アラートは、世界最大の JavaScript パッケージ・レジストリである、npmjs.com に対する大規模なソフトウェア・サプライチェーン攻撃に対するものである。500 以上の npm パッケージに侵入した Shai-Hulud と呼ばれる自己複製型ワームは、開発者の認証情報および npm 公開ワークフローを悪用して拡散する、悪意のコードを注入するものだ。

自己複製型 npm サプライチェーンの脅威
Shai-Hulud が展開する高度なペイロードは、侵害したメンテナー・アカウントを介して最初のアクセスを確保した後に、環境変数やローカル設定ファイルに保存されている機密性の高い認証情報をスキャンするものだ。このマルウェアは、GitHub 個人アクセストークン (PAT)/AWS/GCP/Azure の API キーを標的とし、意図せずにトークンを永続化してしまう CI/CD の処理を悪用するものだ。
収集された認証情報は、攻撃者が管理するエンドポイントに送信され、また、”GitHub/user/repos” API を介して Shai-Hulud と名付けられた公開 GitHub リポジトリにアップロードされる。
Shai-Hulud は、自動化されたループで盗んだトークンを用いて npm レジストリで認証を行い、侵害した開発者の依存関係ツリー内のパッケージ・エントリポイント (多くは index.js) に、npm CLI を用いて悪意の JavaScript を注入する。その後に、このワームは、”npm version patch && npm publish –access public” を実行して、トロイの木馬化されたバージョンの公開と拡散を継続していく。
このワームの自己複製メカニズムは、推移的な依存関係を悪用するものだ。つまり、侵害されたパッケージのいずれかに依存するプロジェクトが、意図せず新たなホストとなってしまう可能性がある。
緩和策
侵害の検出および修正のために、CISA が推奨するのは、以下の項目の速やかな対応である。
- すべての package-lock.json および yarn.lock ファイルを調べ、2025年9月16日以降にリリースされたパッケージを特定する。npm 監査ツールや静的解析ツールを用いて、予期しないコード変更や追加のポスト・インストール・スクリプトにフラグ付けする。
- すべての開発者の認証情報をローテーションし、公開されている GitHub PAT を失効させる。すべての開発者アカウントに対して、特に GitHub/npm レジストリ・ログインに対して、フィッシング耐性のある多要素認証 (MFA) を適用する。
- 異常な SSH/HTTPS 接続を監視するための、IDS/IPS ルールを実装する。webhook.site ドメインなどの疑わしいエンドポイントへの送信トラフィックをブロックし、予期しない DNS クエリや未知の IP 範囲への通信を、ファイアウォール・ログで監査する。
- 不要な GitHub Apps/OAuth 権限を削除する。ブランチ保護ルール/シークレット・スキャン/Dependabot セキュリティ・アップデートを有効化し、Webhook およびリポジトリ・レベルのシークレットに不正な変更がないことを監査する。
- 2025年9月16日以前に公開された、安全が確認されているバージョンへの依存関係を固定する。package.json に厳密な semver 範囲 (例: “lodash”: “4.17.21”) を設定し、侵害されたリリースへの不用意なアップデートを防止する。
このワームの拡散を阻止し、開発パイプライン全体にわたる警戒を強化することで、npm エコシステムの整合性を守る必要がある。
npm レジストリを狙う、大規模なワーム型サプライチェーン攻撃が紹介されています。原因は、開発者アカウントの認証情報が盗まれ、そこからパッケージに悪意のコードが注入される仕組みにあります。特に、CI/CD の処理が意図せず認証トークンを残してしまうことや、依存関係の自動更新を通じてワームが自己複製して拡散することが問題となっています。そのため、安全に見える開発フローの設計が、攻撃者にとって拡散の経路となってしまったと、この記事は指摘しています。よろしければ、Shai-Hulud で検索も、ご参照ください。
You must be logged in to post a comment.