概要
セキュリティ研究者チャーリー・エリスクェンは、GitHubのpull_request_targetワークフロー触発を悪用する自動化されたキャンペーンを公開的に特定しました。この攻撃者はハンドル名ezmteboを使用し、わずか26時間で475件以上の悪意のあるプルリクエスト(PR)を開きました。
攻撃の仕組み
攻撃者の戦術:
- GitHub上でpull_request_targetワークフロー触発を参照するリポジトリを見つける。
- それらをフォークし、prt-scan-{12-hex-chars}という名前のブランチを作成します。
- CI関連のファイル(conftest.py, package.json, Makefile, build.rsなど)に悪意のあるコードを挿入します。
- 「ci: build configuration update」というタイトルでPRを開き、通常のDevOps変更と混在させます。
攻撃の影響
成功した攻撃:
- GITHUB_TOKENをエクスフィル(外部に送信)します。
- シークレットを列挙し、クラウドメタデータをプローブします。
- NPM_TOKENが露出された場合、悪意のあるバージョンを公開します。
攻撃の進化
6つのフェーズ:
- プロービング(Phase 1):テストアカウントを使用して、基本的なシェルベースのペイロードを小さなリポジトリに送ります。
- 展開(Phase 2):.github/prt_exfil.shスクリプトを使用し、EXFIL, RECON, DISPATCH, LABEL_BYPASS, DELAYEDなどのステージを導入します。
- AI強化のスケーリング(Phase 3):AI生成の言語認識ペイロードを使用して、技術スタックに適応するリポジトリ認識ラッパーを作成します。
防御策
組織がとるべき対策:
- pull_request_targetワークフローで不信任のフォークコードを実行しない。
- 初めての貢献者に対して人間によるレビューを強制する。
- GITHUB_TOKEN権限を最小限に抑える。
- 敏感なワークフローにパスとアクターフィルタを追加する。
