GhostActionによる攻撃、GitHub開発者アカウントを侵害

「GhostAction」キャンペーンを展開する攻撃者が、GitHubの開発者アカウント2件の乗っ取りに成功しました。攻撃者はわずか数時間のうちに、少なくとも345のリポジトリへ悪意あるスクリプトをひそかに仕込んでいます。このスクリプトは、GitHub Actionsからトークンや暗号鍵を組織的に盗み出します。さらに、このマルウェアの最新版はプロジェクトの履歴全体を徹底的に走査します。その結果、現行のコードベースからはすでに削除されていた過去の認証情報までもが、深刻な形で侵害されました。

10月の攻撃の全容

この高度な攻撃は、10月8日に2つの波に分かれて短時間のうちに実行されました。まず攻撃者は開発者Takashi Kitao氏のアカウントを乗っ取り、27のリポジトリに悪意あるペイロードを仕込みました。約8時間後には、侵害したHenry Wu氏のアカウントを使って、同一のスクリプトを新たに318のプロジェクトへ展開しています。この大規模な第2波は、わずか16分で完了しました。

攻撃者は、プルリクエストの作成やピアコードレビューの待機といった通常の手順を踏んでいません。正規の開発者アカウントを悪用し、悪意ある変更をメインブランチへ直接コミットしました。たとえばHenry Wu氏が持っていた高い権限により、uber/athenadriverリポジトリには、正規のコントリビューターを装って悪意あるファイルがすんなりと組み込まれています。

シークレットと履歴データの窃取

悪意あるスクリプトは「security-audit.yml」という無害そうな名前を付け、定例のセキュリティ検証プロセスを装っていました。実行されると、自動化タスクが外部サービスの認証に使うトークン、APIキー、重要な認証情報など、GitHub Actionsのシークレットを手当たり次第に収集します。続いてGit履歴全体をダウンロードし、過去のコミット、ブランチ、タグに埋もれて残っている鍵を執拗に探し出します。

この徹底した履歴の探索により、被害が及ぶ可能性は飛躍的に拡大します。開発者がAPIキーを誤ってコミットし、次のリビジョンで削除した場合でも、その文字列はGit履歴に残っている可能性が高いためです。GhostActionは、まさにこうしたデジタルの痕跡を掘り起こすよう設計されています。標的リストには、AWSキー、GitHubおよびGitLabのトークン、GoogleおよびFirebaseの認証情報、SlackおよびSendGridのトークンのほか、価値の高いAnthropic、OpenAI、OpenRouterのAPIキーまでが含まれていました。

スクリプトは、窃取した情報を標準的なHTTPリクエストでIPアドレス193.32.204.199へ送信しました。uber/athenadriverの実行ログからは、実行のわずか4秒後に攻撃者のサーバーがペイロードを受信したことが確認されています。この送信だけでは、特定のリポジトリから実際に有効な鍵が何件抜き取られたかは分かりません。それでも、悪意あるコードの展開が成功したことは間違いなく裏付けられます。

pyxelプロジェクトでは、スクリプトが5回実行されました。このうち3回は、攻撃者が乗っ取ったアカウントから送信したコミットによって起動され、残る2回は手動で開始されたものです。標的となったのは、PyPIやcrates.ioへパッケージを公開するための認証情報と、個人用のGitHubトークンでした。GitGuardianの研究者は、この分析の時点では、盗まれた鍵を使って公開された悪意あるパッケージのリリースを確認していません。

拡大を続けるGhostActionの規模

10月9日時点で、GitHubの検索では378のリポジトリのメインブランチに悪意あるスクリプトが残っていることが判明しました。ただし、この数字は実際の被害規模を大きく過小評価しています。検索ではフォークされた多数のプロジェクトを把握できないうえ、感染したリポジトリの管理者が悪意あるファイルを順次削除しているためです。このため研究者は、被害総数の精査を続けています。

GhostActionは数年にわたって活動を続ける持続的な脅威であり、典型的なサプライチェーン攻撃です。この種の攻撃では、開発者を侵害することで、ソースコードや重要なビルド基盤、機密性の高いプロジェクトの認証情報に直接アクセスできてしまいます。2025年9月には、StepSecurityの研究者が、攻撃者が817のリポジトリに侵入し、少なくとも3,325件のシークレットを外部へ持ち出したことを報告しました。今回の悪意ある活動は、10月の急増にとどまりません。8月31日から2026年9月30日にかけて、アナリストは旧版の悪意あるスクリプトに感染した772のリポジトリを確認しています。

攻撃者がこれらの開発者アカウントを最初にどのように掌握したのかは、まだ確認されていません。研究者は、以前に盗まれたアクセストークンや、パスワード窃取マルウェアが収集した大規模データベースに含まれる認証情報が使われたとみています。ただし、今回の攻撃の具体的な侵入経路を示す確かなフォレンジック上の証拠は、いまだ見つかっていません。

影響を受けたプロジェクトの管理者は、すべてのブランチから悪意あるスクリプトを徹底的に削除し、GitHub Actionsの実行履歴を厳格に監査したうえで、不正アクセスの発端となった認証情報を直ちに失効させるよう強く求められています。現在有効なシークレットをローテーションするだけでは、もはや十分な対策とはいえません。重要な鍵がリポジトリの履歴に一度でも存在していた場合は、完全に侵害されたものとみなし、ただちに交換する必要があります。

翻訳元: https://meterpreter.org/ghostaction-github-developer-hack/

本記事は meterpreter.org の記事を翻訳・要約したものです。