Files
hacktricks-cloud/src/pentesting-cloud/gcp-security/gcp-unauthenticated-enum-and-access/gcp-cloud-build-unauthenticated-enum.md

2.9 KiB
Raw Blame History

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}}