GCP - Enum za Artifact Registry

Reading time: 5 minutes

tip

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) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks

Osnovne informacije

Google Cloud Artifact Registry je potpuno upravljana usluga koja vam omogućava da upravljate, skladištite i obezbeđujete svoje softverske artefakte. U suštini, to je repozitorijum za skladištenje zavisnosti za izgradnju, kao što su Docker slike, Maven, npm paketi i drugi tipovi artefakata. Obično se koristi u CI/CD procesima za skladištenje i verzionisanje artefakata proizvedenih tokom procesa razvoja softvera.

Ključne karakteristike Artifact Registry uključuju:

  1. Ujedinjeni repozitorijum: Podržava više tipova artefakata, omogućavajući vam da imate jedan repozitorijum za Docker slike, jezičke pakete (kao što su Java Maven, Node.js npm) i druge tipove artefakata, omogućavajući dosledne kontrole pristupa i ujedinjeni pregled svih vaših artefakata.
  2. Potpuno upravljano: Kao upravljana usluga, brine o osnovnoj infrastrukturi, skaliranju i bezbednosti, smanjujući troškove održavanja za korisnike.
  3. Fino podešavanje kontrole pristupa: Integrira se sa Google Cloud-ovim upravljanjem identitetom i pristupom (IAM), omogućavajući vam da definišete ko može da pristupi, otpremi ili preuzme artefakte u vašim repozitorijumima.
  4. Geo-replikacija: Podržava replikaciju artefakata širom više regiona, poboljšavajući brzinu preuzimanja i osiguravajući dostupnost.
  5. Integracija sa Google Cloud uslugama: Besprekorno funkcioniše sa drugim GCP uslugama kao što su Cloud Build, Kubernetes Engine i Compute Engine, čineći ga pogodnim izborom za timove koji već rade unutar Google Cloud ekosistema.
  6. Bezbednost: Nudi funkcije kao što su skeniranje ranjivosti i analiza kontejnera kako bi se osiguralo da su skladišteni artefakti sigurni i bez poznatih bezbednosnih problema.

Formati i režimi

Kada kreirate novi repozitorijum, moguće je izabrati format/tip repozitorijuma među nekoliko kao što su Docker, Maven, npm, Python... i režim koji obično može biti jedan od ova tri:

  • Standardni repozitorijum: Podrazumevani režim za skladištenje vaših vlastitih artefakata (kao što su Docker slike, Maven paketi) direktno u GCP. Siguran je, skalabilan i dobro se integriše unutar Google Cloud ekosistema.
  • Daljinski repozitorijum (ako je dostupan): Deluje kao proxy za keširanje artefakata iz spoljašnjih, javnih repozitorijuma. Pomaže u sprečavanju problema sa promenama zavisnosti na višem nivou i smanjuje latenciju keširanjem često pristupanih artefakata.
  • Virtuelni repozitorijum (ako je dostupan): Pruža ujedinjeni interfejs za pristup više (standardnih ili daljinskih) repozitorijuma kroz jedan krajnji tačku, pojednostavljujući konfiguraciju na klijentskoj strani i upravljanje pristupom za artefakte raspoređene širom različitih repozitorijuma.
  • Za virtuelni repozitorijum biće potrebno izabrati repozitorijume i dati im prioritet (repo sa najvećim prioritetom će se koristiti).
  • Možete mešati daljinske i standardne repozitorijume u virtuelnom, ako je prioritet daljinskog veći od standardnog, paketi iz daljinskog (npr. PyPi) će se koristiti. Ovo može dovesti do Zbunjenosti zavisnosti.

Napomena: u daljinskoj verziji Dockera moguće je dati korisničko ime i token za pristup Docker Hub-u. Token se zatim čuva u Secret Manager-u.

Enkripcija

Kao što se očekuje, podrazumevano se koristi ključ koji upravlja Google, ali može se naznačiti ključ koji upravlja korisnik (CMEK).

Politike čišćenja

  • Obriši artefakte: Artefakti će biti obrisani prema kriterijumima politike čišćenja.
  • Suvo pokretanje: (Podrazumevani) Artefakti neće biti obrisani. Politike čišćenja će biti evaluirane, a testni događaji brisanja poslati u Cloud Audit Logging.

Skeniranje ranjivosti

Moguće je omogućiti skener ranjivosti koji će proveravati ranjivosti unutar slika kontejnera.

Enumeracija

bash
# 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

Neautentifikovani pristup

GCP - Artifact Registry Unauthenticated Enum

Post-eksploatacija

GCP - Artifact Registry Post Exploitation

Postojanost

GCP - Artifact Registry Persistence

tip

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) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks