GCP - Artifact Registry Enum

Support HackTricks

Basic Information

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

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

  1. एकीकृत रिपॉजिटरी: यह कई प्रकार के आर्टिफैक्ट्स का समर्थन करता है, जिससे आप Docker इमेज, भाषा पैकेज (जैसे Java का Maven, Node.js का npm), और अन्य प्रकार के आर्टिफैक्ट्स के लिए एकल रिपॉजिटरी रख सकते हैं, जिससे सभी आर्टिफैक्ट्स के लिए सुसंगत पहुँच नियंत्रण और एकीकृत दृश्य सक्षम होता है।

  2. पूर्ण रूप से प्रबंधित: एक प्रबंधित सेवा के रूप में, यह अंतर्निहित बुनियादी ढाँचे, स्केलिंग, और सुरक्षा का ध्यान रखता है, जिससे उपयोगकर्ताओं के लिए रखरखाव का बोझ कम होता है।

  3. सूक्ष्म पहुँच नियंत्रण: यह Google Cloud के पहचान और पहुँच प्रबंधन (IAM) के साथ एकीकृत होता है, जिससे आप यह परिभाषित कर सकते हैं कि कौन आपके रिपॉजिटरी में आर्टिफैक्ट्स को एक्सेस, अपलोड, या डाउनलोड कर सकता है।

  4. भौगोलिक पुनरुत्पादन: यह कई क्षेत्रों में आर्टिफैक्ट्स के पुनरुत्पादन का समर्थन करता है, जिससे डाउनलोड की गति में सुधार होता है और उपलब्धता सुनिश्चित होती है।

  5. Google Cloud सेवाओं के साथ एकीकरण: यह Cloud Build, Kubernetes Engine, और Compute Engine जैसी अन्य GCP सेवाओं के साथ निर्बाध रूप से काम करता है, जिससे यह उन टीमों के लिए एक सुविधाजनक विकल्प बनता है जो पहले से Google Cloud पारिस्थितिकी तंत्र में काम कर रही हैं।

  6. सुरक्षा: यह कमजोरी स्कैनिंग और कंटेनर विश्लेषण जैसी सुविधाएँ प्रदान करता है ताकि यह सुनिश्चित किया जा सके कि स्टोर किए गए आर्टिफैक्ट्स सुरक्षित हैं और ज्ञात सुरक्षा समस्याओं से मुक्त हैं।

Formats and Modes

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

  • मानक रिपॉजिटरी: GCP में अपने स्वयं के आर्टिफैक्ट्स (जैसे Docker इमेज, Maven पैकेज) को सीधे स्टोर करने के लिए डिफ़ॉल्ट मोड। यह सुरक्षित, स्केलेबल है, और Google Cloud पारिस्थितिकी तंत्र के भीतर अच्छी तरह से एकीकृत होता है।

  • रिमोट रिपॉजिटरी (यदि उपलब्ध हो): बाहरी, सार्वजनिक रिपॉजिटरी से आर्टिफैक्ट्स को कैश करने के लिए एक प्रॉक्सी के रूप में कार्य करता है। यह उपरोक्त निर्भरताओं में बदलाव से समस्याओं को रोकने में मदद करता है और अक्सर एक्सेस किए जाने वाले आर्टिफैक्ट्स को कैश करके विलंबता को कम करता है।

  • वर्चुअल रिपॉजिटरी (यदि उपलब्ध हो): एक एकीकृत इंटरफ़ेस प्रदान करता है ताकि आप एकल एंडपॉइंट के माध्यम से कई (मानक या रिमोट) रिपॉजिटरी तक पहुँच सकें, जो विभिन्न रिपॉजिटरी में फैले आर्टिफैक्ट्स के लिए क्लाइंट-साइड कॉन्फ़िगरेशन और पहुँच प्रबंधन को सरल बनाता है।

  • एक वर्चुअल रिपॉजिटरी के लिए आपको रिपॉजिटरी का चयन करना होगा और उन्हें प्राथमिकता देनी होगी (जिस रिपॉजिटरी की प्राथमिकता सबसे बड़ी होगी, उसका उपयोग किया जाएगा)।

  • आप रिमोट और मानक रिपॉजिटरी को एक वर्चुअल में मिला सकते हैं, यदि रिमोट की प्राथमिकता मानक से बड़ी है, तो रिमोट से पैकेज (उदाहरण के लिए PyPi) का उपयोग किया जाएगा। इससे निर्भरता भ्रम हो सकता है।

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

Encryption

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

Cleanup Policies

  • आर्टिफैक्ट्स को हटाएँ: आर्टिफैक्ट्स को साफ़ करने की नीति मानदंडों के अनुसार हटाया जाएगा

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

Vulnerability Scanning

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

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>

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

GCP - Artifact Registry Privesc

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

GCP - Artifact Registry Unauthenticated Enum

पोस्ट-शोषण

GCP - Artifact Registry Post Exploitation

स्थिरता

GCP - Artifact Registry Persistence
HackTricks का समर्थन करें

Last updated