AWS - WAF Enum
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
AWS WAF एक वेब एप्लिकेशन फ़ायरवॉल है जिसे वेब एप्लिकेशन या APIs को विभिन्न वेब हमलों से सुरक्षित रखने के लिए डिज़ाइन किया गया है जो उनकी उपलब्धता, सुरक्षा या संसाधन खपत को प्रभावित कर सकते हैं। यह उपयोगकर्ताओं को सुरक्षा नियम स्थापित करके आने वाले ट्रैफ़िक को नियंत्रित करने की शक्ति देता है जो SQL इंजेक्शन या क्रॉस-साइट स्क्रिप्टिंग जैसे सामान्य हमले के वेक्टर को कम करता है और कस्टम फ़िल्टरिंग नियमों को परिभाषित करके भी।
Web ACL नियमों का एक संग्रह है जिसे आप अपने वेब एप्लिकेशन या APIs पर लागू कर सकते हैं। जब आप एक Web ACL को एक संसाधन के साथ जोड़ते हैं, तो AWS WAF आने वाले अनुरोधों का निरीक्षण करता है जो Web ACL में परिभाषित नियमों के आधार पर होते हैं और निर्दिष्ट क्रियाएँ करता है।
Rule Group नियमों का एक पुन: प्रयोज्य संग्रह है जिसे आप कई Web ACLs पर लागू कर सकते हैं। नियम समूह विभिन्न वेब एप्लिकेशन या APIs के बीच लगातार नियम सेट को प्रबंधित और बनाए रखने में मदद करते हैं।
प्रत्येक नियम समूह का अपना संबंधित क्षमता होती है, जो आपके नियमों, नियम समूहों और वेब ACLs को चलाने के लिए उपयोग किए जाने वाले संचालन संसाधनों की गणना और नियंत्रण में मदद करती है। एक बार जब इसका मान निर्माण के दौरान सेट किया जाता है, तो इसे संशोधित करना संभव नहीं होता।
एक नियम उन शर्तों का एक सेट परिभाषित करता है जिसका उपयोग AWS WAF आने वाले वेब अनुरोधों का निरीक्षण करने के लिए करता है। नियमों के दो मुख्य प्रकार हैं:
Regular Rule: यह नियम प्रकार निर्दिष्ट शर्तों का उपयोग करता है यह निर्धारित करने के लिए कि वेब अनुरोधों को अनुमति दी जाए, अवरुद्ध किया जाए, या गिना जाए।
Rate-Based Rule: एक विशेष IP पते से पांच मिनट की अवधि में अनुरोधों की गिनती करता है। यहां, उपयोगकर्ता एक सीमा परिभाषित करते हैं, और यदि किसी IP से अनुरोधों की संख्या इस सीमा को पांच मिनट के भीतर पार कर जाती है, तो उस IP से आने वाले अगले अनुरोधों को अवरुद्ध कर दिया जाता है जब तक कि अनुरोध दर सीमा से नीचे नहीं गिरती। दर-आधारित नियमों के लिए न्यूनतम सीमा 2000 अनुरोध है।
AWS WAF पूर्व-निर्धारित, प्रबंधित नियम सेट प्रदान करता है जो AWS और AWS Marketplace विक्रेताओं द्वारा बनाए रखे जाते हैं। ये नियम सेट सामान्य खतरों के खिलाफ सुरक्षा प्रदान करते हैं और नए कमजोरियों को संबोधित करने के लिए नियमित रूप से अपडेट किए जाते हैं।
IP Set उन IP पते या IP पते की रेंज की एक सूची है जिन्हें आप अनुमति देना या अवरुद्ध करना चाहते हैं। IP सेट IP-आधारित नियमों को प्रबंधित करने की प्रक्रिया को सरल बनाते हैं।
एक Regex Pattern Set में एक या एक से अधिक नियमित अभिव्यक्तियाँ (regex) होती हैं जो वेब अनुरोधों में खोजने के लिए पैटर्न को परिभाषित करती हैं। यह अधिक जटिल मिलान परिदृश्यों के लिए उपयोगी है, जैसे कि विशेष वर्णों के अनुक्रम को फ़िल्टर करना।
Lock Token का उपयोग WAF संसाधनों को अपडेट करते समय समवर्ती नियंत्रण के लिए किया जाता है। यह सुनिश्चित करता है कि परिवर्तन गलती से एक ही संसाधन को एक साथ अपडेट करने का प्रयास करने वाले कई उपयोगकर्ताओं या प्रक्रियाओं द्वारा अधिलेखित नहीं किए जाते हैं।
AWS WAF में API Keys का उपयोग कुछ API संचालन के लिए अनुरोधों को प्रमाणित करने के लिए किया जाता है। ये कुंजी एन्क्रिप्टेड होती हैं और सुरक्षित रूप से प्रबंधित की जाती हैं ताकि पहुंच को नियंत्रित किया जा सके और यह सुनिश्चित किया जा सके कि केवल अधिकृत उपयोगकर्ता WAF कॉन्फ़िगरेशन में परिवर्तन कर सकें।
Example: CAPTCHA API का एकीकरण।
एक Permission Policy एक IAM नीति है जो यह निर्दिष्ट करती है कि कौन AWS WAF संसाधनों पर क्रियाएँ कर सकता है। अनुमतियों को परिभाषित करके, आप WAF संसाधनों तक पहुंच को नियंत्रित कर सकते हैं और यह सुनिश्चित कर सकते हैं कि केवल अधिकृत उपयोगकर्ता कॉन्फ़िगरेशन बना, अपडेट या हटा सकें।
AWS WAF में स्कोप पैरामीटर यह निर्दिष्ट करता है कि WAF नियम और कॉन्फ़िगरेशन क्षेत्रीय एप्लिकेशन या Amazon CloudFront वितरण पर लागू होते हैं या नहीं।
REGIONAL: क्षेत्रीय सेवाओं पर लागू होता है जैसे कि एप्लिकेशन लोड बैलेंसर (ALB), Amazon API गेटवे REST API, AWS AppSync GraphQL API, Amazon Cognito उपयोगकर्ता पूल, AWS App Runner सेवा और AWS Verified Access उदाहरण। आप उस AWS क्षेत्र को निर्दिष्ट करते हैं जहां ये संसाधन स्थित हैं।
CLOUDFRONT: Amazon CloudFront वितरण पर लागू होता है, जो वैश्विक होते हैं। CloudFront के लिए WAF कॉन्फ़िगरेशन us-east-1
क्षेत्र के माध्यम से प्रबंधित होते हैं चाहे सामग्री कहीं भी सेवा की जाए।
Conditions उन तत्वों को निर्दिष्ट करते हैं जिनका AWS WAF आने वाले HTTP/HTTPS अनुरोधों की निगरानी करता है, जिसमें XSS, भौगोलिक स्थान (GEO), IP पते, आकार की सीमाएँ, SQL इंजेक्शन, और पैटर्न (स्ट्रिंग और regex मिलान) शामिल हैं। यह ध्यान रखना महत्वपूर्ण है कि देश के आधार पर CloudFront स्तर पर प्रतिबंधित अनुरोध WAF तक नहीं पहुँचेंगे।
प्रत्येक AWS खाता कॉन्फ़िगर कर सकता है:
100 शर्तें प्रत्येक प्रकार के लिए (Regex के लिए, केवल 10 शर्तें अनुमति है, लेकिन इस सीमा को बढ़ाया जा सकता है)।
100 नियम और 50 Web ACLs।
अधिकतम 5 दर-आधारित नियम।
जब WAF को एक एप्लिकेशन लोड बैलेंसर के साथ लागू किया जाता है, तो 10,000 अनुरोध प्रति सेकंड की थ्रूपुट।
क्रियाएँ प्रत्येक नियम को सौंपित की जाती हैं, विकल्प होते हैं:
Allow: अनुरोध को उचित CloudFront वितरण या एप्लिकेशन लोड बैलेंसर पर अग्रेषित किया जाता है।
Block: अनुरोध को तुरंत समाप्त कर दिया जाता है।
Count: नियम की शर्तों को पूरा करने वाले अनुरोधों की गिनती करता है। यह नियम परीक्षण के लिए उपयोगी है, नियम की सटीकता की पुष्टि करने के लिए इसे Allow या Block पर सेट करने से पहले।
CAPTCHA and Challenge: यह सत्यापित किया जाता है कि अनुरोध बॉट से नहीं आ रहा है CAPTCHA पहेलियों और चुपचाप चुनौतियों का उपयोग करके।
यदि कोई अनुरोध Web ACL के भीतर किसी भी नियम से मेल नहीं खाता है, तो यह डिफ़ॉल्ट क्रिया (Allow या Block) के अधीन होता है। नियम निष्पादन का क्रम, जो Web ACL के भीतर परिभाषित होता है, महत्वपूर्ण है और आमतौर पर इस अनुक्रम का पालन करता है:
Whitelisted IPs को अनुमति दें।
Blacklisted IPs को अवरुद्ध करें।
किसी भी हानिकारक हस्ताक्षरों से मेल खाने वाले अनुरोधों को अवरुद्ध करें।
AWS WAF CloudWatch के साथ एकीकृत होता है, निगरानी के लिए, जैसे AllowedRequests, BlockedRequests, CountedRequests, और PassedRequests जैसे मैट्रिक्स प्रदान करता है। ये मैट्रिक्स डिफ़ॉल्ट रूप से हर मिनट रिपोर्ट किए जाते हैं और दो सप्ताह की अवधि के लिए बनाए रखे जाते हैं।
CloudFront वितरण के साथ बातचीत करने के लिए, आपको क्षेत्र US East (N. Virginia) निर्दिष्ट करना होगा:
CLI - जब आप CloudFront स्कोप का उपयोग करते हैं तो क्षेत्र US East निर्दिष्ट करें: --scope CLOUDFRONT --region=us-east-1
.
API और SDKs - सभी कॉल के लिए, क्षेत्र अंत बिंदु us-east-1 का उपयोग करें।
क्षेत्रीय सेवाओं के साथ बातचीत करने के लिए, आपको क्षेत्र निर्दिष्ट करना चाहिए:
क्षेत्र यूरोप (स्पेन) के साथ उदाहरण: --scope REGIONAL --region=eu-south-2
हमलावर के दृष्टिकोण से, यह सेवा हमलावर को WAF सुरक्षा और नेटवर्क एक्सपोजर की पहचान करने में मदद कर सकती है जो उसे अन्य वेब को समझौता करने में मदद कर सकती है।
हालांकि, एक हमलावर इस सेवा को बाधित करने में भी रुचि रख सकता है ताकि वेब WAF द्वारा सुरक्षित न हों।
कई Delete और Update ऑपरेशनों में lock token प्रदान करना आवश्यक होगा। यह टोकन संसाधनों पर समवर्ती नियंत्रण के लिए उपयोग किया जाता है, यह सुनिश्चित करते हुए कि परिवर्तन कई उपयोगकर्ताओं या प्रक्रियाओं द्वारा एक ही संसाधन को एक साथ अपडेट करने के प्रयास में गलती से अधिलेखित नहीं होते हैं। इस टोकन को प्राप्त करने के लिए, आप विशिष्ट संसाधन पर संबंधित list या get ऑपरेशनों को कर सकते हैं।
wafv2:CreateRuleGroup
, wafv2:UpdateRuleGroup
, wafv2:DeleteRuleGroup
एक हमलावर प्रभावित संसाधन की सुरक्षा को समझौता करने में सक्षम होगा:
नियम समूह बनाना जो, उदाहरण के लिए, वैध IP पते से वैध ट्रैफ़िक को ब्लॉक कर सकता है, जिससे सेवा का इनकार होता है।
नियम समूहों को अपडेट करना, इसके कार्यों को Block से Allow में संशोधित करने में सक्षम होना।
उन नियम समूहों को हटाना जो महत्वपूर्ण सुरक्षा उपाय प्रदान करते हैं।
निम्नलिखित उदाहरण एक नियम समूह को दिखाता है जो विशिष्ट IP पतों से वैध ट्रैफ़िक को ब्लॉक करेगा:
rule.json फ़ाइल इस तरह दिखेगी:
संभावित प्रभाव: अनधिकृत पहुंच, डेटा उल्लंघन, और संभावित DoS हमले।
wafv2:CreateWebACL
, wafv2:UpdateWebACL
, wafv2:DeleteWebACL
इन अनुमतियों के साथ, एक हमलावर सक्षम होगा:
एक नया Web ACL बनाना, ऐसे नियम पेश करना जो या तो दुर्भावनापूर्ण ट्रैफ़िक को अनुमति देते हैं या वैध ट्रैफ़िक को अवरुद्ध करते हैं, जिससे WAF बेकार हो जाता है या सेवा का इनकार होता है।
मौजूदा Web ACLs को अपडेट करना, हमलों की अनुमति देने के लिए नियमों को संशोधित करना जैसे SQL इंजेक्शन या क्रॉस-साइट स्क्रिप्टिंग, जिन्हें पहले अवरुद्ध किया गया था, या वैध अनुरोधों को अवरुद्ध करके सामान्य ट्रैफ़िक प्रवाह को बाधित करना।
एक Web ACL को हटाना, प्रभावित संसाधनों को पूरी तरह से असुरक्षित छोड़ना, जिससे इसे वेब हमलों की एक विस्तृत श्रृंखला के लिए उजागर किया जा सके।
आप केवल निर्दिष्ट WebACL को हटा सकते हैं यदि ManagedByFirewallManager गलत है।
निम्नलिखित उदाहरण दिखाता है कि एक वेब ACL को कैसे अपडेट किया जाए ताकि एक विशिष्ट IP सेट से वैध ट्रैफ़िक को ब्लॉक किया जा सके। यदि मूल IP उन IPs में से किसी से मेल नहीं खाता है, तो डिफ़ॉल्ट क्रिया भी इसे ब्लॉक करना होगा, जिससे DoS होगा।
Original Web ACL:
Web ACL को अपडेट करने के लिए कमांड:
rule.json फ़ाइल इस तरह दिखेगी:
संभावित प्रभाव: अनधिकृत पहुंच, डेटा उल्लंघन, और संभावित DoS हमले।
wafv2:AssociateWebACL
, wafv2:DisassociateWebACL
wafv2:AssociateWebACL
अनुमति एक हमलावर को संसाधनों के साथ वेब ACLs (एक्सेस कंट्रोल लिस्ट) को जोड़ने की अनुमति देगी, जिससे सुरक्षा नियंत्रणों को बायपास किया जा सकेगा, अनधिकृत ट्रैफ़िक को एप्लिकेशन तक पहुँचने की अनुमति मिलेगी, जो संभावित रूप से SQL इंजेक्शन या क्रॉस-साइट स्क्रिप्टिंग (XSS) जैसे शोषणों की ओर ले जा सकता है। इसके विपरीत, wafv2:DisassociateWebACL
अनुमति के साथ, हमलावर अस्थायी रूप से सुरक्षा सुरक्षा को निष्क्रिय कर सकता है, संसाधनों को बिना पहचान के कमजोरियों के लिए उजागर कर सकता है।
संरक्षित संसाधन प्रकार के आधार पर अतिरिक्त अनुमतियों की आवश्यकता होगी:
Associate
apigateway:SetWebACL
apprunner:AssociateWebAcl
appsync:SetWebACL
cognito-idp:AssociateWebACL
ec2:AssociateVerifiedAccessInstanceWebAcl
elasticloadbalancing:SetWebAcl
Disassociate
apigateway:SetWebACL
apprunner:DisassociateWebAcl
appsync:SetWebACL
cognito-idp:DisassociateWebACL
ec2:DisassociateVerifiedAccessInstanceWebAcl
elasticloadbalancing:SetWebAcl
संभावित प्रभाव: संसाधनों की सुरक्षा का समझौता, शोषण का बढ़ा हुआ जोखिम, और AWS WAF द्वारा संरक्षित AWS वातावरण में संभावित सेवा व्यवधान।
wafv2:CreateIPSet
, wafv2:UpdateIPSet
, wafv2:DeleteIPSet
एक हमलावर AWS WAF द्वारा प्रबंधित IP सेट बनाने, अपडेट करने और हटाने में सक्षम होगा। यह खतरनाक हो सकता है क्योंकि यह दुर्भावनापूर्ण ट्रैफ़िक की अनुमति देने के लिए नए IP सेट बना सकता है, वैध ट्रैफ़िक को ब्लॉक करने के लिए IP सेट को संशोधित कर सकता है, दुर्भावनापूर्ण IP पते शामिल करने के लिए मौजूदा IP सेट को अपडेट कर सकता है, विश्वसनीय IP पते हटा सकता है या महत्वपूर्ण संसाधनों की सुरक्षा के लिए बनाए गए महत्वपूर्ण IP सेट को हटा सकता है।
निम्नलिखित उदाहरण दिखाता है कि इच्छित IP सेट द्वारा मौजूदा IP सेट को कैसे ओवरराइट करें:
संभावित प्रभाव: अनधिकृत पहुंच और वैध ट्रैफ़िक का अवरोध।
wafv2:CreateRegexPatternSet
, wafv2:UpdateRegexPatternSet
, wafv2:DeleteRegexPatternSet
इन अनुमतियों के साथ एक हमलावर AWS WAF द्वारा उपयोग किए जाने वाले नियमित अभिव्यक्ति पैटर्न सेट को नियंत्रित और फ़िल्टर करने के लिए हेरफेर कर सकेगा।
नए regex पैटर्न बनाना एक हमलावर को हानिकारक सामग्री की अनुमति देने में मदद करेगा
मौजूदा पैटर्न को अपडेट करते समय, एक हमलावर सुरक्षा नियमों को बायपास कर सकेगा
उन पैटर्न को हटाना जो दुर्भावनापूर्ण गतिविधियों को अवरुद्ध करने के लिए डिज़ाइन किए गए हैं, एक हमलावर को दुर्भावनापूर्ण पेलोड भेजने और सुरक्षा उपायों को बायपास करने की अनुमति दे सकता है।
संभावित प्रभाव: सुरक्षा नियंत्रणों को बायपास करना, दुर्भावनापूर्ण सामग्री की अनुमति देना और संभावित रूप से संवेदनशील डेटा को उजागर करना या AWS WAF द्वारा संरक्षित सेवाओं और संसाधनों को बाधित करना।
wavf2:PutLoggingConfiguration
& iam:CreateServiceLinkedRole
), wafv2:DeleteLoggingConfiguration
एक हमलावर के पास wafv2:DeleteLoggingConfiguration
होने पर वह निर्दिष्ट वेब ACL से लॉगिंग कॉन्फ़िगरेशन को हटा सकेगा। इसके बाद, wavf2:PutLoggingConfiguration
और iam:CreateServiceLinkedRole
अनुमतियों के साथ, एक हमलावर लॉगिंग कॉन्फ़िगरेशन बना या बदल सकता है (इसे हटाने के बाद) ताकि या तो लॉगिंग को पूरी तरह से रोका जा सके या लॉग को अनधिकृत स्थलों पर पुनर्निर्देशित किया जा सके, जैसे कि Amazon S3 बकेट, Amazon CloudWatch Logs लॉग समूह या Amazon Kinesis Data Firehose के तहत नियंत्रण।
निर्माण प्रक्रिया के दौरान, सेवा स्वचालित रूप से निर्दिष्ट लॉगिंग गंतव्य पर लॉग लिखने की अनुमति देने के लिए आवश्यक अनुमतियों को सेट करती है:
Amazon CloudWatch Logs: AWS WAF निर्दिष्ट CloudWatch Logs लॉग समूह पर एक संसाधन नीति बनाता है। यह नीति सुनिश्चित करती है कि AWS WAF के पास लॉग समूह में लॉग लिखने के लिए आवश्यक अनुमतियाँ हैं।
Amazon S3 बकेट: AWS WAF निर्दिष्ट S3 बकेट पर एक बकेट नीति बनाता है। यह नीति AWS WAF को निर्दिष्ट बकेट में लॉग अपलोड करने के लिए आवश्यक अनुमतियाँ प्रदान करती है।
Amazon Kinesis Data Firehose: AWS WAF Kinesis Data Firehose के साथ बातचीत करने के लिए विशेष रूप से एक सेवा-लिंक्ड भूमिका बनाता है। यह भूमिका AWS WAF को कॉन्फ़िगर की गई Firehose स्ट्रीम में लॉग वितरित करने की अनुमति देती है।
यह संभव है कि प्रति वेब ACL केवल एक लॉगिंग गंतव्य को परिभाषित किया जाए।
संभावित प्रभाव: सुरक्षा घटनाओं में अस्पष्ट दृश्यता, घटना प्रतिक्रिया प्रक्रिया को कठिन बनाना, और AWS WAF-सुरक्षित वातावरण में गुप्त दुर्भावनापूर्ण गतिविधियों को सुविधाजनक बनाना।
wafv2:DeleteAPIKey
इस अनुमति के साथ एक हमलावर मौजूदा API कुंजियों को हटा सकता है, जिससे CAPTCHA अप्रभावी हो जाता है और इस पर निर्भर करने वाली कार्यक्षमता, जैसे कि फॉर्म सबमिशन और एक्सेस नियंत्रण, बाधित हो जाती है। इस CAPTCHA के कार्यान्वयन के आधार पर, यह या तो CAPTCHA बायपास की ओर ले जा सकता है या यदि संसाधन में त्रुटि प्रबंधन सही तरीके से सेट नहीं किया गया है तो DoS की ओर।
संभावित प्रभाव: CAPTCHA सुरक्षा को निष्क्रिय करना या एप्लिकेशन की कार्यक्षमता को बाधित करना, जिससे सुरक्षा उल्लंघन और संभावित डेटा चोरी हो सकती है।
wafv2:TagResource
, wafv2:UntagResource
एक हमलावर AWS WAFv2 संसाधनों, जैसे कि वेब ACLs, नियम समूह, IP सेट, regex पैटर्न सेट, और लॉगिंग कॉन्फ़िगरेशन से टैग जोड़ने, संशोधित करने या हटाने में सक्षम होगा।
संभावित प्रभाव: संसाधन छेड़छाड़, जानकारी का रिसाव, लागत हेरफेर और संचालन में विघटन।
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE) GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)