GCP - Cloud Build Unauthenticated Enum
Cloud Build
Für weitere Informationen zu Cloud Build siehe:
GCP - Cloud Build Enumcloudbuild.yml
Wenn Sie Schreibzugriff auf ein Repository haben, das eine Datei namens cloudbuild.yml
enthält, könnten Sie diese Datei backdooren, die die Befehle spezifiziert, die innerhalb eines Cloud Build ausgeführt werden und die Geheimnisse exfiltrieren, was getan wird und auch den Cloud Build-Dienstaccount kompromittieren.
Beachten Sie, dass GCP die Option hat, Administratoren zu erlauben, die Ausführung von Bausystemen von externen PRs über "Kommentarsteuerung" zu kontrollieren. Kommentarsteuerung ist eine Funktion, bei der Mitwirkende/Projektbesitzer den Kommentar "/gcbrun" abgeben müssen, um den Build auszulösen gegen den PR, und die Verwendung dieser Funktion verhindert grundsätzlich, dass jemand im Internet Ihre Bausysteme auslöst.
Für einige verwandte Informationen könnten Sie die Seite über den Angriff auf Github Actions überprüfen (ähnlich wie hier):
Abusing Github ActionsPR-Zulassungen
Wenn der Auslöser ein PR ist, weil jeder PRs zu öffentlichen Repositories durchführen kann, wäre es sehr gefährlich, einfach die Ausführung des Auslösers mit jedem PR zuzulassen. Daher wird die Ausführung standardmäßig nur automatisch für Besitzer und Mitwirkende erfolgen, und um den Auslöser mit PRs anderer Benutzer auszuführen, muss ein Besitzer oder Mitwirkender den Kommentar /gcbrun
abgeben.
Daher könnte ein Angreifer, wenn dies auf Nicht erforderlich
eingestellt ist, einen PR an den Branch durchführen, der die Ausführung auslöst, indem er den bösartigen Code zur Ausführung in die cloudbuild.yml
-Datei hinzufügt und die cloudbuild-Ausführung kompromittiert (beachten Sie, dass cloudbuild den Code AUS dem PR herunterladen wird, daher wird die bösartige cloudbuild.yml
ausgeführt).
Außerdem ist es einfach zu erkennen, ob eine cloudbuild-Ausführung durchgeführt werden muss, wenn Sie einen PR senden, da sie in Github erscheint:
Dann, selbst wenn der cloudbuild nicht ausgeführt wird, wird der Angreifer in der Lage sein, den Projektnamen eines GCP-Projekts zu sehen, das dem Unternehmen gehört.
Last updated