SA खाता और अन्य ज्ञात खाता नाम सुरक्षा के लिए क्या सुरक्षा खतरे हैं?


10

क्या एक ज्ञात खाता नाम जैसे sa, डेटाबेस के लिए एक सुरक्षा खतरा है? SQL सर्वर पर विंडोज़ प्रमाणीकरण का उपयोग करते समय यह उसी पासवर्ड नीति को लागू करता है (यदि इसे 5 बार के बाद खाता लॉकआउट कहने के लिए सेट किया गया था)?


क्या आप अपना प्रश्न सुधार सकते हैं? 1) शीर्षक को एक प्रश्न बनाएं। 2) क्या आप सवाल के दायरे को कम कर सकते हैं? क्या आप ब्रूट-फोर्सिंग हमलों या ज्ञात खातों की कमजोरियों के बारे में रुचि रखते हैं। सुरक्षा के किस क्षेत्र में आपकी रुचि है?
ब्रायन बॉल्सन-स्टैंटन

मैं इस पुस्तक के बारे में अधिक बात करता हूं जो मैंने लिखा था कि लगभग एक महीने में प्रकाशित किया जाना चाहिए। मैंने इसे अलग से रखा क्योंकि पुस्तक खरीदना उत्तर का हिस्सा नहीं है। amazon.com/Securing-SQL-Server-Protecting-Attackers/dp/...
mrdenny

@ मार्डी आप हमें पुस्तक से कुछ उपयोगी उद्धरण दे सकते हैं? यह आपके प्रश्न का उत्तर देने में मदद कर सकता है, और इसे स्रोत के रूप में उद्धृत करना काफी स्वीकार्य है :)
ब्रायन बॉल्सन-स्टैंटन

@ ब्रायन मुझे यह देखने के लिए अनुबंध की जांच करनी होगी कि क्या मैं ऐसा कर सकता हूं। मुझे विरोधाभास करना पड़ सकता है, लेकिन मैं देखूंगा कि मैं क्या कर सकता हूं।
मन्दिनी

जवाबों:


11

क्या एक ज्ञात खाता नाम जैसे sa, डेटाबेस के लिए एक सुरक्षा खतरा है?

एक ज्ञात नाम के साथ एक "भगवान" उपयोगकर्ता खाता आमतौर पर एक कम प्रसिद्ध नाम के साथ एक भगवान उपयोगकर्ता की तुलना में एक बुरा विचार माना जाता है। यह क्रूर बल के हमलों को आसान बनाता है क्योंकि हमलावर को केवल पासवर्ड का अनुमान लगाना होता है न कि उपयोगकर्ता नाम और पासवर्ड का।

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

SQL सर्वर में आवश्यकतानुसार sa और विशिष्ट उपयोगकर्ताओं को विशिष्ट व्यवस्थापक अधिकार देना अक्षम करना अनिवार्य rootरूप से sudoLinux और इसी तरह के माध्यम से आवश्यकतानुसार व्यवस्थापक अधिकारों को अक्षम और सौंपने के रूप में एक ही सिफारिश है । saपर्याप्त विशेषाधिकार के साथ मशीन से सीधे जुड़े होने पर आप हमेशा एक बार फिर से सक्षम हो सकते हैं, कुछ भी गलत हो जाना चाहिए और आप अंत में अपने उपयोगकर्ताओं को संचालित करने के लिए (और समस्या को ठीक करने के लिए) सभी अधिकार छोड़ देते हैं, जैसे आप एक लिनक्स में रूट एक्सेस कर सकते हैं। बॉक्स यदि आपके पास बॉक्स तक भौतिक पहुंच है - तो खाता अक्षम करना कोई जादू की गोली नहीं है (लेकिन एक बार जब किसी हमलावर के पास आपकी मशीन तक भौतिक पहुंच होती है, या आरडीसी या एसएसएच के माध्यम से पूर्ण प्रशासनिक पहुंच होती है, तो सभी दांव वैसे भी बंद हैं)।

SQL सर्वर पर विंडोज़ प्रमाणीकरण का उपयोग करते समय यह उसी पासवर्ड नीति को लागू करता है (यदि इसे 5 बार के बाद खाता लॉकआउट कहने के लिए सेट किया गया था)?

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


4

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

