GCP - Logging 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 का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें, PRs को HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में सबमिट करके।
Basic Information
यह सेवा उपयोगकर्ताओं को GCP से लॉग डेटा और घटनाओं को स्टोर, सर्च, एनालाइज, मॉनिटर और अलर्ट करने की अनुमति देती है।
Cloud Logging अन्य GCP सेवाओं के साथ पूरी तरह से एकीकृत है, जो आपके सभी GCP संसाधनों से लॉग के लिए एक केंद्रीकृत भंडार प्रदान करता है। यह स्वचालित रूप से विभिन्न GCP सेवाओं जैसे App Engine, Compute Engine, और Cloud Functions से लॉग एकत्र करता है। आप Cloud Logging का उपयोग ऑन-प्रिमाइसेस या अन्य क्लाउड में चल रहे अनुप्रयोगों के लिए भी Cloud Logging एजेंट या API का उपयोग करके कर सकते हैं।
Key Features:
- Log Data Centralization: विभिन्न स्रोतों से लॉग डेटा को एकत्रित करें, आपके अनुप्रयोगों और अवसंरचना का समग्र दृश्य प्रदान करते हुए।
- Real-time Log Management: तात्कालिक विश्लेषण और प्रतिक्रिया के लिए वास्तविक समय में लॉग स्ट्रीम करें।
- Powerful Data Analysis: बड़े मात्रा में लॉग डेटा को तेजी से छानने के लिए उन्नत फ़िल्टरिंग और खोज क्षमताओं का उपयोग करें।
- Integration with BigQuery: विस्तृत विश्लेषण और क्वेरी के लिए लॉग को BigQuery में निर्यात करें।
- Log-based Metrics: निगरानी और अलर्टिंग के लिए अपने लॉग डेटा से कस्टम मैट्रिक्स बनाएं।
Logs flow
 (1) (1).png)
