GCP - Artifact Registry Enum

Impara l'hacking di AWS da zero a esperto con htARTE (HackTricks AWS Red Team Expert)!

Altri modi per supportare HackTricks:

Informazioni di base

Google Cloud Artifact Registry è un servizio completamente gestito che consente di gestire, archiviare e proteggere i tuoi artefatti software. È essenzialmente un repository per archiviare le dipendenze di compilazione, come immagini Docker, pacchetti Maven, pacchetti npm e altri tipi di artefatti. Viene comunemente utilizzato nelle pipeline CI/CD per archiviare e versionare gli artefatti prodotti durante il processo di sviluppo del software.

Le caratteristiche principali di Artifact Registry includono:

  1. Repository unificato: supporta diversi tipi di artefatti, consentendo di avere un singolo repository per immagini Docker, pacchetti di linguaggio (come Maven di Java, npm di Node.js) e altri tipi di artefatti, consentendo controlli di accesso coerenti e una vista unificata di tutti gli artefatti.

  2. Completamente gestito: essendo un servizio gestito, si occupa dell'infrastruttura sottostante, della scalabilità e della sicurezza, riducendo l'onere di manutenzione per gli utenti.

  3. Controllo degli accessi dettagliato: si integra con Identity and Access Management (IAM) di Google Cloud, consentendo di definire chi può accedere, caricare o scaricare artefatti nei tuoi repository.

  4. Replicazione geografica: supporta la replica degli artefatti su più regioni, migliorando la velocità di download e garantendo la disponibilità.

  5. Integrazione con i servizi di Google Cloud: funziona in modo trasparente con altri servizi GCP come Cloud Build, Kubernetes Engine e Compute Engine, rendendolo una scelta conveniente per i team che già lavorano nell'ecosistema di Google Cloud.

  6. Sicurezza: offre funzionalità come scansione delle vulnerabilità e analisi dei contenitori per garantire che gli artefatti archiviati siano sicuri e privi di problemi di sicurezza noti.

Formati e modalità

Durante la creazione di un nuovo repository è possibile selezionare il formato/tipo del repository tra diversi come Docker, Maven, npm, Python... e la modalità che di solito può essere una di queste tre:

  • Repository standard: modalità predefinita per archiviare i propri artefatti (come immagini Docker, pacchetti Maven) direttamente in GCP. È sicuro, scalabile e si integra bene nell'ecosistema di Google Cloud.

  • Repository remoto (se disponibile): funge da proxy per memorizzare nella cache artefatti da repository esterni e pubblici. Aiuta a prevenire problemi derivanti da modifiche alle dipendenze a monte e riduce la latenza memorizzando nella cache gli artefatti frequentemente accessati.

  • Repository virtuale (se disponibile): fornisce un'interfaccia unificata per accedere a più repository (standard o remoti) tramite un singolo punto di accesso, semplificando la configurazione lato client e la gestione dell'accesso per gli artefatti distribuiti in vari repository.

  • Per un repository virtuale sarà necessario selezionare i repository e assegnare loro una priorità (il repository con la priorità più alta verrà utilizzato).

  • È possibile mixare repository remoti e standard in uno virtuale, se la priorità del repository remoto è maggiore di quella dello standard, verranno utilizzati i pacchetti dal repository remoto (ad esempio PyPi). Ciò potrebbe portare a una Confusione delle Dipendenze.

Si noti che nella versione remota di Docker è possibile fornire un nome utente e un token per accedere a Docker Hub. Il token viene quindi archiviato nel Secret Manager.

Crittografia

Come previsto, di default viene utilizzata una chiave gestita da Google, ma è possibile indicare una chiave gestita dal cliente (CMEK).

Politiche di pulizia

  • Elimina artefatti: gli artefatti verranno eliminati in base ai criteri di pulizia.

  • Prova a secco: (predefinita) gli artefatti non verranno eliminati. Le politiche di pulizia verranno valutate e gli eventi di eliminazione di prova verranno inviati a Cloud Audit Logging.

Scansione delle vulnerabilità

È possibile abilitare lo scanner delle vulnerabilità che controllerà la presenza di vulnerabilità all'interno delle immagini dei contenitori.

Enumerazione

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

Escalazione dei privilegi

pageGCP - Artifact Registry Privesc

Accesso non autenticato

pageGCP - Artifact Registry Unauthenticated Enum

Post-Esploitation

pageGCP - Artifact Registry Post Exploitation

Persistenza

pageGCP - Artifact Registry Persistence
Impara l'hacking di AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!

Altri modi per supportare HackTricks:

Last updated