公開日

4,837個のGitHubアカウント、1つのプルリクエスト:CIシークレットを盗む犯人

著者

Listen in English · 4,837個のGitHubアカウント、1つのプルリクエスト:CIシークレットを盗む犯人

0:00 / 0:00

Watch in English · 4,837個のGitHubアカウント、1つのプルリクエスト:CIシークレットを盗む犯人

攻撃者は、侵害された4,837個のGitHubアカウントから書き込みアクセスを借り、『docs: dependency audit notes』というタイトルのプルリクエストでそれを試し、少なくとも1,806個のリポジトリで認証情報窃取ツールを実行した。それが狙ったシークレットは、まさにあなたのCIがすでに保持しているものだ。

火曜日から、攻撃者は盗まれた認証情報を使って4,837件のGitHubアカウントを悪用し、それらのアカウントが書き込み可能なリポジトリにシークレット窃取ツールを仕込んだ。Aikido Securityは、この窃取ツールが実行されたリポジトリを少なくとも1,806件数えた。SafeDepは独自に分析し、16時間の間に悪意あるコミットを受け取ったリポジトリを8,093件数えた。ただしこれは公開リポジトリのデフォルトブランチのみを対象としているため、実際の数はさらに多い。

その手法は単調だが効果的だった。各攻撃は、docs: dependency audit notes というタイトルのプルリクエストから始まり、wfx-docs という名前のブランチから開かれた。それは純粋に、そのアカウントがリポジトリに書き込めるかどうかを試すためだけのものだった。そうしたテスト用プルリクエストは61,764のリポジトリに現れた。

ABN Asia向けに描かれたCIシークレット窃取ツール

4,837
侵害されたアカウント
61,764
テスト用プルリクエスト
8,093
悪意のあるコミットを含むリポジトリ

9分間のアクセスで十分

7,309 のリポジトリでは、情報窃取ツールが既存のワークフローに追加されていた。771 では、npm の postinstall フックとして入り込んでいた。これは開発者のラップトップ上でも npm install 時に実行される。攻撃者は通常、数分以内にそのコミットをリバートし、実行ログを削除した。そのため、悪意あるコミットに実行番号がないことは、残されたどのアーティファクトよりも優れた指標となる。

  1. 書き込みアクセスを借用

    盗まれた4,837件のアカウント、使い捨てPRでテスト済み

  2. 窃取ツールを追加

    既存ワークフローへの追加ステップ、またはnpm postinstallフック

  3. 収集

    Actionsシークレット、GITHUB_TOKEN、OIDCトークン、クラウドキー、ランナーメモリ

  4. 元に戻してクリーンアップ

    コミットは数分で消え、ログは削除される

4つのステップで、そのどれもがエクスプロイトではない。

何を要し、何を残したか

この窃取ツールは、GitHub Actions のシークレットと変数、ワークフローの GITHUB_TOKEN、OIDC および Actions のランタイムトークン、AI サービスのキー、ならびに AWS、Azure、GCP、Kubernetes、npm、PyPI、SSH の認証情報ファイルを収集した。セルフホストランナー上では、インスタンスメタデータ、Docker の状態、systemd ユニットからクラウド認証情報も読み取った。

その一部は、ローテーション後も生き残るように作られていた。AWSロールの信頼ポリシーを書き換えて、そのロールを任意のAWSアカウントに開放し、Azure ADアプリケーションに wfx-ci- 接頭辞付きのフェデレーションID資格情報を追加できる。そのため、侵害されたリポジトリは保存されたシークレットなしでAzureにサインインできる。だから対応は「トークンをローテーションする」ではなく、「ワークフロー全体が攻撃者に制御されていたと想定する」なのだ。

愚かで、完全に防げたもの

ここにはゼロデイは何もなかった。あったのは書き込みアクセスとワークフローランナー、どのリポジトリにもすでにある2つにすぎない。

Aikidoの助言は明確です。テスト用プルリクエストのいずれかを開いたアカウントは、窃取ツールが一度も実行されていなくても侵害済みと見なすべきです。したがって、そのアカウントのトークン、OAuth認可、SSHキー、セッションを取り消し、2FAを有効にし、リポジトリが読み取れるすべてのシークレットと変数をローテーションしてください。影響を受けたコミットでnpm installを実行した人は、そのマシンを侵害済みとして扱うべきです。

ABN Asiaは、失敗事例として扱われるわけにはいかない組織向けにソフトウェアを構築しています。つまり、ワークフローファイルは本番コードと同じようにレビューし、シークレットはリポジトリ全体ではなく必要なジョブだけにスコープを限定し、長期間有効なクラウドキーではなくOIDCによる短命な認証情報を使用し、すべての依存関係をピン留めしてレビューし、検知アラートには担当者名を紐づけます。

得られるのはソフトウェアだけではありません。安全なソフトウェアも得られます。CIが重要な対象への認証情報を保持している場合は、ぜひご相談ください:[email protected]。

出典:The Hacker News、2026年11月12日、Aikido SecurityとSafeDepによる分析を報じた記事。

日本語版は Ai 支援を使用しているため、小さな間違いが存在する可能性があることをご了承ください。

著者

Ai-Banking-NetworkSecurity (ABN), ABN ASIAは、アカデミアに深く関わり、アメリカ、オランダ、ハンガリー、日本、韓国、シンガポール、ベトナムでの仕事経験を持つ人々によって設立されました。ABN ASIAは、学問とテクノロジーが機会と出会う場所です。最先端のソリューションと優れたソフトウェア開発サービスにより、ビジネスがレベルアップし、グローバルシーンに挑戦できるよう支援しています。 私ちの取り組み: より速く。 より良い。 より信頼性が高くなります。 ほとんどの場合、価格も安くなります。

いつでも、ITサービス、デジタルコンサルティング、既製のソフトウェアソリューション、または提案依頼書(RFP)をお探しの際は、お気軽にお問い合わせください。お問い合わせ先は[email protected]です。お客様のテクノロジーに関するニーズにお応えします。

ABNAsia.org

© ABN ASIA