डेटा हर संगठन की एक महत्वपूर्ण संपत्ति है, और खराब-सुरक्षित डेटाबेस अक्सर सुरक्षा उल्लंघनों के लिए जिम्मेदार होते हैं। यह आलेख SQL सर्वर सुरक्षा सर्वोत्तम प्रथाओं के साथ-साथ आपके डेटाबेस को दुर्भावनापूर्ण हमलों से बचाने के लिए आवश्यक सुरक्षा विचारों का विवरण देता है।
डेटा सुरक्षा में तीन आवश्यक स्तंभ शामिल हैं - गोपनीयता, अखंडता और उपलब्धता (सीआईए) और डेटा को जानबूझकर और आकस्मिक पहुंच से बचाने के लिए विशिष्ट प्रक्रियाओं से संबंधित है। आइए SQL सर्वर सुरक्षा, जो आज उपयोग में आने वाले सबसे लोकप्रिय रिलेशनल डेटाबेस में से एक है, के विभिन्न क्षेत्रों और कदमों को तोड़ते हैं।
SQL सर्वर सुरक्षा सर्वोत्तम अभ्यास
<एच3>1. अपने SQL सर्वर की भौतिक सुरक्षा सुनिश्चित करेंजब SQL सर्वर सुरक्षा की बात आती है, तो भौतिक सुरक्षा की अनदेखी नहीं की जा सकती। भौतिक सुरक्षा का तात्पर्य डेटा केंद्रों या अन्य भौतिक सर्वर घटकों तक अनधिकृत पहुंच को सीमित करना है। उदाहरण के लिए, आप स्मार्ट कार्ड, फ़िंगरप्रिंट या चेहरे की पहचान का उपयोग करके प्रतिबंधित एक्सेस वाले लॉक किए गए कमरे को लागू कर सकते हैं। आप SQL सर्वर के लिए प्रतिबंधित नेटवर्क खंड को भी कॉन्फ़िगर कर सकते हैं।
डेटा केंद्रों में एक संगठन के बुनियादी ढांचे जैसे राउटर, स्विच, सर्वर, फायरवॉल और स्टोरेज डिवाइस होते हैं। भौतिक सुरक्षा हार्डवेयर, सॉफ्टवेयर और नेटवर्क को किसी भी अनधिकृत पहुंच या प्राकृतिक आपदाओं से बचाने से संबंधित है। इसमें निम्नलिखित क्षेत्र शामिल हो सकते हैं:
- केवल अधिकृत व्यक्तियों के लिए परिसर और उपकरण की पहुंच सुरक्षित करना
- एक्सेस कंट्रोल सिस्टम को बनाए रखना
- साइट पर सुरक्षा गार्ड या सीसीटीवी निगरानी का उपयोग कर 24x7x365 सतर्कता
- अनइंटरप्टिबल पावर सप्लाई (यूपीएस)
- फायर अलार्म सिस्टम और एस्पिरेटिंग स्मोक डिटेक्शन सिस्टम
- एक सक्रिय जल रिसाव डिटेक्टर पैनल होना
- कृंतक विकर्षक प्रणाली
- अग्नि शमन प्रणाली
- तापमान और आर्द्रता को नियंत्रित और मॉनिटर करना
- आवधिक हार्डवेयर रखरखाव
SQL सर्वर मौजूदा ऑपरेटिंग सिस्टम जैसे विंडोज या लिनक्स के शीर्ष पर स्थापित है। इसलिए, ऑपरेटिंग सिस्टम सुरक्षा SQL सर्वर सुरक्षा में एक महत्वपूर्ण भूमिका निभाती है। आपके ऑपरेटिंग सिस्टम की सुरक्षा के लिए नीचे कुछ सुझाव दिए गए हैं:
- नियमित ऑपरेटिंग सिस्टम सुरक्षा पैच और सर्विस पैक लागू करें
- एक ऑपरेटिंग सिस्टम पैचिंग नीति परिभाषित करें जो उत्पादन पैचिंग के बाद निचले परिवेशों पर पैच लागू करती है
- हमेशा स्थिर और समर्थित उत्पाद ऑपरेटिंग सिस्टम संस्करणों का उपयोग करें। उदाहरण के लिए, Microsoft ने Windows Server 2003 के लिए समर्थन बंद कर दिया है, इसलिए, आपको इसका उपयोग डेटाबेस होस्टिंग के लिए नहीं करना चाहिए
- अपने डेटाबेस सर्वर पर इंटरनेट एक्सेस की अनुमति न दें
- संभावित हमलों के लिए कम रास्ते सुनिश्चित करने के लिए आपको अप्रयुक्त एप्लिकेशन और ड्राइव को अनइंस्टॉल, रोकना या अक्षम करना चाहिए
- डेटाबेस सर्वर तक प्रतिबंधित पहुंच के साथ फ़ायरवॉल लागू करें ताकि केवल डेटाबेस सर्वर तक पहुंच की आवश्यकता वाले एप्लिकेशन सर्वर को फ़ायरवॉल से ट्रैफ़िक पास करने की अनुमति दी जाए
- फ़ायरवॉल में विशिष्ट पोर्ट खोलें। उदाहरण के लिए, डिफ़ॉल्ट रूप से, SQL सर्वर पोर्ट 1433 पर चलता है। इसलिए, यदि सर्वर पर कोई अन्य एप्लिकेशन नहीं चलता है, तो आप दूरस्थ सर्वर एक्सेस के लिए TCP पोर्ट 1433 और 3389 की अनुमति दे सकते हैं। इसी तरह, विश्लेषण सेवा मानक पोर्ट के रूप में डिफ़ॉल्ट पोर्ट 2383 का उपयोग करती है। SQL सर्वर में पोर्ट की पूरी सूची के लिए, SQL सर्वर द्वारा उपयोग किए जाने वाले पोर्ट पर यह दस्तावेज़ देखें। SQL सर्वर तक सुरक्षित पहुँच के लिए आप SSL या TLS प्रमाणपत्रों का भी उपयोग कर सकते हैं। ये प्रमाणपत्र SQL सर्वर और क्लाइंट अनुप्रयोगों के बीच डेटा स्थानांतरण को एन्क्रिप्ट कर सकते हैं। SQL सर्वर कॉन्फ़िगरेशन एक स्व-हस्ताक्षरित प्रमाणपत्र या प्रमाणपत्र प्राधिकारी (CA) द्वारा जारी प्रमाणपत्र के लिए आवश्यक है। आप लेख देख सकते हैं:अधिक विवरण के लिए एन्क्रिप्टेड SQL सर्वर कनेक्शन कैसे सेट और उपयोग करें।
- सर्विस बाइंडिंग और चैनल बाइंडिंग का उपयोग करके ऑथेंटिकेशन रिले अटैक को रोकने के लिए ऑथेंटिकेशन के लिए एक्सटेंडेड प्रोटेक्शन फॉर ऑथेंटिकेशन विकल्प का लाभ उठाएं। विस्तारित सुरक्षा को सक्षम करने के लिए, SQL सर्वर कॉन्फ़िगरेशन प्रबंधक पर जाएं, स्क्रीन का विस्तार करें, प्रोटोकॉल पर राइट-क्लिक करें और फिर उन्नत, विस्तारित सुरक्षा पर जाएं। ध्यान दें, डिफ़ॉल्ट रूप से, यह बंद होता है।
इसी तरह, आप निम्न विकल्प का उपयोग करके एन्क्रिप्टेड कनेक्शन को SQL सर्वर से बाध्य कर सकते हैं।
अधिक विवरण के लिए आप विस्तारित सुरक्षा का भी उल्लेख कर सकते हैं।
<एच3>3. अपने सतह क्षेत्र को कम करेंSQL सर्वर सतह क्षेत्र में डेटाबेस इंजन सुविधाएँ शामिल होती हैं जो ईमेल भेजने जैसी अतिरिक्त कार्यक्षमता प्रदान करती हैं। दुर्भावनापूर्ण गतिविधियों के लिए SQL सर्वर तक पहुँच प्राप्त करने के लिए ये घटक संभावित लक्ष्य हो सकते हैं। इसलिए, आपको SQL सर्वर में उन घटकों और सुविधाओं को अक्षम करना चाहिए जिनका उपयोग नहीं किया जा रहा है, क्योंकि इससे संभावित हमले की संभावना सीमित हो जाएगी। जिन प्रमुख घटकों की आप समीक्षा कर सकते हैं और अक्षम कर सकते हैं वे नीचे सूचीबद्ध हैं।
- स्टार्टअप प्रक्रियाओं के लिए स्कैन करें
- OLE स्वचालन प्रक्रियाएं
- सीएलआर सक्षम
- क्रॉस डीबी स्वामित्व श्रृखंला
- xp_cmdshell
- डेटाबेस मेल XPs
सर्वर कॉन्फ़िगरेशन विकल्पों के बारे में विस्तृत जानकारी के लिए आप इस लेख को देख सकते हैं।
<एच3>4. किसी भिन्न पोर्ट पर सुनने के लिए सर्वर कॉन्फ़िगर करेंMicrosoft SQL सर्वर सभी डेटाबेस कनेक्शन के लिए डिफ़ॉल्ट पोर्ट 1433 का उपयोग करता है। यह कई डेटाबेस परिवेशों में एक सामान्य सुरक्षा जोखिम है क्योंकि डेटाबेस पेशेवर आमतौर पर डिफ़ॉल्ट पोर्ट नहीं बदलते हैं। यह एक प्रसिद्ध पोर्ट है, और घुसपैठिए इस अवसर का उपयोग SQL सर्वर तक पहुँचने के लिए कर सकते हैं। इसलिए, आपको अपनी SQL सर्वर सुरक्षा को सख्त करने के लिए एक गैर-डिफ़ॉल्ट पोर्ट का उपयोग करना चाहिए। आप SQL सर्वर कॉन्फ़िगरेशन प्रबंधक का उपयोग करके इसे संशोधित कर सकते हैं।
5. SQL सर्वर प्रमाणीकरण समायोजित करें
आपके डेटा की सुरक्षा विशिष्ट डेटा तक पहुंच को प्रमाणित करने की क्षमता पर निर्भर करती है। SQL सर्वर डेटाबेस प्रमाणीकरण के लिए दो विकल्प प्रदान करता है।
- विंडोज प्रमाणीकरण
- Windows और SQL प्रमाणीकरण (मिश्रित-मोड)
सर्वर प्रमाणीकरण मॉडल को सत्यापित करने के लिए, SQL सर्वर इंस्टेंस पर राइट-क्लिक करें और सुरक्षा पर नेविगेट करें।
प्रमाणीकरण के लिए Windows प्रमाणीकरण सक्रिय निर्देशिका खातों का उपयोग करता है। आपके पास सक्रिय निर्देशिका में पासवर्ड जटिलता, पासवर्ड समाप्ति, खाता लॉकआउट और सक्रिय निर्देशिका समूहों के लिए एक केंद्रीकृत नीति नियंत्रण हो सकता है। इसलिए, आपको SQL सर्वर प्रमाणीकरण के बजाय Windows प्रमाणीकरण का उपयोग करना चाहिए। यहां, उपयोगकर्ता विंडोज खाते का उपयोग करके कनेक्ट होता है, और SQL सर्वर विंडोज प्रिंसिपल टोकन का उपयोग करके क्रेडेंशियल्स को मान्य करता है। यह प्रमाणीकरण के लिए Kerberos सुरक्षा प्रोटोकॉल का उपयोग करता है। अधिक विवरण के लिए प्रमाणीकरण मोड देखें।
हालाँकि, यदि आपको SQL सर्वर लॉगिन का उपयोग करने की आवश्यकता है, तो भी आप नीचे दी गई हाइलाइट की गई पासवर्ड नीति को लागू कर सकते हैं।
<एच3>6. सेवा खाता अनुमतियां याद रखें
SQL सेवाएँ अपनी सेवाएँ चलाने के लिए Windows खाते का उपयोग करती हैं। आपको नेटवर्क सेवा या स्थानीय सिस्टम जैसे उच्च-विशेषाधिकार प्राप्त, अंतर्निहित खातों का उपयोग नहीं करना चाहिए। इसी तरह, एक डोमेन सेवा खाते के लिए, आपको भूमिका-उपयुक्त विशेषाधिकार प्रदान करने चाहिए।
इसलिए, मैं SQL सर्वर सेवा खातों की अनुमतियों के बारे में अधिक विशिष्टताओं के लिए Windows सेवा खातों और अनुमतियों को कॉन्फ़िगर करने का संदर्भ देने का सुझाव दूंगा।
<एच3>7. उत्पादन में SQL सर्वर पैचिंग लागू करेंMicrosoft ज्ञात समस्याओं और सुरक्षा समस्याओं को ठीक करने के लिए नियमित सर्विस पैक (SQL Server 2016 या इससे पहले) और संचयी पैक (SQL Server 2017 आगे) जारी करता है। इसलिए, आपको हमेशा उत्पादन इंस्टेंस पर SQL सर्वर पैचिंग को लागू करने की योजना बनानी चाहिए। हालांकि, उत्पादन उदाहरणों पर सीधे पैच लागू न करें। हमेशा परीक्षण वातावरण में उन्हें पहले लागू करें, उत्पादन परिनियोजन के लिए मान्य करें और योजना बनाएं।
नवीनतम सर्विस पैक और संचयी पैक पर विवरण प्राप्त करने के लिए आप Microsoft SQL सर्वर के लिए नवीनतम अपडेट देख सकते हैं।
8. अपने बैकअप सुरक्षित करें
जब SQL सर्वर सुरक्षा की बात आती है, तो अपने बैकअप को सुरक्षित करना महत्वपूर्ण होता है। आमतौर पर, डेटाबेस पेशेवर डेटाबेस बैकअप को सुरक्षित करने के लिए सभी आवश्यकताओं पर विचार नहीं करते हैं। डेटाबेस बैकअप एक डेटाबेस की परिचालन स्थिति, वास्तुकला और संग्रहीत डेटा की एक प्रति बनाने की प्रक्रिया है। इसलिए इसकी रक्षा करना भी उतना ही जरूरी है। इसका अर्थ है बैकअप फ़ाइलों तक पहुंच को प्रतिबंधित करना और उन्हें ठीक से एन्क्रिप्ट करना। जब बैकअप सुरक्षित करने की बात आती है, तो यहां कुछ रिमाइंडर दिए गए हैं।
- बैकअप फ़ाइलों को बनाने, देखने, संशोधित करने और हटाने के लिए बैकअप फ़ोल्डर पर सभी को अधिकार प्रदान न करें
- एन्क्रिप्शन के साथ डेटाबेस बैकअप का उपयोग करें; अधिक विवरण के लिए बैकअप एन्क्रिप्शन पर यह लेख देखें
9. SQL सर्वर एन्क्रिप्शन और डेटा मास्किंग तकनीक याद रखें
SQL सर्वर सुरक्षा में एक प्रमुख क्षेत्र एन्क्रिप्शन है। आप अपने SQL सर्वर डेटाबेस में संवेदनशील डेटा की सुरक्षा के लिए विभिन्न एन्क्रिप्शन तंत्र का उपयोग कर सकते हैं। विभिन्न एन्क्रिप्शन विकल्प इस प्रकार हैं।
- हमेशा एन्क्रिप्टेड:हमेशा एन्क्रिप्टेड तकनीक क्लाइंट एप्लिकेशन के अंदर संवेदनशील डेटा को एन्क्रिप्ट करने में मदद करती है। हमेशा एन्क्रिप्टेड-सक्षम ड्राइवर क्लाइंट अनुप्रयोगों में संवेदनशील डेटा को स्वचालित रूप से एन्क्रिप्ट और डिक्रिप्ट करता है। एन्क्रिप्शन कुंजियाँ SQL सर्वर डेटाबेस इंजन के लिए कभी प्रकट नहीं होती हैं। यह गोपनीय डेटा की सुरक्षा करता है।
- पारदर्शी डेटा एन्क्रिप्शन (TDE):TDE आराम से डेटा को एन्क्रिप्ट करता है। यह डेटा फ़ाइलों, लॉग फ़ाइलों और बैकअप फ़ाइलों को सुरक्षित करने में मदद करता है।
- कॉलम-स्तरीय एन्क्रिप्शन:कॉलम-स्तरीय एन्क्रिप्शन विशिष्ट कॉलम डेटा को एन्क्रिप्ट करने में मदद करता है, उदाहरण के लिए, क्रेडिट कार्ड नंबर और सामाजिक सुरक्षा नंबर।
- स्थिर डेटा मास्किंग:स्थिर डेटा मास्किंग परिभाषित डेटा परिवर्तन नियमों का उपयोग करके संवेदनशील डेटा को बदल देता है।
- डायनामिक डेटा मास्किंग:डायनेमिक डेटा मास्किंग गैर-विशेषाधिकार प्राप्त उपयोगकर्ताओं के लिए संवेदनशील डेटा एक्सपोज़र को सीमित करने में मदद करता है।
- पंक्ति-स्तरीय सुरक्षा:पंक्ति-स्तरीय सुरक्षा डेटा पंक्ति पहुंच को प्रतिबंधित करती है।
यदि आप SQL प्रमाणीकरण का उपयोग कर रहे हैं, तो यह sysadmin अनुमतियों के साथ एक लॉगिन SA बनाता है। अपने SQL सर्वर की सुरक्षा के लिए, निम्न कार्य करें।
- SA नाम के लॉगिन का नाम बदलकर किसी दूसरे नाम पर रखें
- यदि आप खाते का उपयोग करने की योजना नहीं बनाते हैं तो उसे अक्षम कर दें
- जटिल पासवर्ड का उपयोग करें
- एप्लिकेशन को कनेक्शन स्ट्रिंग में SA खाते का उपयोग करने की अनुमति न दें
11. ऑडिट डेटाबेस लॉगिन
जब SQL सर्वर सुरक्षा की बात आती है तो ऑडिटिंग को अक्सर अनदेखा कर दिया जाता है। असफल लॉगिन के लिए आपको नियमित रूप से SQL सर्वर ऑडिटिंग करनी चाहिए। आप खातों की समीक्षा के लिए डिफ़ॉल्ट लॉगिन ऑडिट तंत्र का उपयोग कर सकते हैं। उदाहरण के लिए, मान लें कि कोई उपयोगकर्ता उच्च विशेषाधिकार वाले खाते के साथ SQL सर्वर से कनेक्ट करने का प्रयास कर रहा है। उस स्थिति में, आप लॉगिन विफलता और आने वाले अनुरोध (क्लाइंट) आईपी पते को देख सकते हैं। यह संदिग्ध गतिविधि को पकड़ने और समाप्त करने में आपकी सहायता कर सकता है।
आप SQL सर्वर ऑडिट के लिए विस्तारित ईवेंट, SQL ट्रेस, परिवर्तन डेटा कैप्चर, ट्रिगर्स (DDL, DML या लॉगऑन), डेटाबेस या सर्वर-स्तरीय ऑडिट विनिर्देशों का उपयोग कर सकते हैं।
<एच3>12. सर्वर-स्तर और डेटाबेस अनुमतियों से सावधान रहेंसर्वर-स्तर या डेटाबेस-स्तर अनुमतियाँ असाइन करते समय डेटाबेस पेशेवरों को सावधान रहना चाहिए। कभी-कभी, हम देखते हैं कि डेवलपर्स को सर्वर स्तर पर sysadmin या डेटाबेस स्तर पर डेटाबेस स्वामी की अनुमतियाँ मिलती हैं। ये उच्चतम अनुमतियाँ हैं जो एक उपयोगकर्ता के पास क्रमशः एक उदाहरण या डेटाबेस स्तर पर हो सकती हैं।
- निश्चित सर्वर-स्तरीय भूमिकाओं और उनकी क्षमताओं को समझने के लिए निश्चित सर्वर-स्तरीय भूमिकाएं देखें।
- निश्चित डेटाबेस-स्तरीय भूमिकाओं को बेहतर ढंग से समझने के लिए डेटाबेस-स्तर की भूमिकाएँ देखें।
13. SQL सर्वर ब्राउज़र सेवा बंद करें
SQL सर्वर नामित आवृत्ति के लिए ब्राउज़र सेवा का उपयोग करता है। यह SQL सर्वर कनेक्शन के लिए आने वाले सभी अनुरोधों को सुनता है। यह यूडीपी पोर्ट 1434 का उपयोग करता है और एसक्यूएल सर्वर से कनेक्ट करने के लिए आवश्यक टीसीपी/आईपी पोर्ट नंबर के साथ अनुरोधों का जवाब देता है। इसलिए, आप ब्राउज़र सेवा को बंद कर सकते हैं और एप्लिकेशन स्ट्रिंग्स में पोर्ट नंबर को स्पष्ट रूप से परिभाषित कर सकते हैं। यह आने वाले कनेक्शन अनुरोधों के लिए पोर्ट नंबर जोखिम से बचाता है और SQL सर्वर की सुरक्षा में मदद करता है।
SQL सर्वर ब्राउज़र सेवा को बेहतर ढंग से समझने के लिए आप इस लेख को देख सकते हैं कि SQL सर्वर ब्राउज़र कैसे काम करता है।
आगे SQL सर्वर सुरक्षा विचार
जैसा कि बताया गया है, SQL सर्वर सुरक्षा विभिन्न कारकों और चरणों के साथ एक सतत प्रक्रिया है। आपको नियमित रूप से SQL सर्वर इंस्टेंस, सुरक्षा नीतियों की समीक्षा करनी चाहिए और उन्हें अपने ऑपरेटिंग सिस्टम और SQL सर्वर दोनों स्तरों पर नियमित रूप से अपडेट करना चाहिए। इन सर्वोत्तम प्रथाओं को नियमित आधार पर लागू करने से, आप अपने व्यवसाय के लिए एक अधिक सुरक्षित और गैर-विघटनकारी डेटाबेस सेवा बनाने में मदद करेंगे।