GCP - Artifact Registry Enum

Unterstützen Sie HackTricks

Grundlegende Informationen

Google Cloud Artifact Registry ist ein vollständig verwalteter Dienst, der es Ihnen ermöglicht, Ihre Software-Artefakte zu verwalten, zu speichern und zu sichern. Es handelt sich im Wesentlichen um ein Repository zum Speichern von Build-Abhängigkeiten, wie z. B. Docker-Images, Maven, npm-Pakete und andere Arten von Artefakten. Es wird üblicherweise in CI/CD-Pipelines verwendet, um die Artefakte zu speichern und zu versionieren, die während des Softwareentwicklungsprozesses erstellt werden.

Zu den wichtigsten Funktionen von Artifact Registry gehören:

  1. Einheitliches Repository: Es unterstützt mehrere Arten von Artefakten, sodass Sie ein einziges Repository für Docker-Images, Sprachpakete (wie Java's Maven, Node.js's npm) und andere Arten von Artefakten haben können, was konsistente Zugriffssteuerungen und eine einheitliche Ansicht über alle Ihre Artefakte ermöglicht.

  2. Vollständig verwaltet: Als verwalteter Dienst kümmert er sich um die zugrunde liegende Infrastruktur, Skalierung und Sicherheit und reduziert den Wartungsaufwand für Benutzer.

  3. Feingranulare Zugriffskontrolle: Er integriert sich mit der Identitäts- und Zugriffsverwaltung (IAM) von Google Cloud, sodass Sie festlegen können, wer auf Ihre Repositories zugreifen, Artefakte hochladen oder herunterladen kann.

  4. Geo-Replikation: Er unterstützt die Replikation von Artefakten in mehreren Regionen, was die Download-Geschwindigkeit verbessert und die Verfügbarkeit sicherstellt.

  5. Integration mit Google Cloud-Diensten: Er arbeitet nahtlos mit anderen GCP-Diensten wie Cloud Build, Kubernetes Engine und Compute Engine zusammen, was ihn zu einer bequemen Wahl für Teams macht, die bereits im Google Cloud-Ökosystem arbeiten.

  6. Sicherheit: Bietet Funktionen wie Vulnerability Scanning und Container-Analyse, um sicherzustellen, dass die gespeicherten Artefakte sicher sind und keine bekannten Sicherheitsprobleme aufweisen.

Formate und Modi

Beim Erstellen eines neuen Repositories ist es möglich, das Format/den Typ des Repositories aus mehreren wie Docker, Maven, npm, Python... auszuwählen und den Modus, der in der Regel einer dieser drei sein kann:

  • Standard-Repository: Standardmodus zum Speichern eigener Artefakte (wie Docker-Images, Maven-Pakete) direkt in GCP. Es ist sicher, skalierbar und integriert sich gut in das Google Cloud-Ökosystem.

  • Remote-Repository (falls verfügbar): Dient als Proxy zum Zwischenspeichern von Artefakten aus externen, öffentlichen Repositories. Es hilft, Probleme zu verhindern, die durch Änderungen von Abhängigkeiten stromaufwärts entstehen, und reduziert die Latenz durch Zwischenspeichern häufig abgerufener Artefakte.

  • Virtuelles Repository (falls verfügbar): Bietet eine einheitliche Schnittstelle zum Zugriff auf mehrere (Standard- oder Remote-) Repositories über einen einzigen Endpunkt, was die Konfiguration auf der Clientseite und den Zugriff auf Artefakte, die über verschiedene Repositories verteilt sind, vereinfacht.

  • Für ein virtuelles Repository müssen Sie Repositorien auswählen und ihnen eine Priorität geben (das Repo mit der höchsten Priorität wird verwendet).

  • Sie können Remote- und Standard- Repositories in einem virtuellen Repository mischen, wenn die Priorität des Remote größer ist als die des Standard, werden Pakete aus dem Remote (z. B. PyPi) verwendet. Dies könnte zu einer Abhängigkeitsverwirrung führen.

Beachten Sie, dass es in der Remote-Version von Docker möglich ist, einen Benutzernamen und ein Token anzugeben, um auf Docker Hub zuzugreifen. Das Token wird dann im Secret Manager gespeichert.

Verschlüsselung

Wie erwartet wird standardmäßig ein von Google verwalteter Schlüssel verwendet, aber es kann ein kundenverwalteter Schlüssel angegeben werden (CMEK).

Bereinigungspolitiken

  • Artefakte löschen: Artefakte werden gemäß den Kriterien der Bereinigungspolitik gelöscht.

  • Trockenlauf: (Standard) Artefakte werden nicht gelöscht. Bereinigungspolitiken werden ausgewertet und Testlöschereignisse an das Cloud Audit Logging gesendet.

Vulnerability Scanning

Es ist möglich, den Vulnerability Scanner zu aktivieren, der nach Schwachstellen in Container-Images sucht.

Enumeration

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

Privilege Escalation

GCP - Artifact Registry Privesc

Unauthenticated Access

GCP - Artifact Registry Unauthenticated Enum

Post-Exploitation

GCP - Artifact Registry Post Exploitation

Persistence

GCP - Artifact Registry Persistence
Unterstützen Sie HackTricks

Last updated