GCP - Enumerazione dell'Artifact Registry
Reading time: 5 minutes
tip
Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.
Informazioni di Base
Google Cloud Artifact Registry è un servizio completamente gestito che consente di gestire, archiviare e proteggere i propri artefatti software. È essenzialmente un repository per archiviare le dipendenze di build, come immagini Docker, pacchetti Maven, npm e altri tipi di artefatti. È comunemente utilizzato nei pipeline CI/CD per archiviare e versionare gli artefatti prodotti durante il processo di sviluppo software.
Le caratteristiche principali dell'Artifact Registry includono:
- Repository Unificato: Supporta più tipi di artefatti, consentendo di avere un unico repository per immagini Docker, pacchetti di linguaggi (come Maven di Java, npm di Node.js) e altri tipi di artefatti, abilitando controlli di accesso coerenti e una vista unificata su tutti i propri artefatti.
- Completamente Gestito: Essendo un servizio gestito, si occupa dell'infrastruttura sottostante, della scalabilità e della sicurezza, riducendo il carico di manutenzione per gli utenti.
- Controllo degli Accessi Flessibile: Si integra con l'Identity and Access Management (IAM) di Google Cloud, consentendo di definire chi può accedere, caricare o scaricare artefatti nei propri repository.
- Geo-replica: Supporta la replica di artefatti in più regioni, migliorando la velocità dei download e garantendo disponibilità.
- Integrazione con i Servizi di Google Cloud: Funziona senza problemi con altri servizi GCP come Cloud Build, Kubernetes Engine e Compute Engine, rendendolo una scelta conveniente per i team già attivi nell'ecosistema di Google Cloud.
- Sicurezza: Offre funzionalità come scansione delle vulnerabilità e analisi dei container per aiutare a garantire che gli artefatti archiviati siano sicuri e privi di problemi di sicurezza noti.
Formati e Modalità
Quando si crea 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): Funziona come un proxy per caching di artefatti da repository esterni, pubblici. Aiuta a prevenire problemi derivanti da dipendenze che cambiano a monte e riduce la latenza memorizzando nella cache artefatti frequentemente accessibili.
- Repository Virtuale (se disponibile): Fornisce un interfaccia unificata per accedere a più repository (standard o remoto) attraverso un unico endpoint, semplificando la configurazione lato client e la gestione degli accessi per artefatti distribuiti su vari repository.
- Per un repository virtuale sarà necessario selezionare i repository e assegnare loro una priorità (il repository con la priorità più alta sarà utilizzato).
- È possibile mescolare repository remoti e standard in uno virtuale, se la priorità del remoto è maggiore rispetto allo standard, i pacchetti dal remoto (ad esempio PyPi) saranno utilizzati. Questo potrebbe portare a una Confusione delle Dipendenze.
Nota che nella versione Remota di Docker è possibile fornire un nome utente e un token per accedere a Docker Hub. Il token viene quindi memorizzato nel Secret Manager.
Crittografia
Come previsto, per impostazione predefinita viene utilizzata una chiave gestita da Google, ma può essere indicata una chiave gestita dal cliente (CMEK).
Politiche di Pulizia
- Elimina artefatti: Gli artefatti saranno eliminati secondo i criteri della politica di pulizia.
- Esecuzione di prova: (Quella predefinita) Gli artefatti non saranno eliminati. Le politiche di pulizia saranno valutate e gli eventi di eliminazione di prova inviati a Cloud Audit Logging.
Scansione delle Vulnerabilità
È possibile abilitare lo scanner di vulnerabilità che controllerà le vulnerabilità all'interno delle immagini dei container.
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>
Escalation dei privilegi
GCP - Artifact Registry Privesc
Accesso non autenticato
GCP - Artifact Registry Unauthenticated Enum
Post-Exploitation
GCP - Artifact Registry Post Exploitation
Persistenza
GCP - Artifact Registry Persistence
tip
Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.