
2026/10/26 4:10
Gheist キャンペーンが盗まれた GitHub トークンを使用して機密データをダンプするワークフローを植付ける
RSS: https://news.ycombinator.com/rss
要約▶
日本語翻訳:
概要:GitHub は現在、アカウントトークンを窃取して機密データを秘密裏に収集するためのもので、Gheist と呼ばれるサイバー攻撃キャンペーンが活発化しています。GhostAction キャンペーンとは異なり、Gheist は
ci-sync-[0-9a-z]{6} といった欺瞞的なブランチ名を持ち、ci: sync config といったコミットメッセージを伴う悪意のある自動化されたワークフローを植えることで、プライベートリポジトリを特定の標的にしています。2026 年末以降、研究者はこの攻撃グループが 850 以上のアカウントにわたって認証情報を窃取し、13,500 を超の疑わしいブランチを植えたことを追跡しています。Gheist は IP アドレス 193.32.204[.]199 を標的とした GhostAction キャンペーンなどの他のキャンペーンとは異なりますが、先ほどまでのサプライチェーンインシデントから得られた機密情報を利用して標準的なセキュリティ統制を回避しています。GitHub はいくつかの侵害されたアカウントのうち約 2/3 を無効化しましたが、承認チェックが無効な残りのプライベートリポジトリに対する脅威は依然として続いています。これらのリスクを軽減するため、セキュリティチームはログを検査して迅速なワークフロー削除を早期に検知し、プッシュされたトークンを直ちにローテーションする必要があります。さらに、企業は古い機密情報を無効にし、セルフホスト型ランナーを侵害されたものとして扱うべきであり、-production 環境では Docker ソケットへのアクセスを厳格にブロックすることで、さらなる不正なクラウドインフラストラクチャ操作を防ぐ必要があります。特定の検出指標には、「gheist」ユーザーエージェント、「toJSON(secrets) }}' | base32 -w 120」といったマーカ、既知の SHA を持つワークフロービlobs(例:f3da2b8b...)、AI プロバイダトークンや Terraform ステートファイルを扱うアクティビティが含まれます。Wiz Defend は、「New Workflow Completed And Deleted In Short Time Span」や「Commit Created With Known Malicious Commit Message」といったルールを通じてこの活動を検知します。本文
GitHub トークン侵害キャンペーン「Gheist」:2026 年最新状況と対策
Wiz Research は、2026 年 9 月 15 日以降にハッキングされた GitHub トークンを大規模に悪用する新たなキャンペーン**「Gheist」**を監視し続けています。 この攻撃において重要な事実は以下の通りです:
- 機密情報の漏洩方法: 各トークンがアクセス可能な全リポジトリに対し、
という名のワークフローをコミットします。同ワークフローは自身のログに機密情報を出力し、専用ツールが GitHub API を経由してダウンロードした後に削除します。sync-check - キャンペーン名の由来: ツールのユーザーエージェント(User-Agent)に**「gheist」**が含まれているため、この名前で呼ばれています。
攻撃の規模と現状
Wiz は個人プロジェクトから企業組織のプライベートリポジトリまで幅広く調査を行いました。主要な成果は以下の通りです:
- 回収されたデータ:
- 約13,500 個の植え付けられたブランチを回収。
- 元となるハッキングされたアカウントは850 以上。
- 現状の状況(2026 年 10 月 24 日時点):
- GitHub はパブリックリポジトリに対して是正措置を講じましたが、プライベートリポジトリや GitHub Enterprise 環境での悪用は引き続き確認されています。
- 攻撃手法は継続的であり、進化を続けています。
- 関係が疑われるアカウントの約 3/4 が既に使用不可(GitHub から制限)の状態です。
攻撃の仕組み
本ツールは、以下の手順で各リポジトリに対して攻撃を実行します:
- ブランチ作成:
に続けてランダムな 6 文字を付加したブランチを作成。ci-sync- - ファイルコミット:
を「ci: sync config」というメッセージでコミット(署名なし、トークン所有者名義)。.github/workflows/sync-check.yml - トリガー: プッシュイベントによりワークフローが自動実行。
機密情報が漏洩する理由
攻撃が成功し機密情報がフルテキストとして表示される 3 つの要素は以下の通りです:
- ログの表示制限: GitHub は文字列としての機密情報はマスキングしますが、BASE32 エンコードされた情報には適用されません。
- 権限設定の無効化:
でワークフローの権限を制限しても、permissions: {}
コンテキストへの適用はありません。secrets - デプロイメント環境の暴露: リポジトリにデプロイメント環境が設定されている場合、環境スコープの認証情報(本番環境など)もログに出力されます。
重要: 機密情報は GitHub API を経て外部に流出するため、ブロック対象となる攻撃者ドメインや外向き接続は存在しません。
企業組織内での悪用
ツールが数分以内でトークンを周回しブランチを植え付けるのに対し、後には以下の活動も確認されています:
- AWS Secrets Manager の列挙: 同じ組織から発行されたクラウド認証情報を用いて、AWS セcrets を抽出する活動。
- 並行した攻撃バリエーション: ブランチ名の接尾辞で区別可能な 2 つのツール(ツール A とツール B)が観測されています。
ツール A と ツール B の違い
| 特徴 | ツール A (単純形) | ツール B (進化形) |
|---|---|---|
| 接尾辞 | ヘキサデシマル(16 進数) | BASE36 |
| 初期設定 | 基本的なペイロード | 初回から と環境マトリックスを追加 |
| 変更戦略 | 固定された処理 | リポジトリごとに選択するペイロードを変更 |
| 特殊な追加 | なし | 10 月 19 日以降、ログパーサー用区切り文字 を追加 |
ツール B の高度な活動(セルフホスト型ランナー)
ツールの後続ジョブ「sync-host」は、登録済みのセルフホスト型ランナーのみを対象とし、以下のファイルを記述して徹底的に情報を収集します:
- 主要ファイル:
,.gdmp_pat
,.gdmp_patg.gdmp_sweep - ログ出力ヘッダー:
===== gdmp-pivot: <stage> =====
収集対象の詳細(gdmp-pivot)
- システム情報: ホストの詳細、crontab。
- 認証情報の検索:
- AI プロバイダ(Anthropic, Hugging Face, Groq, NVIDIA など)のキーを含む 31 形式のトークン。
- 秘密鍵、
ファイル、Terraform ステート、シェル履歴。.env
- プロセス情報:
を経由して全プロセスの環境情報を収集。/proc/*/environ - コンテナ環境: Docker ソケット経由で、マウントされたルートファイルシステム内での同様の検索。
- クラウドメタデータ: AWS インスタンスロール、GCP および Azure のメタデータ。
- その他: GitHub Actions/GitLab ランナーの認証情報、Kubernetes サービスアカウントトークン。
注意: このジョブにはバグがあり、正しいランナーキーファイルを探索できず、GCP/Azure トークンの収集に失敗することがあります。
GitHub の承認保持とプライベートリポジトリ対策
2026 年 7 月 28 日以降、GitHub はパブリックリポジトリにおいて悪意のあるワークフロー実行を承認(Co-author approval)まで保留する仕組みを導入しました。
- パブリックリポジトリでの成果:
- Gheist のすべての活動(バリエーション含め)は
ステータスにあります。action_required - 悪意のあるペイロードが一度も実行されていないため、有効です。
- Gheist のすべての活動(バリエーション含め)は
- プライベートリポジトリおよび GitHub Enterprise Server ではこの対策は適用されません:
- 実行記録がログから削除される前、「ci-sync-*」ブランチでの完了直後に
ユーザーエージェントによる削除活動が見られます。gheist - CloudTrail は、組織固有のワークフローが AWS ロールを仮定して実行されたことを示しており、承認なしで Actions が動いたことを証明します。
- GitHub ログが収集できない場合でも、このシグナルで Gheist の特定が可能になります。
- 実行記録がログから削除される前、「ci-sync-*」ブランチでの完了直後に
同一アカウントでのその他の活動(クロスキャンペーン)
被害を受けたアカウントは「Gheist」としてだけでなく、以下の他のキャンペーンや脅威アクターのエコシステム内でも利用されています:
- 仕掛けられたリポジトリ(マルウェア配布):
- 10 月 6 日、391 のアカウントが
やfl-studio-crack
などの名前に変更されました。solana-sniper-lite - これにより 610 の「ci-sync」ブランチが副次的に削除され、被害範囲は Gheist フットプリントより大きい可能性があります。
- 10 月 6 日、391 のアカウントが
- 無料計算資源(クリプトマイニング):
- 10 月 18 日、25 つのアカウントが「Windows RDP Runner」という名前のリポジトリを作成し、無料サイクルを悪用しようとしました。
- PolinRider(北朝鮮関連マルウェア)への感染:
- ビルド設定ファイル内に JavaScript を隠蔽し、遡りコミットを強制プッシュします。
- Gheist コミットを再プッシュして
にローダーを付加するケースが確認されています。vite.config.js
- Megalodon(既知の侵害)との重複:
- Gheist の第 1 フェーズからのアカウントの一部が、同年 5 月の Megalodon 被害者でもあったことが判明しています。
注記: Gheist は機密情報を
に流出させる異なるワークフローファイルを使用する「GhostAction」とは異なります。193.32.204[.]199
セキュリティチームが取るべきアクション
調査(Hunt)
- ブランチ探索:
のブランチを特定し、変更点がci-sync-[6文字]
の追加のみでコミットメッセージが「ci: sync config」のものを探す。.github/workflows/sync-check.yml - ログ分析: GitHub 監査ログで、「ci-sync-*」ブランチでの完了から 1 分以内に削除されたワークフローや
ユーザーエージェントを検索。gheist - クラウド監視: OIDC 認証の場合、Cloud Audit Logs で
ブランチを主体とするロール仮定やトークン交換を確認(GitHub ログなしでも検出可能)。ci-sync- - セルフホストランナー調査: ホスト上またはそのインスタンスで
ファイルやログ内の文字列「gdmp-pivot」を探る。.gdmp_pat
対応(Respond)
- 認証情報のローテーション: 影響を受けたリポジトリ、組織、環境の全機密情報を再発行してください。実行記録削除は復旧しません。
- トークンの取消し: コミットしたトークンを無効化し、所有者端末で情報-stealer の有無を確認。
- セルフホストランナーの隔離: 「ci-sync」ブランチがセルフホストランナー上を実行した場合、ホストとインスタンスロールを侵害済みとみなして対応してください。
- 承認保留中の処理: 保持されている「sync-check」実行は承認せず、「ci-sync」ブランチからのコードを実行しないでください。
強化(Harden)
- 環境設定: 本番環境の機密情報を持つワークフローには必ずレビューャーを設定してください。
- OIDC 制限: OIDC の信頼ポリシーを保護されたブランチまたは環境にのみ制限。
- トークンの粒度: 個人アクセストークンではなく、GitHub Apps または短寿命で細かい粒度のトークンを使用。
- ランナー構成: セルフホストランナーは Docker ソケットや無制限のメタデータアクセスなしのエフェメラールートとして実行。
侵害指標(Indicators of Compromise)
以下の指標に一致するものを検出・処理してください:
- ユーザーエージェント:
gheist - ブランチ名:
(「ci-sync-」に続いて小文字の英数字 6 文字)^ci-sync-[0-9a-z]{6} - コミットメッセージ: 「ci: sync config」かつ変更点が
の追加のみ。.github/workflows/sync-check.yml - マーカー:
- コード内:
およびtoJSON(secrets) }}' | base32 -w 120===== gdmp-pivot: - ファイル:
,.gdmp_pat
,.gdmp_patg.gdmp_sweep
- コード内:
ワークフロー Blob SHAs
以下の SHA ハッシュを持つワークフローファイルは危険です(環境マトリックス変種は別):
# 単純形 f3da2b8b357dcda02fd455d314be2a95007516a6 # タイムアウト追加形 d09535857a741bbb976bdc084a9a021713133291 # 区切り文字追加形 1dc5af9cce950aad1eb1546ecce8565b117540c4 # セルフホスト型ジョブ形 c665b778b2d822453293003e7ca0bbb2cb08e39d
Wiz が提供する支援
Wiz Threat Center は以下の Event Explorer クエリを提供しており、植え付けられたコミット、GitHub 監査ログ内の活動、クラウドロール仮定をすべてカバーします。
Wiz Defend のルールで検出される具体的な活動は以下の通りです:
- New Workflow Completed And Deleted In Short Time Span(短期間で完了後すぐに削除された新規ワークフロー)
- Workflow Pushed With Secret Dump(機密ダンプを含むワークフローのプッシュ)
- Commit Created With Known Malicious Commit Message(既知の悪意あるコミットメッセージでのコミット作成)