GCP - Artifact Registry Enum

htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahramana kadar AWS hackleme öğrenin!

HackTricks'ı desteklemenin diğer yolları:

Temel Bilgiler

Google Cloud Artifact Registry, yazılım artefaktlarınızı yönetmenize, depolamanıza ve güvence altına almanıza olanak sağlayan tamamen yönetilen bir hizmettir. Temel olarak, Docker görüntüleri, Maven, npm paketleri ve diğer artefakt türleri gibi derleme bağımlılıklarını depolamak için bir depo olarak kullanılır. Yazılım geliştirme süreci sırasında üretilen artefaktları depolamak ve sürümlemek için CI/CD borularında yaygın olarak kullanılır.

Artifact Registry'nin temel özellikleri şunlardır:

  1. Birleşik Depo: Docker görüntüleri, dil paketleri (Java'nın Maven'i, Node.js'nin npm'i gibi) ve diğer artefakt türleri için tek bir depo kullanmanıza olanak sağlar, böylece tüm artefaktlara tutarlı erişim kontrolleri ve birleşik bir görünüm sağlar.

  2. Tamamen Yönetilen: Yönetilen bir hizmet olarak, altta yatan altyapıyı, ölçeklendirmeyi ve güvenliği yönetir, kullanıcılar için bakım yükünü azaltır.

  3. İnce Tanımlı Erişim Kontrolü: Google Cloud Kimlik ve Erişim Yönetimi (IAM) ile entegre olarak, depolarınızdaki artefaktlara kimin erişebileceğini, yükleyebileceğini veya indirebileceğini tanımlamanıza olanak sağlar.

  4. Coğrafi Çoğaltma: Birden fazla bölgede artefaktların çoğaltılmasını destekler, indirme hızını artırır ve kullanılabilirliği sağlar.

  5. Google Cloud Hizmetleriyle Entegrasyon: Cloud Build, Kubernetes Engine ve Compute Engine gibi diğer GCP hizmetleriyle sorunsuz çalışır, bu da Google Cloud ekosistemi içinde zaten çalışan ekipler için uygun bir seçenek yapar.

  6. Güvenlik: Depolanan artefaktların güvenli ve bilinen güvenlik sorunlarından arındığından emin olmak için zayıflıkların taraması ve konteyner analizi gibi özellikler sunar.

Formatlar ve Modlar

Yeni bir depo oluşturulurken, depo format/türü arasından Docker, Maven, npm, Python gibi birini seçmek mümkündür ve genellikle üç moddan biri olabilir:

  • Standart Depo: Kendi artefaktlarınızı (Docker görüntüleri, Maven paketleri gibi) doğrudan GCP'de depolar için varsayılan moddur. Güvenli, ölçeklenebilir ve Google Cloud ekosistemiyle uyumlu çalışır.

  • Uzak Depo (müsaitse): Dış, genel depolardan artefaktları önbelleğe alan bir proxy olarak hareket eder. Bağımlılıkların yukarı akışta değişmesinden kaynaklanan sorunları önlemeye yardımcı olur ve sık erişilen artefaktları önbelleğe alarak gecikmeyi azaltır.

  • Sanal Depo (müsaitse): Birden çok (standart veya uzak) depoya tek bir noktadan erişim sağlayan birleşik bir arayüz sunar, böylece çeşitli depolara yayılan artefaktlar için istemci tarafı yapılandırmasını ve erişim yönetimini basitleştirir.

  • Sanal bir depo için depoları seçmeniz ve onlara bir öncelik vermeniz gerekecektir (en yüksek önceliğe sahip depo kullanılacaktır).

  • Bir sanal depoda uzak ve standart depoları karıştırabilirsiniz, eğer uzak depodaki öncelik, standart depodan daha büyükse (örneğin PyPi), uzaktaki paketler kullanılacaktır. Bu, bir Bağımlılık Karışıklığına yol açabilir.

Docker'ın Uzak sürümünde Docker Hub'a erişmek için bir kullanıcı adı ve belirteç vermek mümkündür. Belirteç daha sonra Secret Manager'da saklanır.

Şifreleme

Beklendiği gibi, varsayılan olarak Google tarafından yönetilen bir anahtar kullanılır, ancak Müşteri tarafından yönetilen bir anahtar (CMEK) belirtilebilir.

Temizleme Politikaları

  • Artefaktları sil: Artefaktlar, temizleme politikası kriterlerine göre silinecektir.

  • Kuru çalıştırma: (Varsayılan olan) Artefaktlar silinmeyecek. Temizleme politikaları değerlendirilecek ve test silme olayları Cloud Audit Logging'e gönderilecektir.

Zayıflık Taraması

Zayıflık tarayıcısını etkinleştirmek mümkündür, bu tarayıcı konteyner görüntüleri içindeki zayıflıkları kontrol edecektir.

Numaralandırma

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

Yetki Yükseltme

pageGCP - Artifact Registry Privesc

Kimlik Doğrulamasız Erişim

pageGCP - Artifact Registry Unauthenticated Enum

Saldırı Sonrası

pageGCP - Artifact Registry Post Exploitation

Kalıcılık

pageGCP - Artifact Registry Persistence
htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahraman olmak için AWS hackleme öğrenin!

HackTricks'ı desteklemenin diğer yolları:

Last updated