GCP - Artifact Registry Enum

Apprenez le piratage AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)!

Autres moyens de soutenir HackTricks :

Informations de base

Google Cloud Artifact Registry est un service entièrement géré qui vous permet de gérer, stocker et sécuriser vos artefacts logiciels. C'est essentiellement un dépôt pour stocker les dépendances de construction, telles que les images Docker, Maven, les paquets npm et d'autres types d'artefacts. Il est couramment utilisé dans les pipelines CI/CD pour stocker et versionner les artefacts produits pendant le processus de développement logiciel.

Les caractéristiques clés de Artifact Registry incluent :

  1. Dépôt unifié : Il prend en charge plusieurs types d'artefacts, vous permettant d'avoir un seul dépôt pour les images Docker, les paquets de langage (comme Maven de Java, npm de Node.js) et d'autres types d'artefacts, permettant des contrôles d'accès cohérents et une vue unifiée sur tous vos artefacts.

  2. Entièrement géré : En tant que service géré, il s'occupe de l'infrastructure sous-jacente, de l'échelle et de la sécurité, réduisant la charge de maintenance pour les utilisateurs.

  3. Contrôle d'accès granulaire : Il s'intègre à la gestion des identités et des accès (IAM) de Google Cloud, vous permettant de définir qui peut accéder, télécharger ou téléverser des artefacts dans vos dépôts.

  4. Géo-réplication : Il prend en charge la réplication des artefacts sur plusieurs régions, améliorant la vitesse des téléchargements et assurant la disponibilité.

  5. Intégration avec les services Google Cloud : Il fonctionne de manière transparente avec d'autres services GCP comme Cloud Build, Kubernetes Engine et Compute Engine, ce qui en fait un choix pratique pour les équipes travaillant déjà dans l'écosystème Google Cloud.

  6. Sécurité : Offre des fonctionnalités comme l'analyse de vulnérabilité et l'analyse de conteneurs pour aider à garantir que les artefacts stockés sont sécurisés et exempts de problèmes de sécurité connus.

Formats et Modes

Lors de la création d'un nouveau dépôt, il est possible de sélectionner le format/type du dépôt parmi plusieurs, comme Docker, Maven, npm, Python... et le mode qui peut généralement être l'un de ces trois :

  • Dépôt standard : Mode par défaut pour stocker vos propres artefacts (comme les images Docker, les paquets Maven) directement dans GCP. Il est sécurisé, évolutif et s'intègre bien dans l'écosystème Google Cloud.

  • Dépôt distant (si disponible) : Agit comme un proxy pour mettre en cache les artefacts de dépôts publics externes. Cela aide à prévenir les problèmes liés aux changements de dépendances en amont et réduit la latence en mettant en cache les artefacts fréquemment accédés.

  • Dépôt virtuel (si disponible) : Fournit une interface unifiée pour accéder à plusieurs dépôts (standard ou distant) via un seul point de terminaison, simplifiant la configuration côté client et la gestion de l'accès pour les artefacts répartis dans divers dépôts.

  • Pour un dépôt virtuel, vous devrez sélectionner des dépôts et leur attribuer une priorité (le dépôt avec la plus grande priorité sera utilisé).

  • Vous pouvez mélanger des dépôts distants et standard dans un dépôt virtuel, si la priorité du dépôt distant est plus grande que celle du standard, les paquets du dépôt distant (PyPi par exemple) seront utilisés. Cela pourrait conduire à une Confusion de Dépendance.

Notez que dans la version distante de Docker, il est possible de donner un nom d'utilisateur et un jeton pour accéder à Docker Hub. Le jeton est alors stocké dans le Secret Manager.

Chiffrement

Comme prévu, par défaut une clé gérée par Google est utilisée mais une clé gérée par le client peut être indiquée (CMEK).

Politiques de nettoyage

  • Supprimer les artefacts : Les artefacts seront supprimés selon les critères de la politique de nettoyage.

  • Essai à blanc : (Celui par défaut) Les artefacts ne seront pas supprimés. Les politiques de nettoyage seront évaluées et des événements de suppression de test seront envoyés au Cloud Audit Logging.

Analyse de vulnérabilité

Il est possible d'activer le scanner de vulnérabilité qui vérifiera la présence de vulnérabilités dans les images de conteneurs.

Énumération

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

Élévation de privilèges

pageGCP - Artifact Registry Privesc

Accès non authentifié

pageGCP - Artifact Registry Unauthenticated Enum

Post-exploitation

pageGCP - Artifact Registry Post Exploitation

Persistance

pageGCP - Artifact Registry Persistence
Apprenez le hacking AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert) !

Autres moyens de soutenir HackTricks :

Dernière mise à jour