見出し画像

【緊急更新版】GitHub Actions + npm + PyPI サプライチェーン大規模攻撃「Mini Shai-Hulud」第三波(2026年5月20日最新)

⚠️ 本記事は公開情報・一次ソースに基づく速報まとめです。攻撃は現在進行中。随時更新予定。
🚨 Claude Code / VS Code ユーザーは「永続バックドア」セクションを必ず確認してください。


1. 事件概要

脅威アクター「TeamPCP」が主導する大規模サプライチェーン攻撃キャンペーン「Mini Shai-Hulud」の第三波が2026年5月19〜20日に集中発生しました。GitHub Actions・npm・PyPI の三正面にわたる攻撃が同時進行しており、現在も続いています。

今回の第三波で確認された主な攻撃面:

  • GitHub Actions側:`actions-cool/issues-helper`(全53タグ)と `actions-cool/maintain-one-comment`(全15タグ)が「Imposter Commit」にすり替えられ、CI/CDシークレットを窃取

  • npm側(@antvスコープ):Alibaba発のデータ可視化ライブラリ群が侵害。SafeDep調査で314パッケージ・631の悪意あるバージョンが確認

  • PyPI側(新規):Microsoft公式の `durabletask` Python SDK が侵害。同じTeamPCPインフラが使用されていることが判明

新機能として、VS Code の `tasks.json`Claude Code の `.claude/settings.json` に永続バックドアを書き込む機能が追加されており、感染後もセッションをまたいで機能し続けます。

攻撃全体で 2,700以上の不正GitHubリポジトリ(名前はDune宇宙の用語)が確認済み。攻撃は 現在進行中


2. 主なリンク元(一次ソース)


3. 時系列(最新)

2026年5月16日
TeamPCPが `git-service.com` ドメインを取得、C2サーバーのTLS証明書を発行。

2026年5月18日
`actions-cool/issues-helper` の全53タグが 3分16秒以内に Imposter Commitへ書き換えられる(タイムスタンプ 19:10:24〜19:13:40 UTC)。`maintain-one-comment` の全15タグも 39秒以内に 書き換え完了。Bunベースペイロードでシークレット窃取開始。同日、Nx Console VS Code拡張機能(220万インストール)も侵害(同キャンペーン関連)。

2026年5月19日

  • 01:56 UTC:AntV npm第一波(@antv系パッケージ)へのマルウェアバージョン公開開始

  • 02:06 UTC:第二波公開(信頼性向上版)。わずか22分間の連続公開で314パッケージ・631バージョンに感染

  • 16:19〜16:54 UTC:Microsoft `durabletask` PyPI SDK に悪意あるバージョン(1.4.1/1.4.2/1.4.3)が35分以内に連続公開

  • 17:54 UTC:GitHub Issueで侵害が報告される。Microsoftが対象バージョンをyank

  • StepSecurity / The Hacker Newsがactions-cool攻撃を公開報道

2026年5月20日
@nakajimeeee氏が第三波詳細を報告(VS Code/Claude Code永続化機能の確認、2,700+不正リポジトリ)。

(前波:2026年4月 SAP、5月初旬 TanStack・Mistral AI・Guardrails AI・LiteLLMなど)


4. 影響範囲

GitHub Actions側

タグ指定(`@v3` など)で以下のActionを参照しているワークフロー全体が対象。

  • `actions-cool/issues-helper`(全53タグ → Imposter Commitへ書き換え済み)

  • `actions-cool/maintain-one-comment`(全15タグ → 書き換え済み。GitHubが当該リポジトリをToS違反で利用停止済み)

盗取対象:GitHubトークン、AWS/GCP/Azure認証情報、SSHキー、K8sトークンなど。Runnerプロセスのメモリ(`/proc/*/mem`)から直接抽出するため、ログマスクを回避。

影響規模:ant-design、Vue.js、Vite、Electronなど中国語圏OSSを中心に数千〜数万リポジトリ。

npm側(@antv第三波)

`atool` npmアカウントが侵害され、以下の系統が広範に感染。

  • @antv スコープ:@antv/g2, @antv/g6, @antv/l7, @antv/s2, @antv/x6, @antv/graphlib など100以上のパッケージ

  • 関連パッケージ:echarts-for-react(週間110万DL)、timeago.js(週間150万DL)、jest-canvas-mock、size-sensor など

  • SafeDep調査:合計 314パッケージ・631の悪意あるバージョン(22分間の連続公開)

ペイロードの主な能力:

  • `preinstall` フックでBun実行 → `/proc/*/mem` 読み取りでシークレット窃取

  • `optionalDependencies` にGitリファレンスを挿入し、静的解析を回避

  • 盗んだGitHubトークンで不正リポジトリを大量作成(現在2,700+)

PyPI側(新規・同一キャンペーン)

Microsoft `durabletask` Python SDK(Azure Durable Functions公式 / 月間40万DL)

  • 侵害バージョン:1.4.1, 1.4.2, 1.4.3(いずれもyank済み)

  • ペイロード:28KB の `rope.pyz`(モジュール型クラウド侵入フレームワーク)

    • AWS Secrets Manager, Azure Key Vault, GCP Secret Manager, Kubernetes secrets を全列挙・窃取

    • パスワードマネージャー(1Password, Bitwarden, pass)を解除試行

    • AWS SSM / `kubectl exec` によるラテラルムーブメント(他インスタンスへの自動伝播)

    • 特定の地理的条件でディスク消去ワイパー発動(`rm -rf /*`)

  • C2ドメイン `t.m-kosche.com` が共通であることでTeamPCPとの紐付けが確認

  • ロシアロケール除外(`LANG=ru_*` なら実行スキップ):東欧サイバー犯罪グループの典型的手法