https://betterstack.com/community/guides/logging/gcp-logging/
बुनियादी रूप से, सिंक और लॉग आधारित मैट्रिक्स यह निर्धारित करेंगे कि लॉग कहाँ स्टोर किया जाना चाहिए।
Configurations Supported by GCP Logging
Cloud Logging विभिन्न संचालन आवश्यकताओं के अनुसार अत्यधिक कॉन्फ़िगर करने योग्य है:
- Log Buckets (Logs storage in the web): Cloud Logging में बकेट्स को परिभाषित करें ताकि लॉग रिटेंशन का प्रबंधन किया जा सके, यह नियंत्रित करते हुए कि आपके लॉग प्रविष्टियाँ कितनी देर तक रखी जाती हैं।
- डिफ़ॉल्ट रूप से बकेट्स
_Default
और_Required
बनाए जाते हैं (एक वह लॉग कर रहा है जो दूसरा नहीं कर रहा है)। - _Required है:
```
LOG_ID("cloudaudit.googleapis.com/activity") OR LOG_ID("externalaudit.googleapis.com/activity") OR LOG_ID("cloudaudit.googleapis.com/system_event") OR LOG_ID("externalaudit.googleapis.com/system_event") OR LOG_ID("cloudaudit.googleapis.com/access_transparency") OR LOG_ID("externalaudit.googleapis.com/access_transparency")
```
```
- **डेटा का संरक्षण अवधि** प्रति बकेट कॉन्फ़िगर की जाती है और यह **कम से कम 1 दिन होनी चाहिए।** हालाँकि, **आवश्यक की संरक्षण अवधि 400 दिन है** और इसे संशोधित नहीं किया जा सकता।
- ध्यान दें कि लॉग बकेट **क्लाउड स्टोरेज में दिखाई नहीं देते।**
2. **लॉग सिंक्स (वेब में लॉग राउटर):** विभिन्न गंतव्यों जैसे Pub/Sub, BigQuery, या Cloud Storage में लॉग प्रविष्टियों को **निर्यात करने के लिए सिंक्स बनाएं** जो एक **फिल्टर** के आधार पर हैं।
- **डिफ़ॉल्ट** रूप से `_Default` और `_Required` बकेट के लिए सिंक्स बनाए जाते हैं:
- ```bash
_Required logging.googleapis.com/projects/<proj-name>/locations/global/buckets/_Required LOG_ID("cloudaudit.googleapis.com/activity") OR LOG_ID("externalaudit.googleapis.com/activity") OR LOG_ID("cloudaudit.googleapis.com/system_event") OR LOG_ID("externalaudit.googleapis.com/system_event") OR LOG_ID("cloudaudit.googleapis.com/access_transparency") OR LOG_ID("externalaudit.googleapis.com/access_transparency")
_Default logging.googleapis.com/projects/<proj-name>/locations/global/buckets/_Default NOT LOG_ID("cloudaudit.googleapis.com/activity") AND NOT LOG_ID("externalaudit.googleapis.com/activity") AND NOT LOG_ID("cloudaudit.googleapis.com/system_event") AND NOT LOG_ID("externalaudit.googleapis.com/system_event") AND NOT LOG_ID("cloudaudit.googleapis.com/access_transparency") AND NOT LOG_ID("externalaudit.googleapis.com/access_transparency")
```
- **बहिष्करण फ़िल्टर:** यह संभव है कि **विशिष्ट लॉग प्रविष्टियों** को ग्रहण करने से रोकने के लिए **बहिष्करण सेट करें**, जिससे लागत बचती है और अनावश्यक शोर कम होता है।
3. **लॉग-आधारित मैट्रिक्स:** लॉग के सामग्री के आधार पर **कस्टम मैट्रिक्स** कॉन्फ़िगर करें, जिससे लॉग डेटा के आधार पर अलर्टिंग और निगरानी की अनुमति मिलती है।
4. **लॉग दृश्य:** लॉग दृश्य आपको आपके लॉग बकेट में लॉग्स तक पहुँच पर **उन्नत और बारीक नियंत्रण** प्रदान करते हैं।
- क्लाउड लॉगिंग **हर बकेट के लिए `_AllLogs` दृश्य स्वचालित रूप से बनाता है**, जो सभी लॉग दिखाता है। क्लाउड लॉगिंग `_Default` बकेट के लिए `_Default` नामक एक दृश्य भी बनाता है। `_Default` बकेट के लिए `_Default` दृश्य सभी लॉग दिखाता है सिवाय डेटा एक्सेस ऑडिट लॉग के। `_AllLogs` और `_Default` दृश्य संपादित नहीं किए जा सकते।
यह संभव है कि एक प्रिंसिपल को **केवल एक विशिष्ट लॉग दृश्य** का उपयोग करने की अनुमति दी जाए IAM नीति के साथ:
```
{
"bindings": [
{
"members": ["user:username@gmail.com"],
"role": "roles/logging.viewAccessor",
"condition": {
"title": "Bucket reader condition example",
"description": "Grants logging.viewAccessor role to user username@gmail.com for the VIEW_ID log view.",
"expression": "resource.name == \"projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME/views/VIEW_ID\""
}
}
],
"etag": "BwWd_6eERR4=",
"version": 3
}
```
### Default Logs
डिफ़ॉल्ट रूप से **Admin Write** ऑपरेशंस (जिन्हें Admin Activity audit logs भी कहा जाता है) वे होते हैं जो लॉग किए जाते हैं (मेटाडेटा या कॉन्फ़िगरेशन जानकारी लिखें) और **निष्क्रिय नहीं किए जा सकते**।
फिर, उपयोगकर्ता **Data Access audit logs** को सक्षम कर सकता है, ये हैं **Admin Read, Data Write और Data Write**।
आप प्रत्येक प्रकार के लॉग के बारे में अधिक जानकारी दस्तावेज़ों में पा सकते हैं: [https://cloud.google.com/iam/docs/audit-logging](https://cloud.google.com/iam/docs/audit-logging)
हालांकि, ध्यान दें कि इसका मतलब है कि डिफ़ॉल्ट रूप से **`GetIamPolicy`** क्रियाएँ और अन्य पढ़ने की क्रियाएँ **लॉग नहीं की जा रही हैं**। इसलिए, डिफ़ॉल्ट रूप से एक हमलावर जो वातावरण को सूचीबद्ध करने की कोशिश कर रहा है, पकड़ा नहीं जाएगा यदि सिस्टम प्रशासक ने अधिक लॉग उत्पन्न करने के लिए कॉन्फ़िगर नहीं किया है।
कंसोल में अधिक लॉग सक्षम करने के लिए सिस्टम प्रशासक को [https://console.cloud.google.com/iam-admin/audit](https://console.cloud.google.com/iam-admin/audit) पर जाना होगा और उन्हें सक्षम करना होगा। वहाँ 2 अलग-अलग विकल्प हैं:
- **Default Configuration**: एक डिफ़ॉल्ट कॉन्फ़िगरेशन बनाना संभव है और सभी Admin Read और/या Data Read और/या Data Write लॉग को लॉग करना और यहां तक कि छूट प्राप्त प्रिंसिपल जोड़ना:
<figure><img src="../../../images/image (338).png" alt=""><figcaption></figcaption></figure>
- **Select the services**: या बस **सेवाओं का चयन करें** जिनके लिए आप लॉग उत्पन्न करना चाहते हैं और उस विशेष सेवा के लिए लॉग के प्रकार और छूट प्राप्त प्रिंसिपल।
यह भी ध्यान दें कि डिफ़ॉल्ट रूप से केवल वही लॉग उत्पन्न किए जा रहे हैं क्योंकि अधिक लॉग उत्पन्न करने से लागत बढ़ेगी।
### Enumeration
`gcloud` कमांड-लाइन टूल GCP पारिस्थितिकी तंत्र का एक अभिन्न हिस्सा है, जो आपको अपने संसाधनों और सेवाओं का प्रबंधन करने की अनुमति देता है। यहाँ बताया गया है कि आप अपने लॉगिंग कॉन्फ़िगरेशन और एक्सेस लॉग को प्रबंधित करने के लिए `gcloud` का उपयोग कैसे कर सकते हैं।
```
# List buckets
gcloud logging buckets list
gcloud logging buckets describe <bucket-name> --location <location>
# List log entries: only logs that contain log entries are listed.
gcloud logging logs list
# Get log metrics
gcloud logging metrics list
gcloud logging metrics describe <metric-name>
# Get log sinks
gcloud logging sinks list
gcloud logging sinks describe <sink-name>
# Get log views
gcloud logging views list --bucket <bucket> --location global
gcloud logging views describe --bucket <bucket> --location global <view-id> # view-id is usually the same as the bucket name
# Get log links
gcloud logging links list --bucket _Default --location global
gcloud logging links describe <link-id> --bucket _Default --location global