10月10日、GBHackersが「GhostAction Hackers Compromise 500+ GitHub Accounts to Steal Cloud and AI API Credentials」と題した記事を公開した。500超のGitHubアカウントが侵害され、数万リポジトリに不正なワークフローが注入された「GhostAction」キャンペーンは、uber/athenadriverやkitao/pyxelといった著名OSSをも標的に取り込み、AWS・AI系APIを含む13種のクレデンシャルパターンを組織的に窃取するものだ。なお、元記事URLにはcredits(APIクレジット=利用枠)とあり、単純なキー文字列の窃取にとどまらず利用枠そのものの不正消費も含意している可能性がある点は留意されたい。
GitHub Actionsの「信頼」を悪用する巧妙な手口
GhostActionキャンペーンは2026年10月7日以降に急拡大し、現時点で500超のGitHubアカウントが侵害、数万リポジトリに不正なワークフローが注入されている。セキュリティ企業Socketが10月9日付のレポートで詳細を公開した。
最初に観測された10月8日の攻撃では、メンテナーアカウント「henrywoo」と「kitao」が侵害され、346リポジトリに影響が及んだ。対象にはuber/athenadriverやkitao/pyxel(Pythonゲームライブラリ)といった著名OSSも含まれており、コントリビューター権限がいかに組織所有プロジェクトへの侵入経路になり得るかを示している。
攻撃者がどのようにして初期の認証情報を取得したかは、Socketの調査でも特定されていない。 この初期侵入経路の不明確さは、本キャンペーン全体の解明における最大の未解決問題であり、同様の手口による再発リスクを評価する上でも重大な空白となっている。フィッシング・認証情報スタッフィング・既存マルウェアによる窃取など複数の可能性が残されたままだ。
「security-audit.yml」という名の罠
攻撃者がリポジトリのデフォルトブランチに直接コミットするファイルは .github/workflows/security-audit.yml(または github_actions_security.yml)で、コミットメッセージはAdd security audit workflowのように無害を装っている。
このワークフローの特徴は以下のとおりだ。
pushイベントで無条件に起動(ブランチやパスの制限なし)workflow_dispatchで手動実行も可能- デプロイ前に攻撃者が既存ワークフローを調査し、参照されているActionsシークレット名をリストアップした上でペイロードに埋め込む
Pyxelリポジトリでは、CARGO_REGISTRY_TOKEN、PERSONAL_ACCESS_TOKEN、PYPI_PASSWORD、PYPI_USERNAMEが標的となり、GitHub・PyPI・crates.ioにまたがる認証情報の流出リスクが生じた。
Gitの「歴史」まで掘り起こすスキャン機能
今回の新変種が特に厄介なのは、リポジトリのコミット履歴までスキャンする機能を追加している点だ。
actions/checkout@v4にfetch-depth: 0オプションを指定することで全ブランチ・タグの履歴を取得し、git log -p --allの出力を解析する(バッファ上限は20万行)。これにより、現在のファイルからは削除済みであっても、コミット履歴に残っているシークレットを発見できる。
対象となる認証情報は13種のパターンに及ぶ。
| カテゴリ | 対象 |
|---|---|
| AWS | アクセスキーID・シークレットキー・セッショントークン |
| AI系API | Anthropic・OpenAI・OpenRouterのAPIキー |
| ホスティング | GitHub・GitLabトークン |
| その他 | Google・Slack・SendGridの認証情報 |
さらに、AWSアクセスキーIDを発見した際は前後2行のコンテキストも取得する。これによりシークレットアクセスキーが隣接している場合に組み合わせで回収でき、単体のIDだけでなく実際に使用可能なクレデンシャルセットを入手できる。
収集したデータはリポジトリ識別子とともに、hxxp://193.32.204[.]199/?c=monamiへHTTP POSTで平文送信される。
検出のための侵害指標(IoC)
| 種別 | 値 | 説明 |
|---|---|---|
| ワークフローパス | .github/workflows/security-audit.yml |
セキュリティ監査を装った不正ファイル |
| ワークフローパス | .github/workflows/github_actions_security.yml |
代替の不正ファイルパス |
| コミットメッセージ | Add security audit workflow |
注入時のコミットメッセージ |
| コミットメッセージ | Update security audit workflow |
更新時のコミットメッセージ |
| リクエストマーカー | REPO= / AKIA_CTX_START / AKIA_CTX_END |
流出リクエスト内の識別子 |
| C2 IPアドレス | 193.32.204[.]199 |
攻撃者制御の送信先 |
※IPアドレスはDefang(無害化)表記。MISP・VirusTotal・SIEMなどのTI基盤内でのみ再ファングして使用する。
対処すべきこと
Socketは影響を受けたリポジトリの管理者に対して、以下の対応を推奨している。
- 注入されたワークフローファイルの削除
- ワークフローの実行ログ確認
- 侵害されたアカウントのアクセス権限の取り消し
- Actionsシークレットとコミット履歴上の認証情報の両方をローテーションする
- パッケージリリースの監査、AWS CloudTrailアクティビティの確認
- 流出先IPのブロック、シークレットスキャン+プッシュ保護を有効化する
- 影響を受けたフォークの確認後にActionsを有効化する
- 組織全体でのアカウント権限の棚卸し
なお、SocketはPyxelリポジトリでのワークフロー実行を確認しているものの、この活動に起因するPyPIやcrates.ioへの不正リリースは現時点で観測されていないという。
OpenAIやAnthropicのAPIキーが標的に含まれている点は、AIインフラのコスト(APIの不正利用は高額請求に直結する)を狙った攻撃として注目に値する。GitHubのシークレットスキャン機能(プッシュ保護を含む)が未設定のリポジトリは、今すぐ設定を見直すべきだ。
詳細はGhostAction Hackers Compromise 500+ GitHub Accounts to Steal Cloud and AI API Credentialsを参照していただきたい。