研究者ら、GitHubリポジトリ790件を狙う「GhostAction」サプライチェーン攻撃を確認

OpenSourceMalware(OSM)は、GhostActionキャンペーンが新たに拡大していることを明らかにしました。

攻撃者はGitHubアカウントを乗っ取り、そのアカウントが書き込み権限を持つすべてのリポジトリに悪意あるActionsワークフローを仕込んで、CI/CDのシークレットを盗み出します。

OSMは10月9日までに790件の被害リポジトリを確認しており、この数字は公開情報から把握できる下限値だとしています。

GhostActionは2025年にGitGuardianが初めて報告しました。ワークフローはプッシュ時または手動実行時に動作し、パッケージ公開用、クラウド、GitHub、AIサービスの認証情報を攻撃者が管理するインフラへ送信します。

OpenSourceMalwareが公開した分析によると、OSMは悪意あるPyPIパッケージclaudecordのメンテナーを支援する過程で、この新たな攻撃の波を発見しました。バージョン0.3.2には、.github/workflows/github_actions_security.ymlが含まれています。

このファイルは、名前を指定したデプロイ用、npm、PyPIのシークレットをhttp://193.32.204[.]199へPOST送信します。GitGuardianは8月31日から9月30日までに772件のリポジトリを報告しました。OSMはこの期間内で717件を確認しており、その後も感染は続いています。

SocketとStepSecurityは、10月8日に自動化された2回の一斉攻撃があったことを突き止めました。

henrywooによる一斉攻撃では、ソースリポジトリ39件、フォーク279件、uber/athenadriverが対象になりました。標的の中には約10年間更新されていないものもありました。このことから、特定のプロジェクトを狙ったのではなく、書き込み可能なGitHubリポジトリを自動的に列挙したとみられます。

athenadriverへのコミットは、レビューを経ずにmasterへ直接反映されました。正規のメンテナーの身元を装っていましたが、署名はありませんでした。Socketは、公開時点でワークフローの実行成功を確認していますが、この波に伴う悪意あるPyPIパッケージやcrates.ioのリリースは確認していません。

新たなsecurity-audit.ymlは、3種類の収集処理を組み合わせています。1つ目は、Bashの実行前にGitHubが展開する、名前指定のActionsシークレットです。2つ目は、チェックアウトしたツリー内でAWS、Anthropic、OpenAI、OpenRouter、GitHub、GitLab、Google、Slack、SendGridの認証情報を正規表現で探して得た一致結果です。3つ目は、git log -p –allの出力から得た一致結果で、上限は20万行、一意の一致300件までです。これにより、開発者が削除済みの認証情報も回収できます。

さらに、AWSキーIDの前後2行も取得します。収集したデータはすべて、curl –data-binaryを使い、暗号化されていないHTTPで193.32.204[.]199/?c=monamiへ送信します。

送信内容の先頭には必ずリポジトリ名が付くため、実行されるたびに、少なくとも感染を知らせるビーコンが送られます。

収集先のIPアドレスは、インターネットのアクティブなスキャナーとしても動作しています。GreyNoise、Shodan、SANS ISCなどが、このIPからのスキャンを観測しました。SANSの日次ビューでは、TCP/8080への probe が11,286件に上ります。

RIPEはこのプレフィックスをVigilant Cyber SASに割り当てており、AS153622(Madina IT)が経路を広報しています。

新たに見つかった2つのドメインは、次の段階を示唆している可能性があります。my-github[.]comは2026年10月9日に登録され、収集先IPに直接名前解決されます。ワイルドカードDNSを使っているため、どのサブドメインも同じIPに解決されます。OSMは、こちらの方が信頼度の高い指標だと評価しています。

一方、my-gitlab[.]comは2026年9月22日に登録されました。そのgitlabサブドメインは、GitLabを稼働させているとみられる香港のAWSホストを指しています。ただしOSMは、悪意があると証明されたわけではなく、2つのドメインに共通の運営者がいる証拠もないと強調しています。

過去のインフラには、フィッシングとの重なりも見られます。SNCFを装ったフィッシングドメインcarte-avantage[.]comは、後にGhostActionの情報送信先として使われました。

脅威ハンターは、GitHubで「193.32.204.199」 path:.github/workflowsを検索すると調査できます。信頼度が非常に高い痕跡は、git log -p –allを伴うAKIA_CTX_STARTと、–data-binaryを伴う?c=monamiです。security-audit.ymlというファイル名だけでは、弱い手がかりにとどまります。

対応担当者は、まずActionsを一時的に無効にし、ログとコミットを保全します。次に、侵害されたIDに紐づくPAT、OAuth権限、デプロイキー、セッションを失効させ、悪意あるActionsワークフローを削除する必要があります。

セキュリティチームはさらに、名前が指定されたシークレットをすべてローテーションし、Gitの全履歴から見つかった認証情報も同様に更新してください。侵害期間中に作成されたパッケージ、リリース、イメージの監査も欠かせません。ワークフロー変更に承認を必須とする対策も有効です。StepSecurityによると、この波では承認の必須化が情報の外部送信を止めました。加えて、ランナーのegress許可リストを適用してください。収集先は生のIPアドレスを使うため、DNSによる制御では検知できません。

ワークフローを削除しても、盗まれた認証情報は無効になりません。

翻訳元: https://cyberpress.org/ghostaction-github-supply-chain-attack/

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