ブログ一覧に戻る
ベストプラクティス2026年8月4日5分で読めます

keyvほか複数のnpmパッケージが「Shai-Hulud」サプライチェーン攻撃で侵害――自己増殖型ワームが月間20億インストール規模に拡大

Keyv and friends compromised in active Shai-Hulud supply chain attack

ベストプラクティス

この記事のポイント

【なぜ重要か】 2026年8月4日、月間6億ダウンロードを超えるnpmパッケージ「keyv」のメンテナーのGitHubアカウントが侵害され、同メンテナーが管理するパッケージファミリー全体に認証情報窃取型ワームが注入された。侵害はGitHub Actionsによる正規のプロバナンス署名付きで公開されたため検知が困難であり、ワームの自己増殖機能により少なくとも434パッケージ・1381バージョンへ感染...

【なぜ重要か】 2026年8月4日、月間6億ダウンロードを超えるnpmパッケージ「keyv」のメンテナーのGitHubアカウントが侵害され、同メンテナーが管理するパッケージファミリー全体に認証情報窃取型ワームが注入された。侵害はGitHub Actionsによる正規のプロバナンス署名付きで公開されたため検知が困難であり、ワームの自己増殖機能により少なくとも434パッケージ・1381バージョンへ感染が拡大し、合計月間インストール数は20億件を超えた。npmを利用している日本のエンジニアやセキュリティ担当者にとって、自身のプロジェクトが既に被害を受けている可能性がある緊急性の高い問題である。

【ポイント】

  • 攻撃手法: メンテナーのGitHubアカウントを乗っ取り、mainブランチに悪意あるファイル(setup.mjs・Math_Symbol.js)を直接プッシュして即座にリリース。package.jsonに「preinstall」スクリプトを追加することで、npm installを実行するだけでペイロードが自動実行される仕組みになっている。
  • 窃取対象の認証情報: npmトークン、GitHubトークン(PAT・OAuthトークン・GitHub App・OIDCトークン)、AWS認証情報(IMDSv1/v2・Secrets Manager含む)、Kubernetesシークレット、HashiCorp Vaultトークン、Stripe・Slack APIキー、SSHキー、Terraformステートファイル、.envファイルなど約200種のglob パターンでファイルシステム全体をスキャンする。
  • 情報の窃取・送信方法: 収集した認証情報はRSA公開鍵で暗号化したうえで、説明文に「Shai-Hulud: Here We Go Again」を含む攻撃者管理の公開GitHubリポジトリ(約1,300件確認)に送信する。GitHubへの送信が失敗した場合はEthereumスマートコントラクト(0xE1f2...3103)から動的に取得したフォールバックドメイン(npm-cache[.]com)へ送信され、インフラを任意に切り替えられる設計になっている。
  • 自己増殖(ワーム機能): 窃取したnpmトークンを使って被害者が公開権限を持つ全パッケージにパッチバージョンを1つ上げた悪意あるバージョンを自動公開する(二次感染はmath_init.jsを使用)。また、ghs_トークンを使って対象リポジトリの最大50ブランチに「chore: update config」というコミットメッセージで.vscode/tasks.jsonや.claude/settings.jsonに悪意あるフックを仕込み、VS CodeまたはClaude Codeを起動するだけでペイロードが実行されるようにする。
  • Aikidoによる検出と対策: Aikidoユーザーはセントラルフィードのマルウェアフィルターで重大度100/100として検出可能(手動再スキャン推奨)。非ユーザーは無料プランでも同機能を利用可能。将来的な予防策としてオープンソースの「Aikido Safe Chain」も提供されており、npm/yarn/pnpm等のインストール前にパッケージを検査できる。

【まとめ】 今回の攻撃は、正規メンテナーのアカウント侵害を起点に自己増殖するサプライチェーンワームであり、npm installを行うだけで多種多様な認証情報が窃取・横展開されるリスクがある。侵害されたパッケージ(keyv 6.0.0、flat-cache 6.1.24、file-entry-cache 11.1.6ほか)を利用している場合は直ちに安全なバージョンへのアップデートと認証情報のローテーションを実施し、IOC(setup.mjs・Math_Symbol.js・npm-cache[.]com等)に基づく侵害有無の確認を優先すること。

原文を読む

Aikido Security Blog

英語で詳細な技術情報を確認

原文を読む

コメント・質問

この記事についてのコメントや質問を投稿できます

コメントを投稿するにはログインが必要です

ログインする

読み込み中...