यदि कुछ और नहीं, तो आपके सिस्टम का फायदा उठाने की कोशिश करने वाले लोगों के पास समय की राह आसान नहीं है, जैसे कि वे अंधे काम कर रहे हैं (जैसे, कुछ इंटरेक्टिव शेल के बिना sql इंजेक्शन और न ही उनके कमांड से डायरेक्ट आउटपुट देखने में सक्षम)

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

मैं सीआईएस बेंचमार्क की तलाश करना चाहूंगा ... उनके पास हर डेटाबेस के लिए नहीं है, लेकिन उनके पास Oracle, MS SQL, DB2 और MySQL के लिए सिफारिशें हैं। यदि आप कुछ और चला रहे हैं, तो यह अभी भी उन चीजों के सामान्य प्रकारों को देखने लायक है जो वे सुझाते हैं।


4

मैंने किसी और को इसका उल्लेख नहीं देखा इसलिए मैं इसे जोड़ूंगा। SQL सर्वर 2005+ के साथ यदि आपका सर्वर एक डोमेन का हिस्सा है और डोमेन में एक पासवर्ड नीति है, तो आप पासवर्ड नीति को SQL लॉगिन पर लागू करने में सक्षम कर सकते हैं। इसमें पासवर्ड जटिलता आवश्यकताएं और लॉगिन में पासवर्ड परिवर्तन को बाध्य करने की क्षमता शामिल है।

ध्यान दें कि यह कई बार कुछ सॉफ़्टवेयर इंस्टॉलर्स के साथ समस्या पैदा कर सकता है जिन्हें SQL 2005+ के साथ काम करने और असुरक्षित पासवर्ड के साथ SQL लॉगिन बनाने के लिए अद्यतन नहीं किया गया है।


3

SQL सर्वर में दो प्रमाणीकरण मोड का उपयोग किया जाता है: Windows प्रमाणीकरण और मिश्रित मोड (Windows प्रमाणीकरण और SQL सर्वर प्रमाणीकरण दोनों को सक्षम करता है)

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

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

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

अपने SQL सर्वर को ब्रूट-फोर्स हमलों से बचाने के लिए, आपको निम्नलिखित पर विचार करना चाहिए:

  • SQL सर्वर प्रमाणीकरण मोड का उपयोग न करें - हमलावर को Windows प्रमाणीकरण के माध्यम से लॉगिन लॉकआउट को हिट करने के लिए मजबूर करें
  • यदि आपको SQL सर्वर प्रमाणीकरण मोड का उपयोग करने की आवश्यकता है, तो SA लॉगिन को अक्षम या हटा दें - इस तरह से हमलावर को उपयोगकर्ता नाम और पासवर्ड दोनों का अनुमान लगाना होगा

1

जब सक्षम SQL सर्वर पर कुछ भी कर सकता है, तो सा खाता। यदि एक हमलावर इस खाते में जाने के लिए थे, तो वे SQL सर्वर उदाहरण (और संभवतः होस्ट ओएस) पर कुछ भी कर सकते थे जो वे चाहते थे।


1

एसए (और अन्य प्रसिद्ध खाता नाम) अच्छी तरह से ज्ञात बिंदु हैं जो हैकर्स हमला कर सकते हैं। ओरेकल के कुछ खराब दस्तावेज थे और इस तरह डिफ़ॉल्ट पासवर्ड हमेशा बदले नहीं जाते थे। एक बार जब आप SQL सर्वर में SA खाते का नियंत्रण प्राप्त कर लेते हैं, तो आप उस सर्वर को नियंत्रित करते हैं जिस पर वह चल रहा होता है और किसी भी कोड को चला सकता है या आपकी इच्छा के अनुसार कुछ भी स्थापित कर सकता है। अपने अधिक चरवाहा दिनों में, मुझे याद है कि मुझे अनुमति नहीं दी जा रही है (इसे भरने के लिए कागजी कार्रवाई की आवश्यकता नहीं थी) SQL सर्वर होस्ट करने वाले वेबसर्वर पर एक ActiveX नियंत्रण स्थापित करने के लिए - इसलिए मैंने नियंत्रण की प्रतिलिपि बनाने और स्थापित करने के लिए xp_cmdshell का उपयोग किया ।


1
डिफ़ॉल्ट Oracle SYS पासवर्ड change_on_install है और आपको आश्चर्य होगा कि कितने लोग नहीं!
जायस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.