डेटा उल्लंघनों की व्यापकता अब आश्चर्यजनक नहीं है। हाल ही में जारी एफबीआई साइबर अपराध रिपोर्ट के आधार पर, साइबर अपराध के शिकार लोगों ने 2020 में संचयी रूप से $4.2 बिलियन का भारी नुकसान किया है, जो 2019 में रिपोर्ट किए गए नुकसान से $700 मिलियन अधिक है। विशेष रूप से, असुरक्षित MongoDB डेटाबेस महत्वपूर्ण डेटा उल्लंघनों के लिए अग्रणी समस्या का हिस्सा रहे हैं। . 2019 के फरवरी में, एक ईमेल सत्यापन सेवा कंपनी ने अपने MongoDB डेटाबेस का उल्लंघन किया था और इसने ईमेल पते, फोन नंबर, आईपी पते और जन्मतिथि सहित 763 मिलियन रिकॉर्ड उजागर किए। इसका कारण यह है कि बिना पासवर्ड वाले MongoDB उदाहरण का सामना करने वाली जनता।
प्रमाणीकरण की कमी, फ़ायरवॉल पर पोर्ट को प्रतिबंधित नहीं करना, या संचारण में डेटा को सुरक्षित करने में विफलता के कारण डेटा भंग हो सकता है। इस ब्लॉग में, हम चर्चा करेंगे कि उत्पादन वातावरण में अपने MongoDB डेटाबेस को कैसे तैयार और सुरक्षित किया जाए।
प्रमाणीकरण और प्राधिकरण
प्रमाणीकरण और प्राधिकरण दो अलग-अलग चीजें हैं, लेकिन वे सहसंबद्ध हैं। प्रमाणीकरण का अर्थ है कि उपयोगकर्ता के पास MongoDB डेटाबेस तक पहुंच है जबकि प्राधिकरण उपयोगकर्ता को डेटाबेस के अंदर संसाधन तक पहुंचने की अनुमति देता है।
MongoDB में प्रमाणीकरण के लिए डिफ़ॉल्ट स्थापना अक्षम है। MongoDB कई प्रमाणीकरणों का समर्थन करता है जैसे:SCRAM, x.509 प्रमाणपत्र प्रमाणीकरण। MongoDB में डिफ़ॉल्ट एक SCRAM (नमकीन चुनौती प्रतिक्रिया प्रमाणीकरण तंत्र) है, जो उपयोगकर्ता नाम, पासवर्ड और प्रमाणीकरण डेटाबेस के साथ आपूर्ति किए गए क्रेडेंशियल एक्सेस की पुष्टि करता है।
प्रमाणीकरण को सक्षम करने से पहले, कृपया उपयोगकर्ता AdminAnyDatabase की भूमिका के साथ MongoDB में एक सुपरयूज़र बनाएं। इसके समाप्त होने के बाद, हमें बस /etc/mongod.conf फ़ाइल खोलने और सुरक्षा पर अनुभाग खोजने की आवश्यकता है। डिफ़ॉल्ट अक्षम है, हमें बस सक्षम करने की आवश्यकता है।
security:
authorization: "disabled"
कॉन्फ़िगरेशन परिवर्तन लागू करने के लिए MongoDB सेवा को पुनरारंभ करें। हम उपयोगकर्ता से संबंधित बेहतर सुरक्षा के लिए MongoDB डेटाबेस के अंदर RBAC (रोल बेस्ड एक्सेस कंट्रोल) को भी कॉन्फ़िगर कर सकते हैं। इसलिए हम उपयोगकर्ता और विशेषाधिकारों के आधार पर डेटाबेस तक पहुंच को अलग करते हैं।
नेटवर्क सेगमेंटेशन
नेटवर्क विभाजन एक महत्वपूर्ण पहलू है जब हम डेटाबेस आर्किटेक्चर को डिज़ाइन करते हैं, यह सभी डेटाबेस पर लागू होता है, न कि केवल MongoDB के लिए। यह सबसे अच्छा अभ्यास है कि हम डेटाबेस के लिए नेटवर्क को अलग करते हैं। हम डेटाबेस सर्वर को एक निजी नेटवर्क में सेट करते हैं, जहां इसे इंटरनेट से नहीं पहुंचा जा सकता है।
डेटाबेस से संचार निजी नेटवर्क पर होता है, और जब उपयोगकर्ता डेटाबेस तक पहुंच बनाना चाहता है, तो वे वीपीएन या जम्पहोस्ट का उपयोग कर सकते हैं। नेटवर्क विभाजन के अलावा, पोर्ट को प्रतिबंधित करना भी एक महत्वपूर्ण भूमिका निभाता है, हम इनबाउंड और आउटबाउंड नेटवर्क ट्रैफ़िक को नियंत्रित करने के लिए खंडित नेटवर्क के लिए विशिष्ट डेटाबेस पोर्ट खोलते हैं। इसलिए, हम जानते हैं कि आने वाला ट्रैफ़िक विश्वसनीय स्रोत पते से है।
डेटा एन्क्रिप्शन
एक अन्य क्षेत्र जिसे हमें देखने की आवश्यकता है वह है डेटा एन्क्रिप्शन। डेटा एन्क्रिप्शन एक ऐसी विधि है जहां सूचना को ट्रांसमिशन के दौरान दूसरे रूप में एन्कोड किया जाता है और डेटाबेस में संग्रहीत किया जाता है।
डेटा एन्क्रिप्शन कवर:
-
ट्रांज़िट में डेटा:ट्रांसमिशन स्थिति में डेटा
-
आराम पर डेटा:डिस्क पर संग्रहीत डेटा। आराम से विभिन्न प्रकार के डेटा एन्क्रिप्शन हैं, हम डेटाबेस स्तर पर एन्क्रिप्शन का उपयोग कर सकते हैं, या हम स्टोरेज लेयर में एन्क्रिप्शन का उपयोग कर सकते हैं।
क्लाइंट और MongoDB सर्वर से SSL/TLS को सक्षम करने और MongoDB नोड्स के बीच (रेप्लिकासेट और शार्प क्लस्टर आर्किटेक्चर में), ट्रांज़िट में डेटा को सुरक्षित करेगा। डेटा स्थानांतरण सादे पाठ में नहीं होगा।
बाकी एन्क्रिप्शन पर डेटा के लिए विभिन्न एन्क्रिप्शन उपकरण और सुविधाएं हैं, उदाहरण के लिए; एडब्ल्यूएस भंडारण पर केएमएस (कुंजी प्रबंधन सेवा) के साथ संयुक्त ईबीएस डिस्क एन्क्रिप्शन प्रदान करता है, जबकि डेटाबेस परत पर, मोंगोडीबी का एंटरप्राइज़ संस्करण आराम से डेटाबेस एन्क्रिप्शन प्रदान करता है।
डेटाबेस ऑडिटिंग
MongoDB के लिए ऑडिट डेटाबेस को लागू करने से डेटाबेस के अंदर क्या चल रहा है, इसकी दृश्यता मिलती है; उदाहरण:किस उपयोगकर्ता से, और किस आदेश को निष्पादित किया गया, और आईपी पते का स्रोत। हम उन लॉग को जोड़ सकते हैं और प्राधिकरण पहुंच के आधार पर नियम बना सकते हैं। हम पता लगा सकते हैं कि क्या कोई अनपेक्षित उपयोगकर्ता MongoDB में कुछ स्क्रिप्ट चला रहा है। हम ऑडिट लॉग अनुभाग देख सकते हैं।
auditLog:
destination: syslog
हम MongoDB ऑडिट लॉग को syslog फ़ाइलों में भेज सकते हैं और लॉग को लॉग मैनेजमेंट में पुश कर सकते हैं। MongoDB को सुरक्षित करने के बारे में और सुझाव चाहते हैं? अपने MongoDB डेटाबेस को सुरक्षित करने के सर्वोत्तम अभ्यासों को बेहतर ढंग से समझने के लिए यह वीडियो देखें
निष्कर्ष
मोंगोडीबी के लिए सुरक्षा मानकों को लागू करना विशेष रूप से एक उत्पादन वातावरण के लिए जरूरी है। हम डेटाबेस में संग्रहीत डेटा के हर नुकसान और उल्लंघन को स्वीकार नहीं कर सकते।