OS प्रमाणीकरण को Oracle डेटाबेस के लिए खराब सुरक्षा क्यों माना जाता है?


29

ओरेकल, ओरेकल डेटाबेस सिक्योरिटी गाइड के अनुसार ओएस प्रमाणीकरण को हटा रहा है , जो कहता है

ध्यान रखें कि REMOTE_OS_AUTHENT पैरामीटर Oracle डेटाबेस 11g रिलीज़ 1 (11.1) में पदावनत किया गया था, और इसे केवल पिछड़ी संगतता के लिए बरकरार रखा गया है।

इसके अलावा, अधिकांश सुरक्षा जानकारी और उपकरण OS (बाहरी) प्रमाणीकरण को सुरक्षा समस्या मानते हैं । मैं समझने की कोशिश कर रहा हूं कि ऐसा क्यों है। यहाँ मैं ओएस प्रमाणीकरण के कुछ फायदे देख रहा हूँ:

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

आपने कहां देखा कि ओरेकल बाहरी प्रमाणीकरण को हटा रहा था?
जस्टिन गुफा

1
@ जस्टिन गुफा मैं उस जानकारी के साथ प्रश्न को अपडेट करूंगा।
लेह रिफ़ेल

2
अद्यतन के लिए धन्यवाद। केवल स्पष्टता के लिए, हालांकि, ओरेकल बाहरी प्रमाणीकरण को नहीं बढ़ा रहा है, यह दूरस्थ बाहरी प्रमाणीकरण को चित्रित कर रहा है जो आम तौर पर बहुत कम सुरक्षित है (जैसा कि गयुस नीचे चर्चा करता है)
जस्टिन केव

जवाबों:


16

इस परिदृश्य पर विचार करें:

  1. gaiusबाहरी प्रमाणीकरण के साथ ओरेकल सर्वर पर एक यूनिक्स उपयोगकर्ता नाम है , इसलिए ओरेकल में एक संबंधित उपयोगकर्ता कहा जाता है ops$gaius। जब एक शेल में लॉग इन किया जाता है, तो मैं सीधे अपने ओरेकल स्कीमा में भी लॉग इन कर सकता हूं, और मेरी क्रोन नौकरियों को स्क्रिप्ट में एम्बेडेड पासवर्ड की आवश्यकता नहीं है।
  2. रिमोट ओएस प्रमाणीकरण की अनुमति है, इस धारणा पर कि लैन 100% सुरक्षित है और ग्राहकों पर भरोसा किया जा सकता है (समान रूप से rlogin/ rshआमतौर पर उपयोग किया जाता है)
  3. एक हमलावर को अपने लैपटॉप पर लैन पर जो भी साधन मिलता है, वह जानता है कि मैं वहां काम करता हूं, और अपने लैपटॉप पर एक स्थानीय उपयोगकर्ता बनाता है जिसे कॉल किया जाता है gaiusऔर उस उपयोगकर्ता के रूप में SQL * प्लस चलाता है।
  4. Oracle देखता है (यानी OSUSERमें है V$SESSION) gaiusऔर उस दूरस्थ उपयोगकर्ता को इस रूप में लॉग करता हैops$gaius

यह न केवल हंसोड़ आसान करने के लिए है, लेकिन मेरे निंदक की टोपी पर डालते हुए, ओरेकल आप अपने फैंसी सिंगल साइन-ऑन उत्पाद को बेचकर कोई और पैसा नहीं कमा सकते हैं ... जिस तरह से आप ओएस के फायदे के रूप में सभी बिंदुओं को पूरा करते हैं -वेल्ड ऑवर। एक से बेहतर दो पासवर्ड पूरी तरह से सहज हैं; ज्यादातर लोग उन्हें वैसे ही स्थापित करेंगे (इसे रोकने के लिए ओरेकल में कोई तंत्र नहीं है)।

सामान्य सिद्धांत यह है कि जब किसी हमलावर की भौतिक पहुंच होती है, तो सॉफ्टवेयर में बचाव करना बेहद मुश्किल होता है। और क्लाइंट पर कभी भरोसा न करें।


2
यह उससे भी बदतर है। देखें ओराफाक के 'क्यों ओपीएस $ एक ग्राहक / सर्वर वातावरण में एक सुरक्षा जोखिम है?' (वे खिड़कियों को दोष देते हैं, लेकिन आप सही हैं, यह नेटवर्क पर कुछ भी है)
जो

