GCP - Artifact Registry Enum

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Osnovne informacije

Google Cloud Artifakt Registar je potpuno upravljana usluga koja vam omogućava da upravljate, skladištite i obezbedite svoje softverske artefakte. To je suštinski repozitorijum za skladištenje zavisnosti za izgradnju, kao što su Docker slike, Maven, npm paketi i druge vrste artefakata. Često se koristi u CI/CD tokovima za skladištenje i verzionisanje artefakata koji se proizvode tokom procesa razvoja softvera.

Ključne karakteristike Artifakt Registra uključuju:

  1. Ujedinjeni repozitorijum: Podržava više vrsta artefakata, omogućavajući vam da imate jedan repozitorijum za Docker slike, jezičke pakete (poput Java Maven-a, Node.js npm-a) i druge vrste artefakata, omogućavajući dosledne kontrole pristupa i jedinstven prikaz svih vaših artefakata.

  2. Potpuno upravljano: Kao upravljana usluga, brine se o osnovnoj infrastrukturi, skaliranju i bezbednosti, smanjujući održavanje za korisnike.

  3. Detaljna kontrola pristupa: Integriše se sa Google Cloud Identity and Access Management (IAM), omogućavajući vam da definišete ko može pristupiti, otpremiti ili preuzeti artefakte iz vaših repozitorijuma.

  4. Geografska replikacija: Podržava replikaciju artefakata u više regiona, poboljšavajući brzinu preuzimanja i obezbeđujući dostupnost.

  5. Integracija sa Google Cloud uslugama: Besprezno funkcioniše sa drugim GCP uslugama poput Cloud Build-a, Kubernetes Engine-a i Compute Engine-a, čineći ga pogodnim izborom za timove koji već rade unutar Google Cloud ekosistema.

  6. Bezbednost: Nudi funkcionalnosti poput skeniranja ranjivosti i analize kontejnera kako bi se osiguralo da su skladišteni artefakti bezbedni i slobodni od poznatih bezbednosnih problema.

Format i režimi

Prilikom kreiranja novog repozitorijuma moguće je izabrati format/vrstu repozitorijuma među nekoliko opcija kao što su Docker, Maven, npm, Python... i režim koji obično može biti jedan od sledeća tri:

  • Standardni repozitorijum: Podrazumevani režim za skladištenje sopstvenih artefakata (poput Docker slika, Maven paketa) direktno u GCP. Siguran je, skalabilan i dobro se integriše unutar Google Cloud ekosistema.

  • Udaljeni repozitorijum (ako je dostupan): Deluje kao proxy za keširanje artefakata iz spoljnih, javnih repozitorijuma. Pomaže u sprečavanju problema izmena zavisnosti naviše i smanjuje latenciju keširanjem često pristupanih artefakata.

  • Virtualni repozitorijum (ako je dostupan): Pruža ujedinjeni interfejs za pristup više (standardnih ili udaljenih) repozitorijuma putem jedne tačke, pojednostavljujući konfiguraciju na strani klijenta i upravljanje pristupom za artefakte raspoređene po različitim repozitorijumima.

  • Za virtualni repozitorijum će biti potrebno izabrati repozitorijume i dodeliti im prioritet (repozitorijum sa najvećim prioritetom će biti korišćen).

  • Možete mešati udaljene i standardne repozitorijume u virtualnom repozitorijumu, ako je prioritet za udaljeni veći od standardnog, paketi iz udaljenog (npr. PyPi) će biti korišćeni. Ovo može dovesti do konfuzije zavisnosti.

Imajte na umu da u Udaljenoj verziji Docker-a možete navesti korisničko ime i token za pristup Docker Hub-u. Token se zatim čuva u Secret Manager-u.

Enkripcija

Kao što se i očekuje, podrazumevano se koristi ključ koji upravlja Google-om, ali može se navesti i ključ koji upravlja korisnikom (CMEK).

Politike čišćenja

  • Brisanje artefakata: Artefakti će biti obrisani prema kriterijumima politike čišćenja.

  • Proba bez brisanja: (Podrazumevana) Artefakti neće biti obrisani. Politike čišćenja će biti evaluirane, a test događaji brisanja će biti poslati Cloud Audit Logging-u.

Skeniranje ranjivosti

Moguće je omogućiti skeniranje ranjivosti koje će proveravati ranjivosti unutar kontejnerskih slika.

Enumeracija

# Get repositories
gcloud artifacts repositories list
gcloud artifacts repositories describe --location <location> <repo-name>
gcloud artifacts versions list --repository=<repo-name> -location <location> --package <package-name>

# Get settings of a repository (example using python but could be other)
gcloud artifacts print-settings python --repository <repo-name> --location <location>

# Get docker images
gcloud artifacts docker images list us-central1-docker.pkg.dev/<proj-name>/<repo-name>

# Get packages (like python and others...)
gcloud artifacts packages list --repository <repo-name> --location <location>

# Get SBOMB artifacts
gcloud artifacts sbom list

# Get vulnerabilities (docker images)
gcloud artifacts vulnerabilities list us-east1-docker.pkg.dev/project123/repository123/someimage@sha256:49765698074d6d7baa82f
gcloud artifacts docker images list-vulnerabilities projects/<proj-name>/locations/<location>/scans/<scan-uuid>

Eskalacija privilegija

GCP - Artifact Registry Privesc

Neautentifikovan pristup

GCP - Artifact Registry Unauthenticated Enum

Post-eksploatacija

GCP - Artifact Registry Post Exploitation

Upornost

GCP - Artifact Registry Persistence
Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Last updated