2.9 KiB
GCP - Cloud Build 認証なし列挙
{{#include ../../../banners/hacktricks-training.md}}
Cloud Build
Cloud Buildに関する詳細情報は以下を確認してください:
{{#ref}} ../gcp-services/gcp-cloud-build-enum.md {{#endref}}
cloudbuild.yml
cloudbuild.ymlというファイルを含むリポジトリに対する書き込みアクセスを侵害した場合、このファイルをバックドアすることができ、Cloud Build内で実行されるコマンドを指定し、秘密情報を流出させ、実行される内容を妨害し、さらにCloud Buildサービスアカウントを侵害することができます。
Note
GCPには、管理者が外部PRからビルドシステムの実行を制御できるオプション「Comment Control」があることに注意してください。Comment Controlは、コラボレーター/プロジェクトオーナーがビルドをトリガーするために「/gcbrun」とコメントする必要がある機能であり、この機能を使用することで、インターネット上の誰もがビルドシステムをトリガーすることを本質的に防ぎます。
関連情報として、Github Actionsを攻撃する方法に関するページを確認することができます(これに類似しています):
{{#ref}} ../../../pentesting-ci-cd/github-security/abusing-github-actions/ {{#endref}}
PR 承認
トリガーがPRの場合、誰でも公開リポジトリにPRを行うことができるため、任意のPRでトリガーの実行を許可することは非常に危険です。したがって、デフォルトでは、実行はオーナーとコラボレーターのみに自動で行われ、他のユーザーのPRでトリガーを実行するには、オーナーまたはコラボレーターが「/gcbrun」とコメントする必要があります。

Caution
したがって、これが**
Not requiredに設定されている場合、攻撃者はブランチにPRを行い**、悪意のあるコード実行を**cloudbuild.ymlファイルに追加してcloudbuildの実行を妨害することができます(cloudbuildはPRからコードをダウンロードするため、悪意のあるcloudbuild.yml**を実行します)。
さらに、PRを送信するときにcloudbuildの実行が必要かどうかを簡単に確認できます。なぜなら、それはGithubに表示されるからです:

Warning
そのため、cloudbuildが実行されなくても、攻撃者は会社に属するGCPプロジェクトのプロジェクト名を見ることができます。
{{#include ../../../banners/hacktricks-training.md}}