3
इसमें सर्वर एक विंडोज़ डोमेन फैक्टर पर कैसे काम करता है? यानी क्या हमलावर के पास डोमेन शामिल करने के लिए अपना कंप्यूटर शामिल होना चाहिए, जिसमें डोमेन शामिल हो, या हमलावर वास्तव में अपने कंप्यूटर से जुड़ने के बिना डोमेन की उपस्थिति का अनुकरण कर सकता है?
लेह रिफ़ेल

मैं अनुमान लगा रहा हूं कि मूल रूप से एक ऐसे समय में लिखा गया था जब सभी सर्वर यूनिक्स थे और सभी डेस्कटॉप विंडोज थे
गयूस

3
@Leigh - आप एक विश्वसनीय विंडोज डोमेन होने के लिए OS_AUTHENT_PREFIX सेट करके विंडोज क्लाइंट के साथ रिमोट ओएस प्रमाणीकरण को अधिक सुरक्षित बना सकते हैं। उस विश्वसनीय डोमेन पर दूरस्थ क्लाइंट (या प्रतीत होता है) की आवश्यकता है। यह काफी हद तक एक तुच्छ "प्लग कंप्यूटर में एक अतिरिक्त पोर्ट में बार उठाता है, एक स्थानीय उपयोगकर्ता को जोड़ता है, और आप" हमले में हैं, लेकिन यह अभी भी काफी हरा-भरा है।
जस्टिन केव

1
तुलना करें और इसके विपरीत अगर यह वास्तविक AD / Kerberos प्रमाणीकरण कर रहा था, और उपयोगकर्ता से टिकट ले रहा था और KDC के साथ इसकी पुष्टि कर रहा था, जो मुझे लगता है कि Windows प्रमाणीकरण का उपयोग करने के लिए SqlServer क्या करता है?
अरकनिद २12'११

8

यह विफलता के एकल बिंदुओं को बढ़ाता है और आपके डेटा की जोखिम सतह को बढ़ाता है।

ओएस प्रमाणीकरण के साथ सिस्टम तक पहुंच प्राप्त करने वाले एक हमलावर के पास डेटाबेस तक पहुंच होती है। डेटाबेस में अधिक सुरक्षित पहुंच की आवश्यकता होने पर, संभावित हमलावर को किसी भी उपयोगकर्ता के बजाय रूट या ओरेकल एक्सेस प्राप्त करने के लिए समझौता किए गए सिस्टम पर अपने विशेषाधिकारों को बढ़ाना चाहिए।

यह समस्या डेटाबेस तक बाहरी पहुंच का एक कार्य है। यदि कोई बाहरी पहुंच नहीं है और मशीन पूरी तरह से सुरक्षित है, तो अनुमतियों का सवाल मूट है। हालांकि, यदि डेवलपर्स के पास पहुंच है, तो ओएस स्तर उपयोगकर्ता अनुमतियाँ संभावित सुरक्षा आपदाओं के दायरे को बढ़ाती हैं।

सुरक्षा उल्लंघनों के दायरे को सीमित करने के लिए मल्टीटियर एक्सेस का उपयोग करने पर विचार करें और किसी भी उपयोगकर्ता, एप्लिकेशन या क्लाइंट को हर उदाहरण के लिए ओएस स्तर के खाते बनाने की आवश्यकता के बिना उनकी आवश्यकता का उपयोग करें।


मैं देख रहा हूँ, इसलिए ओवरसिप्लाइज़ करने के लिए - दो उपयोगकर्ता नाम / पासवर्ड आवश्यकताएँ एक से अधिक सुरक्षित हैं -। आपकी बातें वाजिब लगती हैं।
लेह रिफ़ेल

यह एक सूक्ष्म रूप से गलत उत्तर है - मुद्दा बाहरी प्रमाणीकरण नहीं है, बल्कि दूरस्थ बाहरी प्रमाणीकरण है। मैं नीचे बताऊंगा।
गयास

@Gaius बाहरी OS प्रमाणीकरण अत्यंत सीमित नहीं होगा यदि वह रिमोट नहीं था तो लगभग बेकार हो जाएगा? क्या आप कह रहे हैं कि ओरेकल ओएस का उपयोग करते हुए प्रमाणीकरण नहीं कर रहा है, लेकिन केवल दूरस्थ कंप्यूटर से ओएस प्रमाणीकरण को हटा रहा है?
लेह रिफ़ेल

