GCP - Cloud Build Unauthenticated Enum
Cloud Build
Für weitere Informationen zu Cloud Build siehe:
pageGCP - 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 in einem Cloud Build ausgeführt werden und die Geheimnisse exfiltrieren, was getan wird, und auch das Cloud Build-Servicekonto kompromittieren.
Beachten Sie, dass GCP die Option hat, Administratoren zu erlauben, die Ausführung von Build-Systemen von externen PRs über "Kommentarsteuerung" zu kontrollieren. Kommentarsteuerung ist eine Funktion, bei der Mitwirkende/Projektbesitzer " /gcbrun" kommentieren müssen, um den Build gegen den PR auszulösen und die Verwendung dieser Funktion verhindert grundsätzlich, dass jemand im Internet Ihre Build-Systeme auslöst.
Für einige verwandte Informationen können Sie die Seite über den Angriff auf Github Actions überprüfen (ähnlich wie hier):
pageAbusing Github ActionsPR-Zustimmungen
Wenn der Auslöser ein PR ist, weil jeder PRs an öffentliche Repositories senden 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 Befehl /gcbrun
kommentieren.
Daher könnte ein Angreifer, wenn dies auf Nicht erforderlich
eingestellt ist, einen PR an den Branch senden, 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