विभिन्न प्रकार के वेब एप्लिकेशन बैकएंड कार्यक्षमता के प्रावधान के लिए डेटाबेस सिस्टम को नियोजित करते हैं। डेटाबेस सिस्टम को क्वेरी करने, संचालित करने और प्रशासित करने के लिए व्यापक रूप से उपयोग की जाने वाली भाषा स्ट्रक्चर्ड क्वेरी लैंग्वेज (एसक्यूएल) है। वैश्विक स्तर पर वेब अनुप्रयोगों में इसके बड़े पैमाने पर उपयोग के कारण, SQL-संचालित डेटाबेस साइबर-आपराधिक कृत्यों के लिए आसान और लगातार लक्ष्य हैं, जिसकी गंभीरता पूरी तरह से लक्षित किए जा रहे प्रत्येक सिस्टम की पेचीदगियों पर निर्भर करती है।
एसक्यूएल इंजेक्शन अटैक समझाया गया
एक एसक्यूएल इंजेक्शन हमला आज प्रचलित सबसे अधिक बार होने वाली वेब हैक्स में से एक है, जिसमें एक हमलावर एसक्यूएल स्टेटमेंट में दुर्भावनापूर्ण कोड डालने के लिए वेब पेज इनपुट का उपयोग करता है। यह आमतौर पर तब होता है जब कोई वेब पेज यूजरनेम/यूजरिड जैसे यूजर इनपुट मांगता है। हमलावर इस अवसर का उपयोग एक SQL कथन सम्मिलित करने के लिए करता है जो आपकी जानकारी के बिना आपके डेटाबेस पर चल रहा है।
एक SQL इंजेक्शन हमला कार्यप्रवाह
इस तरह के हमले के निहितार्थ केवल वेब एप्लिकेशन पर निर्भर हो सकते हैं, और यह SQL स्टेटमेंट बनाने से पहले हमलावर द्वारा आपूर्ति किए गए डेटा को कैसे संसाधित करता है। संभावित सुरक्षा प्रभाव प्रमाणीकरण बायपास से सूचना प्रकटीकरण तक अन्य एप्लिकेशन उपयोगकर्ताओं के लिए दुर्भावनापूर्ण कोड का विस्तार करने के लिए भिन्न होते हैं। जोखिम कारक बड़ी संख्या में वेबसाइटों तक फैला हुआ है क्योंकि SQL (स्ट्रक्चर्ड क्वेरी लैंग्वेज) डेटाबेस विभिन्न वेब प्लेटफॉर्म जैसे वर्डप्रेस, पीएचपी, जूमला आदि द्वारा समर्थित है।
एक सफल SQL हमले के परिणाम
एक SQL इंजेक्शन को एक उच्च गंभीरता भेद्यता के रूप में माना जाता है। जिस हद तक नुकसान हो सकता है, उसे पूरी तरह से हमलावर के कौशल और कल्पना पर छोड़ दिया जा सकता है, और इस तरह के हमले को रोकने के लिए डेटाबेस सर्वर से कम विशेषाधिकार कनेक्शन जैसे काउंटरमेशर्स के अस्तित्व को छोड़ दिया जा सकता है।
एक बार समझौता करने के बाद, डेटाबेस द्वारा छुपाए गए संवेदनशील सूचनाओं का एक संग्रह अब हमलावर की दया पर बन जाता है। नतीजतन, हमलावर अब डेटाबेस से संवेदनशील डेटा चुरा सकता है, डेटाबेस पर प्रशासन संचालन निष्पादित कर सकता है (जैसे डीबीएमएस को बंद करना), डीबीएमएस फाइल सिस्टम पर मौजूद किसी फाइल की सामग्री को पुनर्प्राप्त करना और कुछ मामलों में ऑपरेटिंग सिस्टम का नियंत्रण हासिल करना ।
आमतौर पर, SQL इंजेक्शन लगने के बाद निम्न प्रकार के हमले संभव हैं:
- आक्रमणकर्ता किसी भी आवश्यक क्रेडेंशियल की आपूर्ति के बिना, संभावित रूप से प्रशासनिक विशेषाधिकारों के साथ, एप्लिकेशन पर लॉग ऑन करने के लिए प्रमाणीकरण को बायपास कर सकता है।
- डेटाबेस की सामग्री को बदलकर, वेब पेज को विकृत करके या अन्य अहानिकर वेबसाइटों में दुर्भावनापूर्ण सामग्री डालने के द्वारा हमलावर डेटा अखंडता को शामिल कर सकते हैं
- डेटाबेस में लॉग या ऑडिट जानकारी को हटाकर हमलावर डेटा की उपलब्धता से समझौता कर सकता है
- डेटाबेस के माध्यम से कमांड निष्पादन के माध्यम से हमलावर मेजबान ऑपरेटिंग सिस्टम के संचालन को खतरे में डाल सकता है
अपनी साइट को SQL इंजेक्शन हमलों से सुरक्षित रखना
हालांकि SQL इंजेक्शन अटैक विश्व स्तर पर वेब एप्लिकेशन को प्रभावित करने वाले सबसे आम एप्लिकेशन लेयर हमलों में से एक है, लेकिन आपके कोड में SQL इंजेक्शन कमजोरियों से बचना बेहद आसान है।
प्राथमिक दृष्टिकोण उपयोगकर्ता द्वारा आपूर्ति किए गए डेटा को मान्य करना है, जिसे श्वेतसूची या काली सूची में डालकर किया जा सकता है। इसके अलावा, SQL हमलों के विरुद्ध आपकी साइट की रक्षा करने का एक अन्य तरीका SQL कथनों का निर्माण करना है ताकि उपयोगकर्ता इनपुट का कोई भी रूप SQL कमांड के अर्थ तर्क को बदल न सके।
-
इनपुट सत्यापन
इनपुट सत्यापन में SQL इंजेक्शन से बचाव के लिए दो दृष्टिकोणों का उपयोग शामिल है:ब्लैकलिस्टिंग और श्वेतसूची में डालना . ब्लैकलिस्टिंग में उपयोगकर्ता इनपुट से ज्ञात दुर्भावनापूर्ण वर्णों को हटाना या बदलना शामिल है। यद्यपि इस पद्धति का व्यापक रूप से उपयोग किया जाता है, यह श्वेतसूचीकरण जितना प्रभावी नहीं है। एक हमलावर फ़िल्टर को दरकिनार कर सकता है और दुर्भावनापूर्ण SQL कथनों को इंजेक्ट कर सकता है। दूसरी ओर, श्वेतसूचीकरण दुर्भावनापूर्ण सामग्री के लिए उपयोगकर्ता इनपुट में प्रत्येक वर्ण की जांच करता है और केवल उन सभी वर्णों वाले इनपुट की अनुमति देता है जो अनुमत सूची के अनुरूप हैं।
2. सुरक्षित SQL कथन
कड़े इनपुट सत्यापन के अलावा, ASP.NET में पैरामीटरयुक्त प्रश्नों, जावा में तैयार किए गए स्टेटमेंट या वेब एप्लिकेशन बनाने वाली अन्य भाषाओं में इसी तरह की तकनीकों को नियोजित करना अनिवार्य है। एसक्यूएल स्टेटमेंट को इस तरह से मजबूत करना एसक्यूएल स्टेटमेंट को अंतर्निहित डेटाबेस सिस्टम को पास करने से पहले खतरनाक पात्रों से बचना सुनिश्चित करेगा।
3. नियमित ऑडिट
किसी भी संभावित SQLi भेद्यता के लिए स्थिर और गतिशील परीक्षण दोनों का उपयोग करके अपने अनुप्रयोगों का नियमित रूप से परीक्षण करें।
एस्ट्रा आपको SQL इंजेक्शन से कैसे बचा सकता है
एस्ट्रा का वेब एप्लिकेशन फ़ायरवॉल वास्तविक समय में स्कैन करता है ताकि SQL इंजेक्शन सहित आमतौर पर होने वाली वेब एप्लिकेशन त्रुटियों को कम किया जा सके। यह क्लाउड-आधारित सुरक्षा प्लेटफ़ॉर्म आपको अपने एप्लिकेशन सुरक्षा कार्यक्रम को प्रबंधित करने, प्रगति को आसानी से ट्रैक करने और आपकी कंपनी के कर्मचारियों को ई-लर्निंग सामग्री के माध्यम से SQL इंजेक्शन और अन्य सुरक्षा दोषों से बचने और उन्हें सुधारने के लिए शिक्षित करने में सक्षम बनाता है।