@Leigh - स्थानीय खातों के ओएस प्रमाणीकरण के लिए प्रमुख उपयोग का मामला डीबीए-प्रकार के कार्यों के लिए है जहां आपके पास डेटाबेस सर्वर पर चल रहे शेल स्क्रिप्ट का एक गुच्छा है जो डेटाबेस सर्वर पर बहुत शक्तिशाली खातों तक पहुंचने की आवश्यकता है। OS प्रमाणीकरण आपको उन शेल स्क्रिप्ट में अनएन्क्रिप्टेड DBA स्तर पासवर्ड रखने से बचने देता है।
जस्टिन गुफा

@Justin बैच की नौकरी सामान्य तौर पर, शेल स्क्रिप्ट के रूप में या जो भी, व्यक्तिगत क्रोन में लागू की जाती है
Gaius

4

Gaius ने पहले ही बताया है कि रिमोट ऑपरेटिंग सिस्टम ऑथेंटिकेशन (जैसा कि वैनिला ऑपरेटिंग सिस्टम ऑथेंटिकेशन के विपरीत है, जहां आप लोकल मशीन यूजर्स को अलग पासवर्ड बताए बिना डेटाबेस को एक्सेस करने की अनुमति दे रहे हैं) अपेक्षाकृत असुरक्षित है।

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


LDAP प्रमाणीकरण कीड़े की एक और खोल सकता है ... मैं एक लंबे समय तक जवाब पोस्ट करूँगा।
जो

+1 एंटरप्राइज़ उपयोगकर्ता सुरक्षा को इंगित करने के लिए धन्यवाद। हम पहले से ही उन्नत सुरक्षा पर विचार कर रहे हैं और यह इसे और अधिक आकर्षक बनाता है।
लेह रिफ़ेल

4

आप विशेष रूप से पहचान-शैली प्रमाणीकरण की ओर इशारा करते हैं, लेकिन मैं यह भी बताना चाहूँगा कि OS के लॉगिन में डेटाबेस या किसी अन्य लॉगिन को बांधने के अन्य तरीके उतने ही बुरे हैं। (यह स्थानीय पासवर्ड फाइलें, LDAP, या क्रेडेंशियल के वास्तविक भंडारण के लिए जो कुछ भी हो)

यदि आप डेटाबेस (या वेबसर्वर, या जो कुछ भी प्रमाणीकरण कर रहे हैं) के लिए दूरस्थ कनेक्शन की अनुमति देते हैं, तो कुछ OS ऐसे नियमों की अनदेखी करेंगे जो बल खातों को कठिन बनाने के लिए सेट किए जा सकते हैं (उदाहरण के लिए, आईपी को अवरुद्ध करना जहां असफल प्रयास आ रहे हैं, लॉक करना; उपयोगकर्ताओं को एक अवधि के लिए एक निर्धारित संख्या में फाल्स, आदि) के बाद। आम तौर पर, इन नियमों को बांधा जाता है sshd, कि प्रमाणीकरण प्रणाली को समग्र रूप से।

तो, क्या किसी को डेटाबेस / वेबसर्वर / जो भी दूर से कनेक्ट करने में सक्षम होना चाहिए, वे पासवर्ड को बाध्य कर सकते हैं, क्योंकि डेटाबेस में धीमी गति से प्रयास करने के लिए समान तंत्र नहीं होते हैं, फिर आवश्यक क्रेडेंशियल खोजने के बाद एक बार में ssh करें।


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

@ जस्टिन: यह केवल एक मुद्दा है यदि आप इसे टाई करते हैं तो ओएस में लॉगिंग के लिए क्रेडेंशियल्स डेटाबेस (या वेबसर्वर, आदि) में लॉगिंग के लिए क्रेडेंशियल्स के समान हैं। और ऐसा लगता है कि जब मैंने आखिरी बार इसका उपयोग किया था, तो ऑरेकल ने प्रमाणीकरण के बारे में बेहतर समझा, लेकिन अधिकांश अन्य डेटाबेस ने ऐसा नहीं किया। (और अपाचे या तो नहीं है, इसलिए MacOS X सर्वर उपयोगकर्ताओं को स्वैप करना चाहिए mod_auth_appleऔर mod_auth_digest_appleडिफ़ॉल्ट संस्करणों के लिए, हालांकि मैंने परीक्षण नहीं किया है कि क्या समस्या अभी भी 10.6 में मौजूद है)
जो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.