概要
- 2026年5月19日、 npmアカウント atool が 大規模に侵害 され、317パッケージに637の悪意あるバージョンが公開
- 主要パッケージ (size-sensor、echarts-for-react等)が自動化された攻撃で汚染
- Mini Shai-Huludツールキット 利用、 認証情報収集と二重流出経路 を実装
- CI/CD環境・AIエージェント・VS Code などにも永続化を仕込む
- 脅威の指標(IoC) と 影響範囲、 検知・防御策 について解説
npm atoolアカウント侵害の全貌
- 2026年5月19日、 atool([email protected]) のnpmアカウントが 攻撃者に乗っ取られ、22分間で 637の悪意あるバージョン が 317パッケージ に自動公開
- 被害パッケージ例:
- size-sensor (月間4.2Mダウンロード)
- echarts-for-react (3.8M)
- @antv/scale (2.2M)
- timeago.js (1.15M)
- @antv系パッケージ 多数
- payload は 498KBの難読化Bunスクリプト、SAP事案で使われた Mini Shai-Hulud と同一構造
攻撃フロー
- preinstallフック (bun run index.js)でpayload実行
- optionalDependencies で GitHub imposterコミット から二重にpayload配布
- antvis/G2リポジトリ の孤立コミットを利用、正規コミット履歴には現れない
- npm github:依存解決 の仕様を悪用し、SHA指定でpayload取得・実行
収集・流出対象
- AWS認証情報 (env/config/EC2/ECS/SecretsManager)
- Kubernetesサービスアカウントトークン
- HashiCorp Vault・GitHub PAT・npmトークン・SSH鍵
- ローカルパスワードマネージャ(1Password/Bitwarden/pass/gopass)
- GCP/Azure/DB/Stripe/Slack/Docker認証情報
- CI/CDのOIDCトークン交換・Sigstore署名 で 正規署名アーティファクト も生成
データ流出経路
- 2系統の並列流出:
- GitHubパブリックリポジトリ へのGitオブジェクトコミット
- User-Agent: python-requests/2.31.0
- Duneシリーズ由来の命名パターン のリポジトリ
- RSA+AES暗号化HTTPS POST (OpenTelemetryトレース偽装)
- t.m-kosche[.]com/api/public/otel/v1/traces
- GitHubパブリックリポジトリ へのGitオブジェクトコミット
永続化・拡散
- .github/workflows/codeql.yml へ「Run Copilot」ワークフロー注入
- secretsダンプ→アーティファクト化→自己削除
- Claude Code/Codex/VS Code に SessionStart/タスクフック を仕込み再感染
- systemd/macOS LaunchAgent で kitty-monitorサービス 設置
- GitHub dead-drop C2 (commitメッセージ署名コマンドで遠隔操作)
- gh-token-monitor で GitHubトークンを60秒ごと監視
- Dockerソケット経由でホスト脱出・他Node.jsプロジェクトへ拡散
IoC(侵害指標)
- 2026-05-19 01:44〜02:06 UTC に atool が公開した全パッケージ
- preinstall script: bun run index.js
- Payload SHA256: a68dd1e6a6e35ec3771e1f94fe796f55dfe65a2b94560516ff4ac189390dfa1c
- antvis/G2 の孤立コミット(例:1916faa365f2788b6e193514872d51a242876569)
- optionalDependencies: @antv/setup: github:antvis/G2#<commit-sha>
- exfilリポジトリ命名: {word1}-{word2}-{number}(Dune語句組み合わせ)
- HTTPS exfil: t.m-kosche[.]com/api/public/otel/v1/traces
- EC2/ECSメタデータへのHTTPリクエスト
- chore/add-codeql-static-analysis ブランチ
- .github/workflows/codeql.yml (Run Copilot名)
- claude/settings.json /VS Code tasks.jsonへのフック
- kitty-monitor/gh-token-monitor/cat.py 等のファイル
影響範囲とリスク
- semver範囲指定(例:^3.0.6) のプロジェクトは 自動的に汚染バージョンを解決
- CI/CD・AIエージェント・VS Code など 多様な環境で再感染・永続化
- 正規署名付きアーティファクト も作成され、 検知困難
防御・検知策
- 侵害期間中のatoolパッケージ利用停止・ロックファイル監査
- pmg(Package Manager Guard) 等の インストールプロキシ で burst公開対策
- .github/workflows/codeql.yml 等のワークフロー・設定ファイル監査
- 永続化プロセス・ファイル(kitty-monitor等) の有無チェック
- GitHubリポジトリ・コミットメッセージ監査(firedalazer等)
- CI/CD・開発環境の認証情報再発行・ローテーション
まとめ
- npmサプライチェーン攻撃の最新手法 が高度化し、 認証情報流出・永続化・再感染 の複合攻撃が現実化
- 攻撃者はnpmの仕様・GitHubの運用・CI/CDの脆弱性を多層的に悪用
- 開発者・運用者は依存パッケージ管理・CI/CD監査・認証情報管理の強化が急務