安全な条件

フルコミットSHA固定 + @antv系パッケージ未使用 + durabletask 1.4.0以下(または1.5.0以降が出るまで使用停止)。


5. 🚨 Claude Code / VS Code ユーザーへの特別注意

StepSecurityによる詳細分析で、ペイロードが以下のファイルに 永続バックドア を書き込むことが確認されています:

Claude Code:

  • `.claude/settings.json`:`SessionStart` フックを注入。Claude Codeを起動するたびにマルウェアが再実行

  • `.claude/setup.mjs`:セッション間で持続するセットアップスクリプト

VS Code:

  • `.vscode/tasks.json`:`folderOpen` タスクを追加。VS Codeでプロジェクトを開くたびにマルウェアが再実行

  • `.vscode/setup.mjs`:共有セットアップスクリプト

GitHub Actions:

  • `.github/workflows/codeql.yml`:悪意あるワークフローを注入。push/デプロイ時に全リポジトリシークレットを窃取

感染後にパッケージを削除しても、これらのファイルが残っている限りマルウェアは実行し続けます。


6. 対策方法

即時確認(感染チェック)

# 1. Actions ワークフロー確認
grep -r "actions-cool/issues-helper\|actions-cool/maintain-one-comment" .github/workflows/

# 2. npm 依存確認(@antv系 / echarts-for-react など)
grep -E "@antv/|echarts-for-react|timeago|jest-canvas-mock|size-sensor|lint-md" package-lock.json

# 3. PyPI durabletask確認(Azure系)
pip show durabletask  # 1.4.1〜1.4.3 なら要対応

# 4. 過去48時間のActions ログ確認
# → Bun ダウンロード / t.m-kosche.com 通信 / /proc/*/mem 読み取り がないか

# 5. 不正リポジトリ確認(GitHubで検索)
# https://github.com/search?q=niaga+og+ew+ereh+%3Aduluh-iahs&type=repositories

即時対応

  1. @antv系 / 関連パッケージ確認:package.json / lockファイルを検索 → 侵害バージョンは削除して `node_modules` 再インストール

  2. durabletask確認:1.4.1〜1.4.3 → `pip install durabletask==1.4.0`(1.4.0が最後のクリーン版)

  3. シークレットのローテーション:疑いがある環境の全CI/CDシークレットを即時変更

中長期対策

  • 全依存はSHA / バージョン固定を徹底

  • OIDC + 短寿命クレデンシャルを優先(長期APIトークンを廃止)

  • PyPI には Trusted Publishing (OIDC) を使用(直接トークンアップロードを禁止)

  • StepSecurity Harden-Runner / Socket Security / Dependabot を導入

  • CI/CDのネットワーク送信ホワイトリストを厳格化


7. 侵害インジケータ(IOC)まとめ

C2ドメイン・ネットワーク

両ドメインともStepSecurity Harden-Runner のグローバルブロックリストに追加済み。

感染シグナル

  • `npm install` 中に `bun run index.js` が実行される

  • `optionalDependencies` に `github:antvis/G2#<特定コミットSHA>` が存在する

  • Actions ログに `python3` が `/proc/*/mem` を読み取る記録がある

  • Dune宇宙の用語(atreides, harkonnen, sandworm など)を名前に持つリポジトリが自アカウントに作成されている

  • `.claude/settings.json` や `.vscode/tasks.json` が予期せず変更されている

  • `pgsql-monitor.service`(durabletask) または `~/.cache/.sys-update-check` が存在する


8. 重要な最新動向:Shai-HuludのOSS化で模倣犯が急増

TeamPCPは先週、Shai-Huludフレームワークのソースコードを公開し、BreachForumsで「サプライチェーン攻撃コンテスト」を開催しました。これにより独自C2インフラを持つ模倣犯グループが出現しており、正確な帰属調査が困難な状況になっています。

Datadogは「本番攻撃フレームワークのOSS化はOIDCトークン悪用、来歴偽造、AIツールへの永続化フックなど高度な手法の参入障壁を下げる」と警告しています。


9. 全体評価

信憑性:高(StepSecurity・The Hacker News・Microsoftが一次ソースとして詳細を公開済み)

影響度:高

  • npm/PyPI/GitHub Actionsを横断した史上最大規模のサプライチェーン攻撃のひとつ

  • 2,700+の不正リポジトリ作成により、盗まれたシークレットは既に悪用中と断定できる

  • Microsoft公式SDKが標的になったことで、PyPIエコシステム全体への信頼性が揺らいでいる

  • Claude Code / VS Codeへの永続化により、開発者個人マシンへの波及リスクが従来より高い

今後の注目点

  1. TeamPCP模倣犯による被害の拡大範囲

  2. GitHubのActions marketplace における対策強化の内容と速度

  3. PyPI Trusted Publishing への移行がどこまで進むか


本記事は一次ソースの更新に合わせて随時追記します。

参考一次ソース:

  • StepSecurity Blog(3記事)

  • The Hacker News(2記事)

  • @nakajimeeee X投稿 ID: `2056894146057810192`

  • SafeDep / Datadog / Trend Micro 各社レポート

#サイバーセキュリティ #サプライチェーン攻撃 #GitHubActions #npm #TeamPCP #MiniShaiHulud #開発者向け

いいなと思ったら応援しよう!

zephel01 サーバー代とコーヒー代になります☕ 役に立ったら応援よろしくお願いします!