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