Table of Contents
क्रॉस-साइट स्क्रिप्टिंग (XSS) को समझना - सिर्फ एक स्क्रिप्ट इंजेक्शन से अधिक
क्रॉस साइट स्क्रिप्टिंग (XSS) सबसे प्रचलित वेब एप्लिकेशन vulnerability में से एक है, जो लगातार OWASP टॉप टेन में दिखाई देता है। इसके मूल में, XSS एक हमलावर को अन्य उपयोगकर्ताओं द्वारा देखे गए वेब पेज में दुर्भावनापूर्ण क्लाइंट-साइड स्क्रिप्ट्स को इंजेक्ट करने की अनुमति देता है। इंजेक्टेड स्क्रिप्ट पीड़ित के ब्राउज़र के संदर्भ में निष्पादित होती है, जिससे डेटा चोरी (cookies, सत्र टोकन), सत्र के अपहरण, विलोपन, या फ़िशिंग साइटों पर पुनर्निर्देशन किया जा सकता है। यह समझने के लिए कि फायरवॉल कैसे मदद करते हैं - और वे किस प्रकार कम हो जाते हैं - हमें पहले तीन XSS को अलग करना चाहिए:
- ]Stored (Persistent) XSS - दुर्भावनापूर्ण स्क्रिप्ट स्थायी रूप से लक्ष्य सर्वर (जैसे, डेटाबेस, टिप्पणी क्षेत्र, या मंच पोस्ट में) पर संग्रहीत है। प्रभावित पृष्ठ पर जाने वाले प्रत्येक उपयोगकर्ता पेलोड को निष्पादित करता है।
- Reflated (गैर-संभावित) XSS – इंजेक्टेड स्क्रिप्ट को वेब सर्वर से परिलक्षित किया जाता है, आम तौर पर एक तैयार URL या फॉर्म सबमिशन के माध्यम से। पेलोड संग्रहीत नहीं है; यह केवल तभी निष्पादित होता है जब पीड़ित दुर्भावनापूर्ण लिंक पर क्लिक करता है।
- DOM-based XSS[ – यह भेद्यता पूरी तरह से ब्राउज़र के क्लाइंट-साइड कोड में मौजूद है। हमला पेलोड कभी सर्वर को नहीं भेजा जाता है; इसके बजाय, यह DOM पर्यावरण को संशोधित करता है और वहां से निष्पादित करता है। ये हमले सर्वर-साइड डिफेंस के लिए अदृश्य हो सकते हैं।
प्रत्येक प्रकार सुरक्षा नियंत्रण के लिए अद्वितीय चुनौतियों को प्रस्तुत करता है। फायरवॉल - विशेष रूप से वेब एप्लीकेशन फायरवॉल (डब्ल्यूएएफ) - प्रतिबिंबित और कुछ संग्रहीत एक्सएसएस के खिलाफ मजबूत सुरक्षा प्रदान कर सकता है, लेकिन डीओएम-आधारित एक्सएसएस अतिरिक्त ग्राहक-साइड उपायों की मांग करता है।
क्या है?
मूल रूप से, फायरवॉल नेटवर्क-स्तर के उपकरण थे जो आईपी पते, बंदरगाहों और प्रोटोकॉल के आधार पर यातायात को फ़िल्टर करते थे। आज शब्द में सुरक्षा प्रणालियों की एक श्रृंखला शामिल है:
- ]Network Firewalls - परतों 3-4 (IP, TCP/UDP) पर काम करते हैं। वे ज्ञात दुर्भावनापूर्ण IP या प्रतिबंधित बंदरगाहों को अवरुद्ध कर सकते हैं, लेकिन वे थोड़ा आवेदन परत डेटा का निरीक्षण करते हैं।
- वेब अनुप्रयोग फ़ायरवॉल (WAFs) – परत-7 उपकरणों के लिए HTTP / HTTPS यातायात का निरीक्षण करने के लिए डिज़ाइन किया गया, अनुरोध सामग्री का विश्लेषण (हेडर्स, बॉडी, URL पैरामीटर) दुर्भावनापूर्ण पैटर्न के लिए। WAF XSS के खिलाफ प्राथमिक फ़ायरवॉल उपकरण हैं।
- क्लाउन्ड आधारित फायरवॉल (WAF-as-a-service सहित) - उदाहरणों में AWS WAF, Cloudflare WAF, और Azure Application Gateway शामिल हैं। वे स्केलेबिलिटी, लो विलंबता प्रदान करते हैं, और अक्सर CDN के साथ एकीकृत होते हैं।
सभी फ़ायरवॉल नियमों के एक सेट पर काम करते हैं, लेकिन केवल आवेदन-जारी फ़ायरवॉल (WAFs) अर्थपूर्वक XSS का मुकाबला कर सकते हैं। फिर भी, शैतान नियम डिजाइन और पहचान पद्धति में है।
कैसे फायरवॉल (WAF) एक्सएसएस का पता लगाने और ब्लॉक करने के लिए
संकेतन-आधारित जांच
अधिकांश WAFs जहाज पूर्व-निर्धारित हस्ताक्षरों के साथ जो XSS पेलोड से मेल खाते हैं - उदाहरण के लिए, पैटर्न जैसे , , , या एन्कोडेड वेरिएंट। फ़ायरवॉल किसी भी अनुरोध को अवरुद्ध करता है जिसका पेलोड हस्ताक्षर को ट्रिगर करता है। हस्ताक्षर डेटाबेस को नियमित रूप से विक्रेताओं द्वारा उपन्यास हमले वेक्टर को कवर करने के लिए अद्यतन किया जाता है।
हालांकि, हस्ताक्षर आधारित पहचान को सरल अस्पष्टता से हटाया जा सकता है: विभिन्न एन्कोडिंग का उपयोग करके, कीवर्ड को विभाजित करना, या जंक वर्णों को इंजेक्ट करना। हमलावर अक्सर भुगतान लोड को तब तक म्यूट करते हैं जब तक कि यह ब्राउज़र में कार्यात्मक रहने के दौरान हस्ताक्षर से मेल नहीं खाते।
Anomaly- और Heuristic आधारित जांच
उन्नत WAFs असामान्य पैटर्न का पता लगाने के लिए मशीन लर्निंग या सांख्यिकीय मॉडल को रोजगार देते हैं। वे प्रत्येक समापन बिंदु और ध्वज विचलन के लिए मान्य अनुरोधों की विशिष्ट संरचना सीखते हैं - उदाहरण के लिए, एक सामान्य रूप से संख्यात्मक पैरामीटर अचानक HTML टैग युक्त होता है। Heuristic नियम शून्य-दिन XSS वेक्टर को पकड़ सकते हैं, जिसमें ज्ञात हस्ताक्षरों की कमी होती है, लेकिन वे झूठे सकारात्मकता का भी जोखिम उठाते हैं।
दर सीमा और व्यवहार विश्लेषण
कुछ WAFs निगरानी अनुरोध वेग। त्वरित उत्तराधिकार में कई पेलोडों को रोकने वाला हमलावर अस्थायी रूप से अवरुद्ध हो सकता है। जबकि यह सीधे XSS का पता नहीं लगाता है, यह स्वचालित स्कैनिंग को धीमा कर देता है और हमलावरों को धीमी गति से, मैनुअल परीक्षण करने के लिए धुरी पर मजबूर कर सकता है।
फायरवॉल स्तर पर कंक्रीट संरक्षण तंत्र
- ]Input Validation and Filtering – WAF प्रत्येक पैरामीटर, कुकी और हेडर का निरीक्षण करता है। ज्ञात खतरनाक वर्ण ()]) को इनकोड किया गया है या इससे पहले कि वे आवेदन सर्वर तक पहुंच जाएं।
- Output Encoding Awareness – Modern WAFs (WAF) उन लोगों को बता सकते हैं जहां उपयोगकर्ता इनपुट प्रतिक्रिया में समाप्त होता है (जैसे, एक स्क्रिप्ट टैग बनाम HTML विशेषता के अंदर) और संदर्भ-विशिष्ट नियमों को लागू करता है। खुफिया का यह स्तर दुर्लभ है, लेकिन F5 और Imperva जैसे प्रमुख विक्रेता इसे प्रदान करते हैं।
- ]Virtual Patching[ – जब एक सर्वर-साइड XSS vulnerability की खोज की जाती है लेकिन तुरंत तय नहीं किया जा सकता है, एक WAF एक आभासी पैच बना सकता है: एक कस्टम नियम जो एप्लिकेशन कोड को बदलने के बिना शोषण पथ को अवरुद्ध करता है।
- Request Normalization - WAF अक्सर हस्ताक्षर की जांच करने से पहले एन्कोडिंग (URL-encode, Unicode, डबल-encode) की कई परतों को डिकोड करता है, मूल अस्पष्टता को विफल करता है।
XSS के खिलाफ फायरवॉल की सीमा - जहां वे विफल हो गए
WAF को बायपास करना
निर्धारित हमलावर नियमित रूप से बाईपास को समर्पित करते हैं। आम तकनीकों में शामिल हैं:
- क्लासिक के बाहर वैकल्पिक जावास्क्रिप्ट घटनाओं का उपयोग करना / सेट - उदाहरण के लिए, ]]]]]
- SVG, , , या अन्य HTML तत्वों को लीवरेज करना जो स्क्रिप्ट को निष्पादित कर सकते हैं।
- WAF और ब्राउज़र के बीच चरित्र को बदलने का प्रयास (जैसे, UTF-7 ऐतिहासिक रूप से ASCII-only फिल्टर को बायपास करने के लिए) करता है।
- एकाधिक अनुरोध मापदंडों में पेलोड को तोड़ना या निरीक्षण इंजन के अतीत में सामग्री को धब्बा करने के लिए HTTP चंकने वाले हस्तांतरण एन्कोडिंग का उपयोग करना।
DOM-Based XSS - अधिकांश फायरवॉल के लिए अदृश्य
DOM-based XSS कभी भी सर्वर को छूता नहीं है। कमजोर ग्राहक-साइड जावास्क्रिप्ट , , या स्थानीय भंडारण से डेटा पढ़ता है और इसे DOM में असुरक्षित रूप से लिखते हैं। एक सर्वर-साइड फायरवॉल केवल एक वैध अनुरोध को देखता है; दुर्भावनापूर्ण निष्पादन पूरी तरह से ब्राउज़र में होता है। रक्षा के लिए ग्राहक-साइड सुरक्षा उपायों जैसे कि सख्त सामग्री सुरक्षा नीति (CSP) और मजबूत ग्राहक-साइड स्वच्छता पुस्तकालयों की आवश्यकता होती है।
एन्क्रिप्टेड ट्रैफिक (HTTPS) चैलेंज
जबकि आधुनिक WAF सादे पाठ का निरीक्षण करने के लिए TLS को डिक्रिप्ट कर सकते हैं, यह विलंबता जोड़ता है और उचित प्रमाणपत्र प्रबंधन की आवश्यकता होती है। कुछ छोटी तैनाती उच्च-यातायात समापन बिंदुओं पर निरीक्षण छोड़ सकती है, जिससे अंधाधुंध स्थान निकल सकता है।
सर्वश्रेष्ठ अभ्यास: एक स्तरित रक्षा के हिस्से के रूप में फायरवॉल
पूरी तरह से एक WAF पर निर्भर करना जोखिम भरा है। सबसे प्रभावी XSS रोकथाम रणनीति रक्षा की चार लाइनों को जोड़ती है:
1. सुरक्षित विकास और सर्वर-साइड सैनिटाइजेशन
सभी उपयोगकर्ता-अनुपूर्ति डेटा को HTML प्रतिक्रियाओं में डालने से पहले मान्य, पवित्र या बच जाना चाहिए। OWASP जावा एनकोडर प्रोजेक्ट प्रदान करता है और विभिन्न संदर्भों (HTML बॉडी, विशेषता, URL, जावास्क्रिप्ट, CSS) में आउटपुट एन्कोडिंग के लिए मार्गदर्शन करता है। कोई भी फायरवॉल आवेदन परत पर कमजोर इनपुट हैंडलिंग को ठीक नहीं कर सकता है।
2. सामग्री सुरक्षा नीति (CSP)
CSP एक ब्राउज़र-स्तरीय सुरक्षा तंत्र है जो ब्राउज़र को बताता है कि स्क्रिप्ट के सूत्रों की अनुमति है और क्या इनलाइन स्क्रिप्ट की अनुमति है। एक सख्त CSP सभी को अवरुद्ध कर सकता है लेकिन सबसे लगातार DOM-आधारित XSS. WAF प्रतिक्रिया हेडर को इंजेक्ट करके या संशोधित करके CSP को लागू करने में मदद कर सकता है, लेकिन CSP स्वयं एक निश्चित परत है जिसे WAF प्रतिस्थापित नहीं कर सकता है।
3. नियमित पैचिंग और अपडेट
फायरवॉल नियम आधार को नए XSS संस्करण के रूप में अद्यतन किया जाना चाहिए। इसी तरह, सर्वर सॉफ्टवेयर (वेब सर्वर, एप्लिकेशन फ्रेमवर्क) को XSS vulnerability के मूल कारण को समाप्त करने के लिए पैच किया जाना चाहिए। वर्चुअल पैचिंग समय खरीदता है, लेकिन यह कोड को ठीक करने का विकल्प नहीं है।
4. सुरक्षा शिक्षा और परीक्षण
डेवलपर्स और सुरक्षा इंजीनियरों को यह समझना चाहिए कि कैसे XSS WAF से परे काम करता है। नियमित प्रवेश परीक्षण (मैनुअल टेस्टिंग सहित) और कोड समीक्षा बाईपास पैटर्न को उजागर करेगी कि WAF याद आया। OWASP ZAP या Burp Suite जैसे उपकरण फ़ायरवॉल लॉग्स को पूरक कर सकते हैं।
XSS संरक्षण के लिए राइट फायरवॉल का चयन करना
सभी फ़ायरवॉल बराबर नहीं होते हैं। जब एक डब्लूएएफ का चयन किया जाता है, तो विचार करें:
- Detection sophistication] - क्या यह हस्ताक्षर और व्यवहार्य heuristics दोनों का उपयोग करता है? क्या यह स्वचालित झूठे-पॉजिटिव ट्यूनिंग का समर्थन करता है?
- ]Ease of virtual patching - क्या आप आसानी से एक नया खोज CVE ब्लॉक करने के लिए कस्टम नियमों को जोड़ सकते हैं?
- ]Performance effect[] – A WAF, जो हर अनुरोध पर>5 एमएस विलंबता जोड़ता है, उच्च-ट्रैफ़िक साइटों के लिए उपयुक्त नहीं हो सकता है।
- ]]]][]]]]]]]]]]]]]]]]]]][]]][]]]]]]]]]]][[[[[[[[[[[[[[[[FLT]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]][[[[[[[[[[[[
Real World Examples: 2022 Twilio XSS घटना
2022 में, Twilio SendGrid ईमेल डैशबोर्ड में एक संग्रहीत XSS vulnerability हमलावरों को नकली लॉगिन संकेत देने की अनुमति देती है जो आंतरिक उपयोगकर्ताओं से स्टोल क्रेडेंशियल को प्रेरित करती है। पेलोड को SendGrid के WAF हस्ताक्षरों को खाली करने के लिए बाध्य किया गया था। उल्लंघन ने प्रदर्शित किया कि परिपक्व WAF तैनाती वाली बड़ी कंपनियों को XSS द्वारा मारा जा सकता है जब हमलावर कस्टम-क्राफ्ट पेलोड और WAF में गहरी जावास्क्रिप्ट-context निरीक्षण की कमी होती है। पोस्ट-सिडेंट विश्लेषण ने CSP, मजबूत सर्वर-साइड एस्केपिंग और WAF ट्यूनिंग के संयोजन की आवश्यकता को उजागर किया।
निष्कर्ष
फायरवॉल - विशेष रूप से वेब अनुप्रयोग फायरवॉल - क्रॉस-साइट स्क्रिप्टिंग हमलों के खिलाफ एक रक्षा-in-गहराई रणनीति का एक अनिवार्य घटक है। वे स्वचालित रूप से अच्छी तरह से ज्ञात XSS पेलोड को फ़िल्टर करने में उत्कृष्टता प्राप्त करते हैं और बिना किसी कोड के फास्ट वर्चुअल पैच प्रदान कर सकते हैं। हालांकि, वे एक रजत बुलेट नहीं हैं। हमलावरों ने हस्ताक्षर-आधारित नियमों को बायपास करने के लिए रचनात्मक तरीके तलाशना जारी रखा है, और DOM-आधारित XSS बड़े पैमाने पर सर्वर-साइड निरीक्षण को खाली कर दिया। सबसे लचीला दृष्टिकोण सुरक्षित कोडिंग प्रथाओं, एक सख्त सामग्री सुरक्षा नीति, नियमित सॉफ्टवेयर अद्यतन और निरंतर सुरक्षा परीक्षण के साथ एक अच्छी तरह से कॉन्फ़िगर WAF को जोड़ती है।