AWS - CloudTrail Enum
AWS - CloudTrail Enum
CloudTrail
AWS CloudTrail आपके AWS परिवेश में गतिविधि को रिकॉर्ड और मॉनिटर करता है। यह विस्तृत घटना लॉग को कैप्चर करता है, जिसमें सभी AWS संसाधनों के साथ हुए सभी इंटरैक्शन के लिए कौन क्या करता था, कब और कहाँ से, शामिल है। यह सुरक्षा विश्लेषण, अनुपालन में मदद करने वाले परिवर्तनों और क्रियाओं का एक ऑडिट ट्रेल प्रदान करता है। CloudTrail, उपयोगकर्ता और संसाधन व्यवहार को समझने, सुरक्षा स्थिति को बढ़ाने और विनियामक अनुपालन सुनिश्चित करने के लिए आवश्यक है।
प्रत्येक लॉग घटना में निम्नलिखित शामिल हैं:
कॉल किए गए API का नाम:
eventName
कॉल की सेवा:
eventSource
समय:
eventTime
IP पता:
SourceIPAddress
एजेंट मेथड:
userAgent
। उदाहरण:Signing.amazonaws.com - AWS प्रबंधन कंसोल से
console.amazonaws.com - खाते का रूट उपयोगकर्ता
lambda.amazonaws.com - AWS Lambda
अनुरोध पैरामीटर:
requestParameters
प्रतिक्रिया तत्व:
responseElements
घटनाएँ लगभग प्रत्येक 5 मिनट में एक नए लॉग फ़ाइल में लिखी जाती हैं, वे CloudTrail द्वारा धारित की जाती हैं और अंततः, लॉग फ़ाइलें S3 में लगभग 15 मिनट बाद पहुंचाई जाती हैं। CloudTrails लॉग खातों और क्षेत्रों के बीच समूहीकृत किए जा सकते हैं। CloudTrail आपको लॉग फ़ाइल अखंडता का उपयोग करने की अनुमति देता है ताकि आप सत्यापित कर सकें कि आपकी लॉग फ़ाइलें उसी स्थिति में बनी हुई हैं जिसमें CloudTrail ने आपको उन्हें पहुंचाया है। यह एक डाइजेस्ट फ़ाइल में लॉग का SHA-256 हैश बनाता है। नई लॉग का sha-256 हैश प्रति घंटे बनाया जाता है। ट्रेल बनाते समय इवेंट सिलेक्टर्स आपको सूचित करने की अनुमति देंगे कि लॉग करने के लिए ट्रेल: प्रबंधन, डेटा या इंसाइट्स इवेंट्स।
लॉग S3 बकेट में सहेजे जाते हैं। डिफ़ॉल्ट रूप से सर्वर साइड एन्क्रिप्शन का उपयोग किया जाता है (SSE-S3) ताकि AWS उन लोगों के लिए सामग्री को डिक्रिप्ट कर सके जिनके पास पहुंच है, लेकिन अतिरिक्त सुरक्षा के लिए आप SSE के साथ KMS और अपने खुद के कुंजियों का उपयोग कर सकते हैं।
लॉग एक S3 बकेट में इस नाम प्रारूप के साथ स्टोर किए जाते हैं:
BucketName/AWSLogs/AccountID/CloudTrail/RegionName/YYY/MM/DD
जिसमें BucketName है:
aws-cloudtrail-logs-<accountid>-<random>
उदाहरण:
aws-cloudtrail-logs-947247140022-ffb95fe7/AWSLogs/947247140022/CloudTrail/ap-south-1/2023/02/22/
हर फ़ोल्डर में हर लॉग का नाम इस प्रारूप का अनुसरण करेगा: AccountID_CloudTrail_RegionName_YYYYMMDDTHHMMZ_Random.json.gz
लॉग फ़ाइल नेमिंग कनवेंशन
इसके अतिरिक्त, डाइजेस्ट फ़ाइलें (फ़ाइल अखंडता की जांच के लिए) एक ही बकेट में होंगी:
मल्टीपल अकाउंट से लॉग्स को समूहीकृत करें
उस AWS अकाउंट में एक ट्रायल बनाएं जहां आप चाहते हैं कि लॉग फ़ाइलें पहुंचाई जाएं
CloudTrail के लिए पारंगतियाँ लागू करें जो CloudTrail के लिए क्रॉस-अकाउंट पहुंच को स्वीकार करती हैं और हर AWS अकाउंट को पहुंच की आवश्यकता है
अन्य AWS अकाउंट में एक नया ट्रेल बनाएं और चुनें कि चरण 1 में बनाए गए बकेट का उपयोग करें
हालांकि, यदि आप सभी लॉग्स को एक ही S3 बकेट में सहेज सकते हैं, तो आप एकल AWS अकाउंट में सम्मिलित क्लाउडट्रेल लॉग्स को क्लाउडवॉच लॉग्स में समूहीकृत नहीं कर सकते।
ध्यान रखें कि एक खाता में विभिन्न ट्रेल हो सकते हैं जिन्हें CloudTrail सक्षम किया गया है और वे एक ही (या भिन्न) लॉग्स को विभिन्न बकेट में स्टोर कर सकते हैं।
1 में सभी ऑर्ग अकाउंट से क्लाउडट्रेल
क्लाउडट्रेल बनाते समय, संगठन के सभी अकाउंटों के लिए क्लाउडट्रेल को सक्रिय करने और केवल 1 बकेट में लॉग प्राप्त करने की संकेतित करना संभव है:
इस तरह आप सभी क्षेत्रों में सभी अकाउंटों में क्लाउडट्रेल को आसानी से कॉन्फ़िगर कर सकते हैं और लॉग्स को 1 अकाउंट में सेंट्रलाइज कर सकते हैं (जिसे आपको सुरक्षित रखना चाहिए)।
लॉग फ़ाइलें जांचना
आप यह देखकर सत्यापित कर सकते हैं कि लॉग में कोई परिवर्तन नहीं किया गया है
लॉग्स को CloudWatch में भेजें
CloudTrail स्वचालित रूप से लॉग्स को CloudWatch में भेज सकता है ताकि आप आलर्ट सेट कर सकें जब संदेहपूर्ण गतिविधियाँ की जाती हैं। ध्यान दें कि CloudTrail को लॉग्स को CloudWatch में भेजने की अनुमति देने के लिए एक रोल बनाना होगा जो इस क्रिया की अनुमति देता है। यदि संभव हो तो, ये सिफारिश की जाती है कि इन क्रियाओं को करने के लिए AWS डिफ़ॉल्ट रोल का उपयोग किया जाए। यह रोल CloudTrail को निम्नलिखित कार्रवाइयों को करने की अनुमति देगा:
CreateLogStream: इससे CloudWatch Logs लॉग स्ट्रीम बनाने में सहायता मिलती है
PutLogEvents: CloudTrail लॉग्स को CloudWatch Logs लॉग स्ट्रीम में पहुंचाने में मदद मिलती है
घटना इतिहास
CloudTrail इवेंट हिस्ट्री आपको एक तालिका में जांचने की अनुमति देता है जिसमें रिकॉर्ड किए गए लॉग्स होते हैं:
इंसाइट्स
CloudTrail Insights स्वचालित रूप से विश्लेषण करता है, CloudTrail trails से लेखन प्रबंधन घटनाओं का अलर्ट देता है और आपको असामान्य गतिविधि की सूचना देता है। उदाहरण के लिए, यदि TerminateInstance
घटनाओं में एक वृद्धि होती है जो स्थापित आधारों से भिन्न है, तो आप इसे एक इंसाइट घटना के रूप में देखेंगे। ये घटनाएं असामान्य API गतिविधि को खोजना और उसके परिणाम से निपटना पहले से भी आसान बना देती हैं।
इंसाइट्स को CloudTrail लॉग्स के साथ ही एक ही बकेट में संग्रहीत किया जाता है: BucketName/AWSLogs/AccountID/CloudTrail-Insight
सुरक्षा
CloudTrail लॉग फ़ाइल अखंडता |
|
अनधिकृत पहुंचन को रोकें |
|
लॉग फ़ाइलों को हटाने से रोकें |
|
```bash | |
# Get trails info | |
aws cloudtrail list-trails | |
aws cloudtrail describe-trails | |
aws cloudtrail list-public-keys | |
aws cloudtrail get-event-selectors --trail-name <trail_name> | |
aws [--region us-east-1] cloudtrail get-trail-status --name [default] |
Get insights
aws cloudtrail get-insight-selectors --trail-name <trail_name>
Get data store info
aws cloudtrail list-event-data-stores aws cloudtrail list-queries --event-data-store aws cloudtrail get-query-results --event-data-store --query-id
अधिक जानकारी के लिए CSV Injections की पेज देखें:
इस विशेष तकनीक के बारे में अधिक जानकारी के लिए https://rhinosecuritylabs.com/aws/cloud-security-csv-injection-aws-cloudtrail/
डिटेक्शन को छलना
HoneyTokens बायपास
हनीटोकन्स को संवेदनशील जानकारी की निकासी का पता लगाने के लिए बनाया गया है। AWS के मामले में, वे AWS कुंजी हैं जिनका उपयोग मॉनिटर किया जाता है, अगर कुछ ऐसा होता है जो उस कुंजी के साथ कार्रवाई को ट्रिगर करता है, तो किसी ने उस कुंजी को चुराया होगा।
हालांकि, यह मॉनिटरिंग CloudTrail के माध्यम से की जाती है, और कुछ AWS सेवाएं हैं जो CloudTrail को लॉग नहीं भेजती हैं (यहां सूची देखें). इन सेवाओं में से कुछ त्रुटि के साथ उत्तर देती हैं जिसमें कुंजी भूमिका का ARN होता है अगर कोई अनधिकृत (हनीटोकन कुंजी) इसका उपयोग करने की कोशिश करता है।
इस तरह, एक हमलावर किसी भी लॉग को ट्रिगर किए बिना कुंजी का ARN प्राप्त कर सकता है। ARN में हमलावर को AWS खाता आईडी और नाम दिखाई देता है, इसलिए हमलावर कंपनियों के खातों की आईडी और नाम को पहचानना आसान होता है, इस तरह एक हमलावर हनीटोकन की पहचान कर सकता है।
HoneyTokens डिटेक्शन
Pacu यह जांचता है कि कुंजी Canarytokens, SpaceCrab, SpaceSiren** में से किसका है:
अगर
canarytokens.org
भूमिका या खाता आईडी में प्रकट होता है या त्रुटि संदेश में534261010715
प्रकट होता है।उन्हें हाल ही में जांचने पर पाया गया है कि वे खाता
717712589309
का उपयोग कर रहे हैं और अब भी नाम मेंcanarytokens.com
स्ट्रिंग है।अगर त्रुटि संदेश में भूमिका में
SpaceCrab
प्रकट होता हैSpaceSiren उज्ज्वलताओं को उत्पन्न करने के लिए uuids का उपयोग करता है:
[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}
अगर नाम यादृच्छिक रूप से उत्पन्न लगता है, तो उच्च संभावनाएं हैं कि यह एक HoneyToken है।
ध्यान दें कि सभी सार्वजनिक API जिनका पता चला है कि वे CloudTrail लॉग नहीं बना रहे हैं, अब सुधारित हो गए हैं, इसलिए शायद आपको अपना खुद का खोजना पड़ेगा...
या आप एकाउंट आईडी को कोडेड के अंदर से प्राप्त कर सकते हैं जैसा कि यहाँ स्पष्ट किया गया है और अपनी Honeytokens AWS खातों की सूची के साथ खाता आईडी जांच सकते हैं:
अधिक जानकारी के लिए मूल शोध देखें।
तीसरे इंफ्रास्ट्रक्चर तक पहुंचना
कुछ AWS सेवाएं कुछ इंफ्रास्ट्रक्चर उत्पन्न करेंगी जैसे डेटाबेस या कुबरनेटीज़ क्लस्टर (EKS)। एक उपयोगकर्ता उन सेवाओं के साथ सीधे बातचीत कर रहा होगा (जैसे कुबरनेटीज़ API) वह AWS API का उपयोग नहीं करेगा, इसलिए CloudTrail इस संचार को नहीं देख पाएगा।
इसलिए, एक उपयोगकर्ता जिसके पास EKS तक पहुंच है जिसने EKS API का URL खोज लिया है, स्थानीय रूप से टोकन उत्पन्न कर सकता है और Cloudtrail द्वारा पहचाने जाने के बिना सीधे API सेवा से बातचीत कर सकता है।
अधिक जानकारी:
pageAWS - EKS Post ExploitationCloudTrail कॉन्फ़िगरेशन संशोधित करना
ट्रेल्स हटाएं
ट्रेल्स रोकें
बहु-क्षेत्र लॉगिंग अक्षम करें
ईवेंट सिलेक्टर्स द्वारा लॉगिंग अक्षम करें
पहले उदाहरण में, एक एकल घटना चयनकर्ता एक JSON एरे के रूप में प्रदान किया गया है जिसमें एक एकल ऑब्ज
सांड बाल्टी कॉन्फ़िगरेशन में परिवर्तन
S3 बाल्टी को हटाएं
बाल्टी नीति को बदलें ताकि क्लाउडट्रेल सेवा से कोई भी लेखन न कर सके
S3 बाल्टी में जीवनकाल नीति जोड़ें ताकि ऑब्जेक्ट्स हटा दिए जा सकें
क्लाउडट्रेल लॉग्स को एन्क्रिप्ट करने के लिए उपयोग किए गए kms कुंजी को अक्षम करें
क्लाउडट्रेल रैंसमवेयर
S3 रैंसमवेयर
आप एक असममिट्री कुंजी उत्पन्न कर सकते हैं और क्लाउडट्रेल डेटा को उस कुंजी से एन्क्रिप्ट करने के लिए कर सकते हैं और निजी कुंजी को हटा दें ताकि क्लाउडट्रेल सामग्री को पुनः प्राप्त नहीं किया जा सके। यह मुख्य रूप से एक S3-KMS रैंसमवेयर है जिसे निम्नलिखित में समझाया गया है:
pageAWS - S3 Post ExploitationKMS रैंसमवेयर
यह पिछले हमले को अलग अनुमतियों की आवश्यकताओं के साथ करने का सबसे आसान तरीका है:
pageAWS - KMS Post Exploitationसंदर्भ
Last updated