
GCP संसाधन स्कैनर जो Google क्लाउड प्लेटफ़ॉर्म पर क्लाउड सेवाओं, प्रोजेक्ट और IAM अनुमतियों की गणना करके समझौता किए गए क्रेडेंशियल्स के एक्सेस स्तरों का मूल्यांकन करता है।
यह परियोजना कोई आधिकारिक Google परियोजना नहीं है। इसे Google द्वारा समर्थित नहीं किया जाता है और Google विशेष रूप से इसकी गुणवत्ता, व्यापारिकता या किसी विशेष उद्देश्य के लिए उपयुक्तता के संबंध में सभी वारंटियों को अस्वीकार करता है।

यह एक GCP संसाधन स्कैनर है जो यह निर्धारित करने में मदद कर सकता है कि GCP पर कुछ क्रेडेंशियल्स के पास किस स्तर की पहुंच है। स्कैनर को सुरक्षा इंजीनियरों को किसी विशिष्ट VM/कंटेनर समझौता, GCP सेवा खाता, या OAuth2 टोकन कुंजी रिसाव के प्रभाव का मूल्यांकन करने में मदद करने के लिए डिज़ाइन किया गया है।
वर्तमान में, स्कैनर निम्नलिखित GCP संसाधनों का समर्थन करता है:
स्कैनर निम्नलिखित प्रकार के क्रेडेंशियल्स को निकालने और उपयोग करने का समर्थन करता है:
स्कैनर किसी तृतीय-पक्ष टूल (जैसे, gcloud) पर निर्भर नहीं करता है। इस प्रकार, इसे एक स्वतंत्र टूल के रूप में संकलित किया जा सकता है और GCP SDK स्थापित न होने वाली मशीन पर उपयोग किया जा सकता है (जैसे कुबर्नेटीज़ पॉड)। हालांकि, कृपया ध्यान रखें कि वर्तमान में केवल Linux OS समर्थित है।
कृपया ध्यान दें कि GCP यह पता लगाने के लिए Policy Analyzer प्रदान करता है कि किस प्रिंसिपल (उपयोगकर्ता, सेवा खाते, समूह और डोमेन) के पास किन Google Cloud संसाधनों तक क्या पहुंच है। हालांकि, इसके लिए GCP प्रोजेक्ट पर विशिष्ट अनुमतियों की आवश्यकता होती है और Cloud Assets API को सक्षम करना आवश्यक है। यदि आपके पास केवल GCP SA कुंजी, पहले से समझौता किए गए VM तक पहुंच, या OAuth2 रिफ्रेश टोकन है, तो gcp_scanner सबसे अच्छा विकल्प है।
पैकेज स्थापित करने के लिए, pip का उपयोग करें (आपके पास git भी स्थापित होना चाहिए):
pip install gcp_scanner
python3 -m gcp_scanner --help
वैकल्पिक रूप से:
git clone https://github.com/google/gcp_scanner
cd gcp_scanner
pip install .
gcp-scanner --help
यदि आप कंटेनर से स्कैनर चलाना चाहते हैं तो एक Docker बिल्ड फ़ाइल है:
docker build -f Dockerfile -t sa_scanner .
usage: python3 scanner.py -o folder_to_save_results -g -
GCP Scanner
options:
-h, --help show this help message and exit
-ls, --light-scan Return only the most important GCP resource fields in the output.
-k KEY_PATH, --sa-key-path KEY_PATH
Path to directory with SA keys in json format
-g GCLOUD_PROFILE_PATH, --gcloud-profile-path GCLOUD_PROFILE_PATH
Path to directory with gcloud profile. Specify - to search for credentials in default gcloud config path
-m, --use-metadata Extract credentials from GCE instance metadata
-at ACCESS_TOKEN_FILES, --access-token-files ACCESS_TOKEN_FILES
A list of comma separated files with access token and OAuth scopes.TTL limited. A token and scopes should be stored in JSON format.
-rt REFRESH_TOKEN_FILES, --refresh-token-files REFRESH_TOKEN_FILES
A list of comma separated files with refresh_token, client_id,token_uri and client_secret stored in JSON format.
-s KEY_NAME, --service-account KEY_NAME
Name of individual SA to scan
-p TARGET_PROJECT, --project TARGET_PROJECT
Name of individual project to scan
-f FORCE_PROJECTS, --force-projects FORCE_PROJECTS
Comma separated list of project names to include in the scan
-c CONFIG_PATH, --config CONFIG_PATH
A path to config file with a set of specific resources to scan.
-l {DEBUG,INFO,WARNING,ERROR,CRITICAL}, --logging {DEBUG,INFO,WARNING,ERROR,CRITICAL}
Set logging level (INFO, WARNING, ERROR)
-lf LOG_FILE, --log-file LOG_FILE
Save logs to the path specified rather than displaying in console
-pwc PROJECT_WORKER_COUNT, --project-worker-count PROJECT_WORKER_COUNT
Set limit for project crawlers run in parallel.
-rwc RESOURCE_WORKER_COUNT, --resource-worker-count RESOURCE_WORKER_COUNT
Set limit for resource crawlers run in parallel.
Required parameters:
-o OUTPUT, --output-dir OUTPUT
Path to output directory
विकल्प -f को अतिरिक्त स्पष्टीकरण की आवश्यकता है। कुछ मामलों में, सेवा खाते के पास प्रोजेक्ट के नामों को स्पष्ट रूप से सूचीबद्ध करने की अनुमति नहीं होती है। हालांकि, यदि हम सही प्रोजेक्ट नाम प्रदान करते हैं तो इसके पास अंतर्निहित संसाधनों तक पहुंच हो सकती है। यह विकल्प विशेष रूप से ऐसे मामलों को संभालने के लिए डिज़ाइन किया गया है।
कृपया pyproject.toml में google-api-python-client==2.80.0 को google-api-python-client==1.8.0 से बदलें। उसके बाद, स्कैनर स्रोत कोड निर्देशिका पर जाएं और स्टैंडअलोन बाइनरी को संकलित करने के लिए pyinstaller का उपयोग करें:
pyinstaller -F --add-data 'roots.pem:grpc/_cython/_credentials/' scanner.py
GCP स्कैनर एक मानक JSON फ़ाइल उत्पन्न करता है जिसे किसी भी JSON व्यूअर या DB द्वारा संभाला जा सकता है। हम एक वेब-आधारित टूल प्रदान कर रहे हैं जो परिणामों को देखने में आपकी सहायता कर सकता है। टूल चलाने के लिए, कृपया निम्नलिखित कमांड का उपयोग करें:
usage: gcp-scanner-visualizer -p 8080
GCP Scanner Visualizer
options:
-h, --help show this help message and exit
-p PORT, --port PORT Port to listen on default 8080
टूल का उपयोग करने के तरीके के बारे में अधिक जानने के लिए, कृपया GCP Scanner Visualizer उपयोग गाइड पृष्ठ पर जाएं।
यदि आपको JSON परिणामों को grep करने का एक सुविधाजनक तरीका चाहिए, तो हम gron की सिफारिश कर सकते हैं।
विवरण के लिए CONTRIBUTING.md देखें।
Apache 2.0; विवरण के लिए LICENSE देखें।