# 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」とコメントする必要があります。

<figure><img src="../../../images/image (339).png" alt="" width="563"><figcaption></figcaption></figure>

> [!CAUTION]
> したがって、これが**`Not required`**に設定されている場合、攻撃者は**ブランチにPRを行い**、悪意のあるコード実行を**`cloudbuild.yml`**ファイルに追加してcloudbuildの実行を妨害することができます（cloudbuildはPRからコードをダウンロードするため、悪意のある**`cloudbuild.yml`**を実行します）。

さらに、PRを送信するときにcloudbuildの実行が必要かどうかを簡単に確認できます。なぜなら、それはGithubに表示されるからです:

<figure><img src="../../../images/image (340).png" alt=""><figcaption></figcaption></figure>

> [!WARNING]
> そのため、cloudbuildが実行されなくても、攻撃者は会社に属する**GCPプロジェクトのプロジェクト名**を見ることができます。

{{#include ../../../banners/hacktricks-training.md}}
