GCP - Artifact Registry Enum

Reading time: 6 minutes

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें

Basic Information

Google Cloud Artifact Registry एक पूरी तरह से प्रबंधित सेवा है जो आपको अपने सॉफ़्टवेयर आर्टिफैक्ट्स को प्रबंधित, स्टोर और सुरक्षित करने की अनुमति देती है। यह मूल रूप से बिल्ड निर्भरताओं को स्टोर करने के लिए एक रिपॉजिटरी है, जैसे कि Docker इमेज, Maven, npm पैकेज, और अन्य प्रकार के आर्टिफैक्ट्स। इसका सामान्यत: CI/CD पाइपलाइनों में उपयोग किया जाता है जो सॉफ़्टवेयर विकास प्रक्रिया के दौरान उत्पन्न आर्टिफैक्ट्स को स्टोर और संस्करणित करता है।

Artifact Registry की प्रमुख विशेषताएँ शामिल हैं:

  1. Unified Repository: यह कई प्रकार के आर्टिफैक्ट्स का समर्थन करता है, जिससे आप Docker इमेज, भाषा पैकेज (जैसे Java का Maven, Node.js का npm), और अन्य प्रकार के आर्टिफैक्ट्स के लिए एकल रिपॉजिटरी रख सकते हैं, जिससे सभी आर्टिफैक्ट्स के लिए सुसंगत पहुँच नियंत्रण और एकीकृत दृश्य प्राप्त होता है।
  2. Fully Managed: एक प्रबंधित सेवा के रूप में, यह अंतर्निहित बुनियादी ढाँचे, स्केलिंग, और सुरक्षा का ध्यान रखता है, जिससे उपयोगकर्ताओं के लिए रखरखाव का बोझ कम होता है।
  3. Fine-grained Access Control: यह Google Cloud के पहचान और पहुँच प्रबंधन (IAM) के साथ एकीकृत होता है, जिससे आप यह परिभाषित कर सकते हैं कि कौन आपके रिपॉजिटरी में आर्टिफैक्ट्स को एक्सेस, अपलोड, या डाउनलोड कर सकता है।
  4. Geo-replication: यह कई क्षेत्रों में आर्टिफैक्ट्स की प्रतिकृति का समर्थन करता है, डाउनलोड की गति में सुधार करता है और उपलब्धता सुनिश्चित करता है।
  5. Integration with Google Cloud Services: यह अन्य GCP सेवाओं जैसे Cloud Build, Kubernetes Engine, और Compute Engine के साथ निर्बाध रूप से काम करता है, जिससे यह उन टीमों के लिए एक सुविधाजनक विकल्प बनता है जो पहले से Google Cloud पारिस्थितिकी तंत्र में काम कर रही हैं।
  6. Security: यह कमजोरी स्कैनिंग और कंटेनर विश्लेषण जैसी सुविधाएँ प्रदान करता है ताकि यह सुनिश्चित किया जा सके कि स्टोर किए गए आर्टिफैक्ट्स सुरक्षित हैं और ज्ञात सुरक्षा समस्याओं से मुक्त हैं।

Formats and Modes

जब एक नया रिपॉजिटरी बनाया जाता है, तो यह संभव है कि आप रिपॉजिटरी के प्रारूप/प्रकार को कई में से चुनें जैसे Docker, Maven, npm, Python... और मोड जो आमतौर पर इनमें से एक हो सकता है:

  • Standard Repository: अपने स्वयं के आर्टिफैक्ट्स (जैसे Docker इमेज, Maven पैकेज) को सीधे GCP में स्टोर करने के लिए डिफ़ॉल्ट मोड। यह सुरक्षित, स्केलेबल है, और Google Cloud पारिस्थितिकी तंत्र के भीतर अच्छी तरह से एकीकृत होता है।
  • Remote Repository (यदि उपलब्ध हो): बाहरी, सार्वजनिक रिपॉजिटरी से आर्टिफैक्ट्स को कैश करने के लिए एक प्रॉक्सी के रूप में कार्य करता है। यह उपरोक्त निर्भरताओं में बदलाव से समस्याओं को रोकने में मदद करता है और अक्सर एक्सेस किए जाने वाले आर्टिफैक्ट्स को कैश करके विलंबता को कम करता है।
  • Virtual Repository (यदि उपलब्ध हो): एकल एंडपॉइंट के माध्यम से कई (मानक या दूरस्थ) रिपॉजिटरी तक पहुँचने के लिए एक एकीकृत इंटरफ़ेस प्रदान करता है, जो विभिन्न रिपॉजिटरी में फैले आर्टिफैक्ट्स के लिए क्लाइंट-साइड कॉन्फ़िगरेशन और पहुँच प्रबंधन को सरल बनाता है।
  • एक वर्चुअल रिपॉजिटरी के लिए आपको रिपॉजिटरी का चयन करना होगा और उन्हें प्राथमिकता देना होगा (जिस रिपॉजिटरी की प्राथमिकता सबसे बड़ी होगी, उसका उपयोग किया जाएगा)।
  • आप वर्चुअल में दूरस्थ और मानक रिपॉजिटरी को मिश्रित कर सकते हैं, यदि दूरस्थ की प्राथमिकता मानक से बड़ी है, तो दूरस्थ से पैकेज (उदाहरण के लिए PyPi) का उपयोग किया जाएगा। इससे Dependency Confusion हो सकता है।

ध्यान दें कि Docker के दूरस्थ संस्करण में Docker Hub तक पहुँचने के लिए एक उपयोगकर्ता नाम और टोकन देना संभव है। टोकन फिर Secret Manager में स्टोर किया जाता है

Encryption

जैसा कि अपेक्षित है, डिफ़ॉल्ट रूप से एक Google-प्रबंधित कुंजी का उपयोग किया जाता है लेकिन एक ग्राहक-प्रबंधित कुंजी को इंगित किया जा सकता है (CMEK)।

Cleanup Policies

  • Delete artifacts: आर्टिफैक्ट्स को साफ़ करने की नीति मानदंडों के अनुसार हटाया जाएगा
  • Dry run: (डिफ़ॉल्ट) आर्टिफैक्ट्स हटाए नहीं जाएंगे। साफ़ करने की नीतियों का मूल्यांकन किया जाएगा, और क्लाउड ऑडिट लॉगिंग के लिए परीक्षण हटाने की घटनाएँ भेजी जाएँगी।

Vulnerability Scanning

यह संभव है कि कमजोरी स्कैनर को सक्षम किया जाए जो कंटेनर इमेज के अंदर कमजोरियों की जाँच करेगा।

Enumeration

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

विशेषाधिकार वृद्धि

GCP - Artifact Registry Privesc

बिना प्रमाणीकरण की पहुंच

GCP - Artifact Registry Unauthenticated Enum

पोस्ट-एक्सप्लॉइटेशन

GCP - Artifact Registry Post Exploitation

स्थिरता

GCP - Artifact Registry Persistence

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें