サプライチェーン攻撃 GhostAction-GitHubワークフロー改ざんで秘密情報3,325件流出

セキュリティニュース

投稿日時: 更新日時:

サプライチェーン攻撃 GhostAction-GitHubワークフロー改ざんで秘密情報3,325件流出

2025年9月GitGuardianが「GhostAction」と名付けたサプライチェーン攻撃、GitHub Actionsのワークフローそのものに悪性ファイルを差し込み、実行時にレジストリやクラウドのシークレットを外部へPOST送信して抜き取る手口が確認されています。

調査の起点はFastUUIDという小さなプロジェクトでしたが、ふたを開けると327ユーザー/817リポジトリに波及し、3,325件ものシークレットが吸い上げられていました

概要

最初に見つかったのは、侵害を受けたFastUUIDのメンテナーである GitHub ユーザーの Grommash9 は、2025 年 9 月 2 日に「Github Actions Security」というタイトルで悪意のあるコミットをプッシュしました。

pushworkflow_dispatchをトリガーに、CIの実行環境に注入されたスクリプトがcurl -X POSTsecrets.PYPI_API_TOKENなどの値をひとまとめに攻撃者のサーバへ送ります。

正規のCIではそのトークンをPyPI公開に使っているため、もし悪用されればパッケージのすり替えに直結するところでしたが幸い、このリポジトリでは気づくのが早く、直近の不正リリースは確認されていません。

広がりと被害の実相

GitGuardianの調査の結果、FastUUIDは氷山の一角でした。

似たコミットが同日中に多数の公開/非公開リポジトリへ投下され、ワークフロー内の“シークレット名”は各プロジェクトの正規設定を下見したうえで個別にハードコードされています。

結果として漏洩したのは、DockerHubやGitHubのトークン、npmやPyPIの発行トークン、場合によってはCloudflareや社内SaaS、さらにはAWSキーやデータベース資格情報まで。いくつかの組織ではSDK群が横並びで侵害され、Python/Rust/JavaScript/Goの複数言語にまたがってワークフローが差し替えられていました。

GitHubやPyPI、npmの各チームには通報済みで、多くのリポジトリがすでに巻き戻しやトークン失効を進めていますが、レジストリ側に「将来的に危ない」パッケージがnpmで9件、PyPIで15件ほど残っている、という見立ても出ています。

なお、GitGuardianの集計では、本キャンペーン全体で少なくとも3,325件の秘密情報が窃取されています。

内訳としてはDockerHub資格情報、GitHubトークン、npmトークンの比率が高く、継続的なサプライチェーン汚染(悪性パッケージ公開・アカウント乗っ取り・権限横展開)に直結するリスクがあります。即時のトークン失効と再発行、およびレジストリ側の不審公開の有無確認を最優先で実施してください。

紛れ込むと気づけない

この攻撃は、ソースコードを汚すよりも先に配布の段取りを狙います。

Actionsは「いつ」「どのブランチで」「誰の権限で」回るかが細かく決められていますが、そこに1つでもワークフローが紛れ込むと、通常の開発フローに溶け込んだまま秘密情報が吸い出されます。

長期に有効なトークンがCIに常在していれば、攻撃者はレジストリやクラウドへの次の一手を短時間で打てます。防御側の視点では、リポジトリのコードレビューをすり抜けた設定変更として現れるで、コードサイドの静的解析だけでは捕まえにくく厄介です。

出典

The GhostAction Campaign: 3,325 Secrets Stolen Through Compromised GitHub Workflows