GCP - Cloud Build Enum
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Google Cloud Build je upravljana CI/CD platforma koja automatski gradi softver i procese objavljivanja, integrišući se sa repozitorijumima izvornog koda i podržavajući širok spektar programskih jezika. Omogućava programerima da automatski grade, testiraju i implementiraju kod dok pruža fleksibilnost za prilagođavanje koraka izgradnje i radnih tokova.
Svaki Cloud Build Trigger je povezan sa Cloud Repozitorijumom ili direktno povezan sa spoljnim repozitorijumom (Github, Bitbucket i Gitlab).
Nisam mogao da vidim nijedan način da ukradem Github/Bitbucket token odavde ili iz Cloud Repozitorijuma jer kada se repo preuzme, pristupa mu se putem https://source.cloud.google.com/ URL-a i Github se ne pristupa od strane klijenta.
Cloud Build može biti pokrenut ako:
Push na granu: Odredite granu
Push novog taga: Odredite tag
Pull request: Odredite granu koja prima PR
Ručno pozivanje
Pub/Sub poruka: Odredite temu
Webhook događaj: Izložiće HTTPS URL i zahtev mora biti autentifikovan tajnom
Postoje 3 opcije:
Yaml/json koji specificira komande za izvršavanje. Obično: /cloudbuild.yaml
Samo jedan koji može biti specificiran “inline” u web konzoli i u cli
Najčešća opcija
Relevantno za neautentifikovani pristup
Dockerfile za izgradnju
Buildpack za izgradnju
Servisni nalog ima cloud-platform
opseg, tako da može koristiti sve privilegije. Ako nije specificiran SA (kao kada se podnosi) koristiće se podrazumevani SA <proj-number>@cloudbuild.gserviceaccount.com
.
Podrazumevano, nijedna dozvola nije data, ali je prilično lako dati neku:
Moguće je konfigurisati Cloud Build da zahteva odobrenja za izvršenja izgradnje (onemogućeno podrazumevano).
Kada je okidač PR, jer bilo ko može da izvrši PR-ove na javnim repozitorijumima, bilo bi veoma opasno samo dozvoliti izvršenje okidača sa bilo kojim PR-om. Stoga, podrazumevano, izvršenje će biti automatsko samo za vlasnike i saradnike, a da bi se izvršio okidač sa PR-ovima drugih korisnika, vlasnik ili saradnik mora komentarisati /gcbrun
.
Konekcije mogu biti kreirane preko:
GitHub: Prikazaće OAuth prompt koji traži dozvole za dobijanje Github tokena koji će biti sačuvan unutar Secret Manager-a.
GitHub Enterprise: Tražiće da se instalira GithubApp. Token za autentifikaciju sa vašeg GitHub Enterprise hosta biće kreiran i sačuvan u ovom projektu kao Secret Manager tajna.
GitLab / Enterprise: Morate obezbediti API pristupni token i Read API pristupni token koji će biti sačuvani u Secret Manager-u.
Kada se konekcija generiše, možete je koristiti za povezivanje repozitorijuma kojima Github nalog ima pristup.
Ova opcija je dostupna putem dugmeta:
Napomena da su repozitorijumi povezani ovom metodom samo dostupni u Trigerima koristeći 2. generaciju.
Ovo nije isto kao konekcija
. Ovo omogućava različite načine za dobijanje pristupa Github ili Bitbucket repozitorijumu, ali ne generiše objekat konekcije, već generiše objekat repozitorijuma (1. generacija).
Ova opcija je dostupna putem dugmeta:
Ponekad Cloud Build će generisati novu skladište za čuvanje datoteka za okidač. Ovo se dešava, na primer, u primeru koji GCP nudi sa:
Kreiran je Storage bucket pod nazivom security-devbox_cloudbuild za čuvanje .tgz
datoteke sa datotekama koje će se koristiti.
Instalirajte gcloud unutar cloud build:
Možete pronaći osetljive informacije u konfiguracijama gradnje i logovima.
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)