GitHub のリポジトリ 790 件で被害:クラウド証明書や AI API キーを窃取する GhostAction

Hackers Hijack 790 GitHub Repositories to Steal Cloud Credentials and AI API Keys

2026/10/20 CyberSecurityNews — GhostAction と呼ばれる攻撃キャンペーンによって、790 件の GitHub リポジトリに悪意のある GitHub Actions ワークフローが配置され、クラウドの認証情報/ソフトウェア公開用トークン/AI サービスの API キーが漏洩するリスクが生じている。この 790 件という数字は、2026年10月9日までの公開情報から OpenSourceMalware が検証したリポジトリの件数である。つまり、すべてのリポジトリにおいて、認証情報の漏洩などの被害が確認されたわけではない。

このキャンペーンで悪用されたのは、信頼された開発者のアカウントである。メンテナーのリポジトリへの書き込み権限を取得した攻撃者は、コードのプッシュ時や手動実行時に起動するワークフローの追加が可能になる。

これにより、ワークフローからアクセス可能なシークレットが漏洩し、そこで窃取されたアカウントが、クラウドシステム/パッケージレジストリ/他プロジェクトへの侵入経路となる。

OpenSourceMalware の研究者が新たに特定した攻撃は、”claudecord” という悪意の PyPI パッケージを調査し、そのメンテナーの対応を支援していた時だった。研究者たちは悪意のワークフローを発見し、数百件のリポジトリにまたがる関連活動を追跡した。

攻撃者が 790 件の GitHub リポジトリを乗っ取り

新たなワークフローは、特定の GitHub Actions シークレットを読み取るだけではない。リポジトリ内のファイルを検索し、AWS アクセスキーや、GitHub/GitLab/Google/Slack/SendGrid/OpenAI/Anthropic/OpenRouter のトークンなどの、認証情報に類似する文字列を収集する。

さらに、アクセス可能な Git の履歴もスキャンする。現在のファイルから削除されたキーであっても、過去のコミットに残っている可能性があるためである。

一連の履歴を取得するために、このワークフローは “fetch-depth: 0” を使用する。その後に、認証情報に類似したパターンを検索し、場合によっては AWS キー ID の前後の行も収集する。

これらの行には、対応するシークレット・キーや、アカウントまたはサービスに関する情報といった、有用なコンテキストが含まれている可能性がある。したがって、同じ収集処理によって、単独のキー文字列以上の情報が漏洩する恐れがある。

このワークフローは、暗号化されていない HTTP 通信を介して、攻撃者が管理するインフラへ向けて収集したデータを送信する。この転送は CI ランナーから行われるため、防御側がワークフローの変更や外部へのネットワーク通信を調査しなければ、通常のビルド処理と区別しにくい可能性がある。

以前の GhostAction の攻撃については、Cyber Security News の GhostAction サプライチェーン攻撃キャンペーンに関する報告が参考になる。今回の件数は、時間の経過とともに拡大してきたキャンペーンの状況を反映している。

GitGuardian は、2026年8月31日〜9月30日までの間に、772 件のリポジトリが影響を受けたと報告している。その後の、OpenSourceMalware の調査では、10月9日までに 790 件のリポジトリが確認された。この中には、現在は一般公開されていない可能性があるリポジトリも含まれる。

10月8日に発生した別の集中的な攻撃では、侵害された 2 つのアカウントに関連する 346 件のリポジトリで、Socket と StepSecurity が活動を確認したと報告した。これらの数字は、対象期間と証拠の範囲が異なるため、単純に合算すべきではない。

この集中的な攻撃には、”kitao” および “henrywoo” アカウントが所有するリポジトリに加え、Uber の “uber/athenadriver” も含まれていた。この攻撃は、現在も活動しているプロジェクト/フォーク/数年間更新されていなかったリポジトリにまで及んでおり、侵害されたアカウントで変更可能なリポジトリを、自動的に探索していた状況が示唆される。

報告書によると、一部の悪意のワークフローは正常に実行されていた。ただし、10月9日時点では、今回の新たな集中的攻撃に関連する、悪意の PyPI または crates.io パッケージのリリースは確認されていない。

ワークフローの削除だけでは不十分な理由

悪意のワークフローが正常に実行された場合には、そのファイルが後で削除されても、すでに認証情報が漏洩している可能性がある。ワークフローを削除するだけでは、窃取された GitHub トークンの失効や、クラウドやソフトウェア公開用のキーの無効化、過去のコミットに残る認証情報の削除は行われない。

対応するチームに求められるのは、関連するワークフロー・ファイル/実行ログ/コミット/監査記録を保全した上で、不正な変更を可能にしてしまったアカウントの認証情報を失効させ、ワークフローからアクセスできた全シークレットをローテーションすることである。また、影響を受けた期間のパッケージ公開/デプロイ/クラウド上の活動も確認する必要がある。

関連する事例として、Cyber Security News は GitHub Actions を悪用した PyPI トークンの窃取や、窃取された AI サービスキーによる金銭的リスクについて報じている。

GitHub の Actions の安全な利用に関するガイダンスでは、最小権限のアクセス/ワークフローコードのレビュー/漏洩したシークレットのローテーションを推奨している。機密性の高いワークフローの変更に承認を必須とし、ランナーのネットワーク・アクセスを制限することも、追加の防御策となる。

いまもキャンペーンで使用されている、情報収集用 IP アドレスに名前解決される “my-github[.]com” についても、OpenSourceMalware は優先度の高い侵害指標として特定している。報告書では、このドメインを不審としているが、GhostAction の攻撃者が登録したことまでは証明されていない。

類似する名前の GitLab 関連ドメインは、監視対象としてのみ記載されており、キャンペーンのインフラであるとは確認されていない。防御側は、検出アラートを作成する際にも、この違いを維持する必要がある。

侵害の痕跡 (IoC)
TypeIndicatorContext
SHA-2567fbd40446a82c77b23432c6ab73bd8595c98e90e4f4a473198b4d1256f3e8c4bclaudecord version 0.3.2 artifact
IP address193.32.204[.]199Current collection and scanning infrastructure
URLhttp://193.32.204[.]199/?c=monamiNewer workflow’s reported collection endpoint
URLhttp://193.32.204[.]199:3000/api/workflow/receive?inj=<id>Variant endpoint reported in seven repositories
Domainmy-github[.]comSuspicious domain resolving to the current IP; attribution not proven
Domain pattern*.my-github[.]comWildcard DNS; individual subdomains need corroboration
Domainmy-gitlab[.]comWatchlist only; not attributed to GhostAction
Historical IPs/domains170.39.218[.]2; 45.139.104[.]115; bold-dhawan.45-139-104-115.plesk[.]page; objective-hopper.45-139-104-115.plesk[.]page; carte-avantage[.]com; *.oast[.]funEarlier campaign infrastructure
Workflow paths.github/workflows/github_actions_security.yml; .github/workflows/security-check.yml; .github/workflows/security-audit.ymlReported malicious workflow paths; verify file contents and behavior
Text markersAKIA_CTX_START; AKIA_CTX_END; send-secrets; Prepare Cache Busting; git log -p --all 2>/dev/null \| head -200000; curl -s -m 20 -X POST --data-binaryPayload and collection markers identified in the report

注: IP アドレスとドメインは、意図しない名前解決やハイパーリンク化を防止するため、意図的に無効化された表記 (例:[.]) が使用されている。元の表記に戻す操作は、MISP、VirusTotal、SIEM など、管理された脅威インテリジェンスプラットフォーム内でのみ実施すること。