GCP - Cloud Build Enum
Last updated
Last updated
Lerne & übe AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lerne & übe GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Google Cloud Build ist eine verwaltete CI/CD-Plattform, die Software-Bau und Freigabeprozesse automatisiert, sich in Quellcode-Repositories integriert und eine breite Palette von Programmiersprachen unterstützt. Es ermöglicht Entwicklern, Code automatisch zu erstellen, zu testen und bereitzustellen, während es Flexibilität bietet, um Build-Schritte und Workflows anzupassen.
Jeder Cloud Build Trigger ist mit einem Cloud Repository verbunden oder direkt mit einem externen Repository (Github, Bitbucket und Gitlab) verbunden.
Ich konnte hier oder von Cloud-Repositories aus keine Möglichkeit sehen, das Github/Bitbucket-Token zu stehlen, da das Repo beim Herunterladen über eine https://source.cloud.google.com/ URL zugegriffen wird und Github nicht vom Client aus zugegriffen wird.
Der Cloud Build kann ausgelöst werden, wenn:
In einen Branch gepusht wird: Den Branch angeben
Ein neuer Tag gepusht wird: Den Tag angeben
Pull-Request: Den Branch angeben, der den PR erhält
Manuelle Ausführung
Pub/Sub-Nachricht: Das Thema angeben
Webhook-Ereignis: Es wird eine HTTPS-URL bereitgestellt, und die Anfrage muss mit einem Geheimnis authentifiziert werden
Es gibt 3 Optionen:
Eine yaml/json die die auszuführenden Befehle angibt. Üblicherweise: /cloudbuild.yaml
Nur eine, die „inline“ in der Web-Konsole und in der CLI angegeben werden kann
Häufigste Option
Relevant für nicht authentifizierten Zugriff
Eine Dockerfile zum Erstellen
Ein Buildpack zum Erstellen
Das Service-Konto hat den cloud-platform
Scope, sodass es alle Berechtigungen nutzen kann. Wenn kein SA angegeben ist (wie beim Einreichen), wird das Standard-SA <proj-number>@cloudbuild.gserviceaccount.com
verwendet.
Standardmäßig werden keine Berechtigungen vergeben, aber es ist ziemlich einfach, einige zu gewähren:
Es ist möglich, einen Cloud Build so zu konfigurieren, dass Genehmigungen für Build-Ausführungen erforderlich sind (standardmäßig deaktiviert).
Wenn der Trigger ein PR ist, weil jeder PRs zu öffentlichen Repositories durchführen kann, wäre es sehr gefährlich, einfach die Ausführung des Triggers mit jedem PR zuzulassen. Daher wird die Ausführung standardmäßig nur automatisch für Eigentümer und Mitwirkende sein, und um den Trigger mit PRs anderer Benutzer auszuführen, muss ein Eigentümer oder Mitwirkender /gcbrun
kommentieren.
Verbindungen können über:
GitHub: Es wird ein OAuth-Prompt angezeigt, der um Berechtigungen bittet, um ein Github-Token zu erhalten, das im Secret Manager gespeichert wird.
GitHub Enterprise: Es wird gefragt, ob eine GithubApp installiert werden soll. Ein Authentifizierungstoken von deinem GitHub Enterprise-Host wird erstellt und in diesem Projekt als Secret Manager-Geheimnis gespeichert.
GitLab / Enterprise: Du musst das API-Zugriffstoken und das Lese-API-Zugriffstoken bereitstellen, das im Secret Manager gespeichert wird.
Sobald eine Verbindung hergestellt ist, kannst du sie verwenden, um Repositories zu verknüpfen, auf die das Github-Konto Zugriff hat.
Diese Option ist über die Schaltfläche verfügbar:
Beachte, dass Repositories, die mit dieser Methode verbunden sind, nur in Triggern der 2. Generation verfügbar sind.
Dies ist nicht dasselbe wie eine Verbindung
. Dies ermöglicht verschiedene Möglichkeiten, um Zugriff auf ein Github- oder Bitbucket-Repository zu erhalten, generiert jedoch kein Verbindungsobjekt, sondern ein Repositoryobjekt (1. Generation).
Diese Option ist über die Schaltfläche verfügbar:
Manchmal wird Cloud Build einen neuen Speicher generieren, um die Dateien für den Trigger zu speichern. Dies geschieht beispielsweise in dem Beispiel, das GCP mit:
Ein Storage-Bucket namens security-devbox_cloudbuild wird erstellt, um ein .tgz
mit den zu verwendenden Dateien zu speichern.
Installieren Sie gcloud innerhalb von Cloud Build:
Sie könnten sensible Informationen in Build-Konfigurationen und Protokollen finden.
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)