
AWS EC2 पर SSRF हमलों को रोकें, अधिक सुरक्षित Instance Metadata Service v2 (IMDSv2) में स्वचालित अपग्रेड के माध्यम से।
AWS EC2 पर SSRF हमलों को रोकें, अधिक सुरक्षित Instance Metadata Service v2 (IMDSv2) में स्वचालित अपग्रेड के माध्यम से।
उद्देश्य और कार्यक्षमता
इंजीनियरिंग टीमों के पास AWS में कंप्यूट इंफ्रास्ट्रक्चर की एक विविध श्रेणी हो सकती है जिसे उन्हें मेटाडेटा सेवा का लाभ उठाने वाली कुछ कमजोरियों से बचाने की आवश्यकता होती है। यदि कोई IAM उपयोग किया जाता है या यदि इंस्टेंस को बूट करते समय कुछ उपयोगकर्ता डेटा जानकारी की आवश्यकता हो सकती है, तो इंस्टेंस पर मेटाडेटा सेवा चलना आवश्यक है। आपके इंस्टेंस के हमले की सतह को सीमित करना सेवा द्वारा प्रदान की गई जानकारी को चुराकर आपके वातावरण में पिवट करने की क्षमता को रोकने में महत्वपूर्ण है। अतीत में कई प्रसिद्ध हमलों ने इंस्टेंस से जुड़ी भूमिका का शोषण करने या मेटाडेटा सेवा के माध्यम से सुलभ संवेदनशील डेटा को डंप करने के लिए इस विशेष सेवा का लाभ उठाया है। Metabadger यह पहचानने में मदद कर सकता है कि आप इंस्टेंस मेटाडेटा सेवा का उपयोग कहां और कैसे कर रहे हैं, साथ ही आपको EC2 में संचालन करते समय अपने समग्र जोखिम को कम करने के लिए किसी भी अवांछित हमले का लाभ कम करने की क्षमता प्रदान करता है।
इस टूल का उपयोग आपके AWS कंप्यूट इंफ्रास्ट्रक्चर को प्रभावित कर सकता है क्योंकि सभी सेवाएं और एप्लिकेशन मेटाडेटा सेवा के बिना या संस्करण 2 पर काम नहीं कर सकते हैं। इसे अपने उत्पादन वातावरण में तैनात करते समय सावधानी बरतें और यदि कुछ सामान्य से अलग लगता है तो एक रोलबैक योजना तैयार रखें। Metabadger में -v1 फ्लैग का उपयोग करके सेवा के डिफ़ॉल्ट संस्करण 1 पर वापस जाने की क्षमता अंतर्निहित है, आप इसका उपयोग अपने इंस्टेंस को डिफ़ॉल्ट पर जल्दी से वापस लाने के लिए कर सकते हैं। आदर्श रूप से, आपको इस टूल को चलाना चाहिए और अपने मेटाडेटा संस्करण को गैर-उत्पादन वातावरण में एक परीक्षण स्थल के रूप में अपडेट करना चाहिए, इससे पहले कि इसे लागू करें।
चरण 1
प्रारंभ में, हम किसी विशेष AWS क्षेत्र में मेटाडेटा सेवा के अपने समग्र उपयोग की खोज करना चाहते हैं। Metabadger आपके /.aws/credentials फ़ाइल में आपके क्रेडेंशियल जिस क्षेत्र की ओर इशारा करते हैं या वर्तमान भूमिका जो मान ली गई है, उस क्षेत्र में आपके उपयोग की वर्तमान स्थिति का मूल्यांकन करेगा। यदि आप वर्तमान में कॉन्फ़िगर किए गए क्षेत्र से भिन्न क्षेत्र में बदलना चाहते हैं, तो आप discover-metadata कमांड चलाते समय --region फ्लैग भी निर्दिष्ट कर सकते हैं। एक बार जब आपको इस बात का अच्छा अंदाजा हो जाता है कि आपके इंस्टेंस किस संस्करण पर चल रहे हैं और सेवा सक्षम या अक्षम है या नहीं, तो आप सेवा को कठोर बनाने के लिए अधिक परिभाषित कार्य योजना बनाने में सक्षम होंगे। ध्यान दें कि आप प्रत्येक मेटाडेटा विकल्प का विशिष्ट अर्थ यहां पा सकते हैं।
चरण 2
सेवा के v2 में स्विच करने का निर्णय लेते समय मूल्यांकन किए जाने वाले क्षेत्रों में से एक IAM भूमिकाओं का उपयोग है। Metabadger आपको एक क्षेत्र में उन इंस्टेंस की पहचान करने देता है जो पहले से ही IAM भूमिका का उपयोग कर रहे हों। discover-role-usage कमांड उन इंस्टेंस की एक सूची आउटपुट करेगा जिनके साथ भूमिकाएं संलग्न हैं। यदि आपके पास बहुत सारे इंस्टेंस भूमिकाओं का उपयोग कर रहे हैं, तो आपको सेवा को v2 में अपडेट करते समय सावधानी बरतनी चाहिए ताकि यह सुनिश्चित हो सके कि आपके वर्कलोड की समग्र कार्यक्षमता प्रभावित न हो।
चरण 3
अपनी प्रारंभिक खोज और मूल्यांकन पूरा करने के बाद, अब आप अपने कंप्यूट इंफ्रास्ट्रक्चर को कठोर बनाने के लिए एक चरणबद्ध दृष्टिकोण बना सकते हैं, ताकि या तो मेटाडेटा सेवा के v2 का उपयोग किया जा सके या जहां इसका उपयोग नहीं किया जा सकता है, वहां इसे अक्षम किया जा सके। harden-metadata कमांड आपको डिफ़ॉल्ट रूप से किसी विशेष क्षेत्र में सभी इंस्टेंस को अपडेट करने की अनुमति देता है। आप --tags फ्लैग का उपयोग करके इंस्टेंस टैग भी पास कर सकते हैं या एक इनपुट फ़ाइल जिसमें इंस्टेंस की csv सूची होती है, जिस पर आप एक कॉन्फ़िगरेशन लागू करना चाहते हैं। एक बार जब आप v2 में उचित अपडेट कर लेते हैं और जहां सेवा का उपयोग नहीं किया जाता है, उसे अक्षम कर देते हैं, तो आप चरण 1 में दी गई वस्तुओं का उपयोग करके पुनर्मूल्यांकन कर सकते हैं ताकि यह पुष्टि हो सके कि आपका वातावरण लॉकडाउन है। यदि आपके पास कुछ ऐसे इंस्टेंस हैं जिन्हें आप अपडेट नहीं करना चाहते हैं, तो आप उन्हें --exclusion फ्लैग के माध्यम से टैग या इंस्टेंस आईडी द्वारा बाहर कर सकते हैं।
Metabadger को निम्नलिखित अनुमति के साथ एक IAM भूमिका या क्रेडेंशियल की आवश्यकता होती है:
ec2:ModifyInstanceAttribute
ec2:DescribeInstances
Instance Metadata Service में परिवर्तन करते समय, आपको सावधान रहना चाहिए और AWS से संस्करण 2 में सुरक्षित रूप से अपग्रेड करने पर अतिरिक्त मार्गदर्शन का पालन करना चाहिए। Metabadger को AWS में आपके कंप्यूट इंफ्रास्ट्रक्चर को और अधिक सुरक्षित करने के लिए इस प्रक्रिया में आपकी सहायता करने के लिए डिज़ाइन किया गया था।
IMDSv2 में अपडेट करने के लिए AWS बेस्ट प्रैक्टिस गाइड
pip के माध्यम से स्थापित करें
pip3 install --user metabadger
Github के माध्यम से स्थापित करें
$ git clone https://github.com/salesforce/metabadger
$ cd metabadger
$ pip install -e .
$ metabadger
Usage: metabadger [OPTIONS] COMMAND [ARGS]...
Metabadger is an AWS Security Tool used for discovering and hardening the
Instance Metadata service.
Options:
--version Show the version and exit.
--help Show this message and exit.
Commands:
cloudwatch-metrics Pull CloudWatch Metrics for MetadataNoToken usage
disable-metadata Disable the IMDS service on EC2 instances
discover-metadata Discover summary of IMDS service usage within EC2
discover-role-usage Discover summary of IAM role usage for EC2
harden-metadata Harden the AWS instance metadata service from v1 to v2
cloudwatch-metrics
AWS CloudWatch में MetadataNoToken मीट्रिक के साथ अपने IMDSv1 के उपयोग के बारे में सीधे जानकारी प्राप्त करें। यह कमांड आपको पिछले एक घंटे के भीतर उन इंस्टेंस को दिखाएगा जो सक्रिय रूप से सेवा के v1 का उपयोग कर रहे हैं। ध्यान दें कि इस कमांड को चलाते समय आपके पास CloudWatch मीट्रिक देखने के लिए IAM अनुमतियां होनी चाहिए।
Options:
-a, --all-region Pull CloudWatch metrics across all available
regions
-r, --region TEXT Specify which AWS region you will perform this
command in
-t, --time-period INTEGER The CloudWatch time period in seconds used to
track the IMDS v1 metric
-p, --profile TEXT Specify the AWS IAM profile.
--help Show this message and exit.
discover-metadata
आपके समग्र इंस्टेंस मेटाडेटा सेवा उपयोग का सारांश, जिसमें कौन सा संस्करण और समग्र प्रवर्तन प्रतिशत शामिल है। इन नंबरों का उपयोग करके आप समझ पाएंगे कि आपका मेटाडेटा उपयोग कितना कठोर है और आप v2 बनाम v1 को कहां लागू कर रहे हैं।
Options:
-a, --all-region Provide a metadata summary for all available regions in the AWS account
-j, --json Get metadata summary in JSON format
-r, --region TEXT Specify which AWS region you will perform this command in
-p, --profile TEXT Specify the AWS IAM profile.
discover-role-usage
इंस्टेंस और उनके द्वारा उपयोग की जा रही भूमिकाओं का सारांश, यह आपको इस बात का अच्छा अंदाजा देगा कि मेटाडेटा सेवा में अपडेट करते समय आपको कितनी सावधानी बरतनी चाहिए।
Options:
-p, --profile TEXT Specify the AWS IAM profile.
-r, --region TEXT Specify which AWS region you will perform this command in
harden-metadata
इंस्टेंस को मेटाडेटा v1 या v2 का उपयोग करने के लिए संशोधित करने और ड्राई रन मोड चलाकर यह समझने की क्षमता कि कितने इंस्टेंस संशोधित किए जाएंगे।
Options:
-a, --all-region Update IMDS across all regions in your account
-e, --exclusion The exclusion flag will apply to everything besides what is specified, tags or instances
-d, --dry-run Dry run of hardening metadata changes
-v1, --v1 Enforces v1 of the metadata service
-i, --input-file PATH Path of csv file of instances to harden IMDS for
-t, --tags TEXT A comma seperated list of tags to apply the hardening setting to
-r, --region TEXT Specify which AWS region you will perform this command in
-p, --profile TEXT Specify the AWS IAM profile.
disable-metadata
इस कमांड का उपयोग इंस्टेंस पर मेटाडेटा सेवा को पूरी तरह से अक्षम करने के लिए करें।
Options:
-e, --exclusion The exclusion flag will apply to everything besides what is specified, tags or instances
-d, --dry-run Dry run of disabling the metadata service
-i, --input-file PATH Path of csv file of instances to disable IMDS for
-t, --tags TEXT A comma seperated list of tags to apply the hardening setting to
-r, --region TEXT Specify which AWS region you will perform this command in
-p, --profile TEXT Specify the AWS IAM profile.
Metabadger द्वारा किए गए सभी परिवर्तन कार्यशील निर्देशिका में metabadger.log नामक फ़ाइल में सहेजे जाएंगे। फ़ाइल में टूल द्वारा मेटाडेटा सेवा को बदलने पर किए गए प्रत्येक कार्य के लिए निम्नलिखित शामिल होंगे: