MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

MongoDB सुरक्षा के लिए सर्वोत्तम अभ्यास

जब डेटाबेस सिस्टम के प्रबंधन की बात आती है, तो एक महत्वपूर्ण पहलू डेटाबेस सुरक्षा है। किसी भी डेटाबेस सिस्टम के लिए सुरक्षा के लिए एक अच्छी नींव रखने में विफलता के परिणामस्वरूप डेटा उल्लंघन हो सकता है जिससे तीसरे पक्ष के घुसपैठिए के पास अनधिकृत पहुंच होगी। नतीजतन, इस तरह की घटनाओं से ब्रांड प्रतिष्ठा को नुकसान हो सकता है, गैर-अनुपालन के लिए जुर्माना और दंड, समझौता बौद्धिक संपदा, या यहां तक ​​कि व्यवसाय बंद हो सकता है।

मोंगोडीबी - सबसे लोकप्रिय नोएसक्यूएल डेटाबेस - सूचना सुरक्षा के तीन स्तंभों - गोपनीयता, अखंडता और उपलब्धता के लिए एक आधार प्रदान करने के लिए तैयार किए गए उपकरणों, नियंत्रणों और उपायों की एक श्रृंखला प्रदान करता है। अधिक उपयोगिता और पहुंच के कारण गोपनीयता स्तर पर डेटा सुरक्षा से अक्सर समझौता किया जाता है।

आपको किस प्रकार के डेटा की रक्षा करनी चाहिए

अन्य डेटाबेस की तरह, MongoDB में दो प्रकार के डेटा शामिल होते हैं:

  1. आराम पर डेटा — यह फ़ाइल सिस्टम डिस्क में संग्रहीत डेटा है।
  2. ट्रांज़िट में डेटा — इसमें एक नेटवर्क के माध्यम से डेटा स्थानांतरित करना शामिल है, उदाहरण के लिए, डेटाबेस और एक एप्लिकेशन के बीच।

किसी भी डेटाबेस में अपने डेटा को सुरक्षित रखने के लिए, आपके सुरक्षा उपायों पर ध्यान दिया जाना चाहिए:

  • डेटाबेस फ़ाइलों में डेटा।
  • डेटाबेस से जुड़े अनुप्रयोग।
  • डेटाबेस तक पहुंचने के लिए उपयोग की जाने वाली कंप्यूटिंग और नेटवर्क अवसंरचना।
  • भौतिक डेटाबेस सर्वर और अंतर्निहित हार्डवेयर।

MongoDB सुरक्षा चेकलिस्ट

अपने MongoDB उत्पादन परिनियोजन को स्थापित करने से पहले, यह सुनिश्चित करने के लिए सुरक्षा का एक न्यूनतम मानक है कि आपकी तैनाती सुरक्षित होगी। निम्न MongoDB सुरक्षा चेकलिस्ट देखें

  1. पहुंच नियंत्रण को सक्षम करके प्रमाणीकरण तंत्र निर्दिष्ट करें . डेटाबेस तक पहुंच की अनुमति देने से पहले, उपयोगकर्ता की पहचान सत्यापित करना आवश्यक है। MongoDB इस मामले में दो तंत्रों का समर्थन करता है:पहला नमकीन चुनौती प्रतिक्रिया प्रमाणीकरण तंत्र (SCRAM) है जो MongoDB में डिफ़ॉल्ट प्रमाणीकरण तंत्र है। यह प्रमाणीकरण डेटाबेस के खिलाफ आपूर्ति किए गए क्रेडेंशियल (उपयोगकर्ता नाम और पासवर्ड) की पुष्टि करता है, और X.509 प्रमाणपत्र प्रमाणीकरण का उपयोग क्लाइंट प्रमाणीकरण और प्रतिकृति सेट सदस्यों और शार्प क्लस्टर के आंतरिक प्रमाणीकरण दोनों के लिए किया जाता है।

  2. भूमिका-आधारित अभिगम नियंत्रण स्थापित करें . डेटाबेस तक पहुंच रखने वाले प्रत्येक एप्लिकेशन या व्यक्ति की उपयोगकर्ता व्यवस्थापक द्वारा बनाई गई एक विशिष्ट पहचान होनी चाहिए। सटीक पहुंच अधिकारों के साथ भूमिकाओं को परिभाषित करें और उन्हें उन उपयोगकर्ताओं को असाइन करें जिन्हें संचालन करने की आवश्यकता है।

  3. मोंगोड, मोंगोस, एप्लिकेशन और मोंगोडीबी के बीच संचार एन्क्रिप्ट किया जाना चाहिए . एन्क्रिप्शन TLS/SSL कॉन्फ़िगरेशन के माध्यम से प्राप्त किया जाता है।

  4. डेटा सुरक्षा . यदि आप आराम से डेटा के लिए WiredTiger स्टोरेज इंजन का उपयोग कर रहे हैं, तो आप आराम से एन्क्रिप्शन का उपयोग करके डेटा को एन्क्रिप्ट कर सकते हैं। यदि किसी भिन्न स्टोरेज इंजन का उपयोग कर रहे हैं, तो फ़ाइल-सिस्टम, भौतिक या डिवाइस एन्क्रिप्शन का उपयोग करके डेटा को एन्क्रिप्ट करें, और फ़ाइल-सिस्टम अनुमतियाँ जोड़ें। इसके अलावा, आप सर्वर से डेटा पास करने से पहले क्लाइंट-साइड फ़ील्ड-स्तरीय एन्क्रिप्शन के साथ दस्तावेज़ों के भीतर फ़ील्ड को एन्क्रिप्ट कर सकते हैं।

  5. संचालन का सुरक्षित नेटवर्क . MongoDB को एक विश्वसनीय नेटवर्क वातावरण पर चलना चाहिए जैसे कि केवल विश्वसनीय क्लाइंट ही नेटवर्क इंटरफ़ेस और पोर्ट तक पहुँच प्राप्त कर सकते हैं। आप इसे सीधे SSH रूट एक्सेस को अक्षम करके और MongoDB उदाहरणों के लिए इनबाउंड और आउटबाउंड ट्रैफ़िक के लिए सुरक्षा समूहों के साथ सेटअप को कॉन्फ़िगर करके प्राप्त कर सकते हैं।

  6. ऑडिट सिस्टम गतिविधियां . डेटाबेस में उपयोगकर्ता की पहुँच गतिविधियों पर नज़र रखना बहुत महत्वपूर्ण है। लेखा परीक्षा प्रशासकों को उचित नियंत्रण करने और उचित फोरेंसिक विश्लेषण की अनुमति देने की अनुमति देती है। MongoDB Enterprise जैसी कुछ ऑडिटिंग सुविधाएं डेटा को कम करने के लिए प्रमाणीकरण ईवेंट जैसे विशिष्ट ईवेंट के लिए फ़िल्टर प्रदान करती हैं जिनका विश्लेषण करने की आवश्यकता होती है।

  7. MongoDB चलाते समय सुरक्षित कॉन्फ़िगरेशन विकल्प सक्षम करें . MongoDB द्वारा समर्थित JavaScript कोड जैसे कि mapReduce, $where, और  $function के उपयोग को सीमित करने की सलाह दी जाती है। आप --noscripting विकल्प का उपयोग करके इन विकल्पों को पूरी तरह से अक्षम कर सकते हैं। नेवला जैसे मॉड्यूल का उपयोग करके इनपुट फ़ील्ड को मान्य करें। इसके अतिरिक्त, आप यह सुनिश्चित करने के लिए net.writeObjectCheck का उपयोग कर सकते हैं कि mongod उदाहरण द्वारा संग्रहीत सभी दस्तावेज़ मान्य BSON हैं।

  8. एक समर्पित उपयोगकर्ता के साथ MongoDB चलाएं . मोंगोडीबी को एक ऑपरेटिंग सिस्टम पर चलाने के लिए उपयुक्त नहीं है जिसे एकाधिक उपयोगकर्ताओं द्वारा एक्सेस किया जा सकता है। सुरक्षित पक्ष पर रहने के लिए, MongoDB को एक समर्पित सिस्टम उपयोगकर्ता खाते द्वारा चलाया जाना चाहिए जिसके पास डेटा तक पहुँचने की अनुमति है लेकिन अनावश्यक अनुमतियाँ नहीं हैं जो डेटा अखंडता से समझौता कर सकती हैं।

से बचने के लिए खराब MongoDB सुरक्षा अभ्यास

हाल ही में, डेटाबेस हैकिंग की घटनाओं में वृद्धि हुई है, विशेष रूप से MongoDB। ऐसा इसलिए नहीं है क्योंकि MongoDB सुरक्षा चिंताओं को दूर करने के लिए मानकों को पूरा नहीं करता है, बल्कि डेवलपर्स की सुरक्षा सर्वोत्तम प्रथाओं का पालन करने में विफलता के कारण है।

मोंगोडीबी एक ओपन-सोर्स डीबीएमएस है जिसका अर्थ है कि कुछ डेवलपर्स दूसरों की तुलना में इन्स और आउट्स को अधिक जान सकते हैं। इसका मतलब यह नहीं है कि आपका डेटाबेस बाहरी घुसपैठ के खतरे में है, जब तक कि आप निम्न में से किसी भी गलती में नहीं पड़ते:

  1. डिफ़ॉल्ट पोर्ट का उपयोग करना . डिफ़ॉल्ट पोर्ट (27017 और 27018) का उपयोग करने में कुछ भी गलत नहीं है, लेकिन आप कभी-कभी अपने सिस्टम में ट्रैफ़िक के प्रबंधन के लिए जिम्मेदार सुरक्षा समूहों को सेट करना भूल सकते हैं। हैकर्स हमेशा कुछ और करने से पहले डिफ़ॉल्ट पोर्ट के साथ डेटाबेस तक पहुंचने का प्रयास करेंगे। आप MongoDB को पोर्ट विकल्प यानी $mongo –port 23456 के साथ एक अलग पोर्ट पर चला सकते हैं। हालाँकि, अनुशंसित तरीका यह है कि /etc/mongod.conf फ़ाइल में अपने पसंदीदा पोर्ट नंबर के साथ नीचे की लाइन को संपादित करके कॉन्फ़िगरेशन को बदलें:

    net:
    	port:27017


    MongoDB, डिफ़ॉल्ट रूप से, प्रमाणीकरण के बिना चलता है, जो अक्सर उत्पादन में जाने वाले नए परिनियोजन के लिए एक समस्या रही है। प्रमाणीकरण सक्षम करने में विफलता का अर्थ है कि कोई भी आसानी से डेटाबेस तक पहुंच सकता है। MongoDB डेटाबेस के साथ इंटरैक्ट करने के लिए हमेशा भूमिका-आधारित एक्सेस अनुमतियों वाला उपयोगकर्ता बनाएं।

  2. अनुचित उपयोगकर्ता क्रेडेंशियल संग्रहण . कुछ डेवलपर्स प्रोजेक्ट में उपयोगकर्ता नाम और पासवर्ड क्रेडेंशियल्स को हार्ड कोड करते हैं, और जब वे उन्हें सार्वजनिक करते हैं, तो कोई भी उन तक पहुंच प्राप्त कर सकता है जिससे डेटाबेस कमजोर हो जाता है।

  3. ज्ञात नेटवर्क उपकरणों तक डेटाबेस पहुंच को सीमित करने में विफलता . इस मामले में, किसी को हमेशा डेटाबेस एक्सेस को केवल जानने वाले अनुप्रयोगों तक सीमित करना चाहिए और श्वेतसूची के माध्यम से बैलेंसर्स लोड करना चाहिए। यह डेटाबेस की उपलब्धता को अज्ञात नेटवर्क तक सीमित कर देता है जो सुरक्षा के लिए खतरा पैदा कर सकता है।

  4. SSL के उपयोग से बचना . एसएसएल प्रमाणीकरण यह सुनिश्चित करने में बहुत महत्वपूर्ण है कि केवल विश्वसनीय कनेक्शन ही इसे डेटाबेस में बनाते हैं।

  5. पासवर्ड घुमाने के लिए LDAP का उपयोग करने में विफलता . एलडीएपी उपयोगकर्ताओं को एक कॉर्पोरेट निर्देशिका से जोड़ता है जैसे कि जब उनकी भूमिका बदलती है या वे कंपनी छोड़ देते हैं, तो परिवर्तन स्वचालित रूप से डेटाबेस समूह पर लागू होते हैं। यह सुनिश्चित करता है कि डेटा तक उनकी पहुंच उस भूमिका तक सीमित होगी, जिसे उन्हें फिर से सौंपा गया है या अगर वे कंपनी छोड़ते हैं तो पूरी तरह से सीमित हैं।

नेटवर्क के बुनियादी ढांचे को मजबूत करना

कई बार, सुरक्षा खतरे नेटवर्क जोखिम स्तर पर शुरू होते हैं क्योंकि यह अधिकांश हैकर्स के लिए सबसे आसानी से सुलभ हिस्सा है। यह सुनिश्चित करने के अलावा कि केवल विश्वसनीय मेजबानों के पास MongoDB तक पहुंच है, आप नेटवर्क को सख्त करके सुरक्षा बढ़ा सकते हैं। नेटवर्क सख्त करने में MongoDB के संबंध में दो प्रक्रियाएं शामिल हैं:

  1. फ़ायरवॉल . फ़ायरवॉल का उपयोग अविश्वसनीय होस्ट से आने वाले ट्रैफ़िक को सीमित करने के लिए किया जाता है जो अन्यथा MongoDB डेटाबेस को बाहरी घुसपैठ के लिए उजागर करेगा। विंडोज ऑपरेटिंग सिस्टम के लिए, netsh कमांड लाइन इंटरफेस विंडोज फ़ायरवॉल तक पहुंच प्रदान करता है। Linux सिस्टम पर, iptables इंटरफ़ेस अंतर्निहित netfilter फ़ायरवॉल तक पहुँच प्रदान करता है। फ़ायरवॉल अविश्वसनीय मेजबानों को फ़िल्टर करेगा और यह सुनिश्चित करेगा कि विश्वसनीय स्रोतों से केवल ट्रैफ़िक ही विश्वसनीय आउटपुट के साथ संबंध बनाने के अलावा मोंगोड और मोंगो तक पहुंच सके।

  2. वर्चुअल प्राइवेट नेटवर्क (वीपीएन) . वीपीएन दो नेटवर्क को एक एन्क्रिप्टेड और सीमित एक्सेस विश्वसनीय नेटवर्क पर लिंक करने में सक्षम बनाता है। वे ऐसा प्रमाणपत्र सत्यापन और एन्क्रिप्शन प्रोटोकॉल की पसंद प्रदान करके करते हैं जिसके लिए प्रमाणीकरण के कठोर स्तर और सभी ग्राहकों की पहचान की आवश्यकता हो सकती है। वीपीएन एक सुरक्षित सुरंग प्रदान करते हैं; इसलिए वीपीएन का उपयोग करके MongoDB इंस्टेंस के लिए बनाए गए कनेक्शन छेड़छाड़ और बीच-बीच में होने वाले हमलों को रोक सकते हैं।

रैपिंग अप

सभी ओपन-सोर्स डेटाबेस की तरह, आपके MongoDB इन्फ्रास्ट्रक्चर के लिए सुरक्षा सर्वोच्च प्राथमिकता होनी चाहिए। डिफ़ॉल्ट सेटिंग्स के साथ अपने MongoDB डेटाबेस को तैनात करना सुरक्षा आपदा की ओर एक स्पष्ट रास्ता है। इसलिए, यह पूरी तरह से समझना महत्वपूर्ण है कि MongoDB के भीतर सुरक्षा कैसे काम करती है और अधिकतम सुरक्षा सुनिश्चित करने के लिए सभी सर्वोत्तम प्रथाओं का पालन करें। सबसे महत्वपूर्ण बात यह है कि प्रमाणीकरण जैसी उपयोगकर्ता गतिविधियों का ऑडिट करना, कमियों की पहचान करने और आपदा हमलों से पहले भविष्य की योजना बनाने में एक खिड़की प्रदान करता है।

ClusterControl जैसे उपकरण आपको डेटाबेस सुरक्षा से अनुमान लगाने में मदद करते हैं और यह सुनिश्चित करते हैं कि आपके MongoDB परिनियोजन हमेशा संबंधित सुरक्षा मॉडल का पालन करेंगे। ClusterControl के साथ, आप आराम से और पारगमन में डेटा के लिए अपने डेटाबेस, एक्सेस कंट्रोल और एन्क्रिप्शन को आसानी से कॉन्फ़िगर कर सकते हैं। यदि आपने पहले से ऐसा नहीं किया है, तो आज ही ClusterControl डाउनलोड करें और यह देखने के लिए अपना 30-दिवसीय नि:शुल्क परीक्षण शुरू करें कि कैसे ClusterControl आपके MongoDB डेटाबेस की सुरक्षा को प्रबंधित और बेहतर बनाने में आपकी मदद कर सकता है।


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. सीएमके एक्सटर्नलप्रोजेक्ट_एड का उपयोग करके मोंगो-सीएक्सएक्स-ड्राइवर का निर्माण

  2. MongoDB में प्रत्येक वार्तालाप के अंतिम संदेश को सूचीबद्ध करना, जिसमें एक उपयोगकर्ता शामिल है

  3. पाइमोंगो से कच्चे मोंगोडब कमांड कैसे चलाएं

  4. MongoDB SSPL लाइसेंस परिवर्तन अद्यतन

  5. Node.js में एक तुल्यकालिक MongoDB क्वेरी बनाने का सही तरीका क्या है?