क्या sys.sql_logins.is_policy_checked का अर्थ है कि नीति की जाँच कर ली गई है?


16

जब मैं अंदर देखता हूं sys.sql_logins, तो मुझे एक कॉलम दिखाई देता है is_policy_checked। क्या मुझे भरोसा है कि मेरी पासवर्ड नीति उन सभी लॉगिन के लिए जाँची जा चुकी है जहाँ यह स्तंभ मान है 1?

जवाबों:


21

नहीं।

हालांकि वर्तमान में दस्तावेज़ीकरण में निम्नलिखित स्पष्ट रूप से अस्पष्ट कथन है कि इस ध्वज का क्या अर्थ है:

पासवर्ड नीति की जाँच की जाती है।

इसका वास्तव में क्या मतलब है, और यह कहना चाहिए, कि झंडा दो उद्देश्यों की सेवा करता है:

  1. पासवर्ड नीति की जाँच की जा सकती है, लेकिन केवल तभी (जब) ​​पासवर्ड नीति को पासवर्ड के अंतिम सेट में सक्षम किया गया था, और (बी) पासवर्ड को सादे पाठ में निर्दिष्ट किया गया था (हैश के साथ नहीं)।
  2. अगली बार पॉलिसी सेट होने पर पासवर्ड पॉलिसी की जाँच की जाएगी , लेकिन केवल (ए) पासवर्ड पॉलिसी को उस समय सक्षम किया गया है, और (बी) पासवर्ड सादे पाठ में निर्दिष्ट किया गया है (हैश के साथ नहीं)।

(और ध्यान दें कि "नीति" भी समाप्ति को लागू करने और इस तथ्य को संदर्भित करती है कि उपयोगकर्ता को अगले लॉगिन पर पासवर्ड बदलना होगा, लेकिन चूंकि जटिलता आम तौर पर संचालन के ऑडिटिंग का फोकस है, मैं केवल उस पहलू पर ध्यान केंद्रित करने जा रहा हूं। )

is_policy_checkedबिट के लिए सेट है 1, तो CHECK_POLICY = ONएक के दौरान CREATE LOGINया ALTER LOGINघटना है, भले ही नीति समय में चिह्नित नहीं है। जैसा कि आप शायद ऊपर से इकट्ठा कर सकते हैं, यह चेक इन परिदृश्यों में नहीं होता है:

  • पासवर्ड का उपयोग करके पासवर्ड निर्दिष्ट किया जाता है HASHED(सर्वरों के बीच लॉगिन को माइग्रेट करते समय या लॉग / शिप किए गए / एजी सेकेंडरी में लॉगिंग करने के लिए एक बहुत ही सामान्य रणनीति)। यदि आपके पास पूर्व-हैश मूल्य नहीं है, तो स्पष्ट रूप से पासवर्ड की जटिलता की जांच करना संभव नहीं है।
  • जिस समय घटना होती है, स्थानीय पासवर्ड जटिलता नीति सक्षम नहीं होती है।
  • ऊपर दिए गए मेरे प्रस्तावित रीवॉर्डिंग में शामिल नहीं है, लेकिन आप ALTER LOGINएक नया पासवर्ड सेट किए बिना कर सकते हैं, और फिर भी ध्वज को बदल सकते हैं ( यह दिखाने के लिए @AMtwo के लिए धन्यवाद )। मुझे संदेह है कि यह चतुर लोगों द्वारा एक ऑडिटर को बेवकूफ बनाने की कोशिश करके किया गया हो सकता है।

इन समस्याओं को प्रदर्शित करना आसान है।

चूँकि मैंने जिन लोगों से इस बारे में बात की है, उन्होंने हमेशा यह माना है कि is_policy_checkedवास्तव में इसका मतलब है कि वर्तमान पासवर्ड वर्तमान पासवर्ड नीति से मिलता है, मुझे लगता है कि यह महत्वपूर्ण है कि यहां कुछ बदलाव हो ताकि उपयोगकर्ताओं को सही उम्मीदें हों और समझें कि इस ध्वज का मतलब जरूरी नहीं है सब ठीक हैं। बहुत कम से कम, प्रलेखन को वास्तविकता को प्रतिबिंबित करने के लिए अद्यतन किया जाना चाहिए, जैसे कि मैंने ऊपर बताया है। लेकिन कुछ अन्य चीजें भी हो सकती हैं।

  • यदि CHECK_POLICY = ONनिर्दिष्ट किया गया है तो चेतावनी दी जा सकती है लेकिन पॉलिसी वास्तव में जाँच नहीं की जा सकती है (क्योंकि या तो पासवर्ड हैश के साथ निर्दिष्ट किया गया है, या क्योंकि पासवर्ड नीति को अक्षम कर दिया गया है, या क्योंकि कमांड बाईपास करने का एक सरल प्रयास है। या झंडा सेट करें, जैसे ALTER LOGIN blat WITH CHECK_POLICY = ON;)।
  • CHECK_POLICYACTIVELY_CHECK_POLICYऔर शायद के पक्ष में पदावनत किया जा सकता है CHECK_POLICY_ON_NEXT_CHANGE। में कॉलम sys.sql_loginsहोना चाहिए policy_has_been_checkedऔर policy_will_be_checked। मैं इन नामों से विवाहित नहीं हूं, लेकिन वे मौजूदा शब्दांकन से बहुत अधिक सटीक हैं।
  • यदि मैं चुनता हूं ACTIVELY_CHECK_POLICY = ONऔर कमांड के निष्पादन के दौरान पॉलिसी की जांच नहीं की जा सकती है, तो मुझे एक त्रुटि संदेश प्राप्त करना चाहिए और ध्वज को सेट नहीं किया जाना चाहिए 1(या लॉगिन निर्माण या पासवर्ड परिवर्तन भी सफल नहीं होना चाहिए)।
  • मुझे नहीं लगता कि इस मामले में यह वर्तमान व्यवहार के साथ जारी रखने के लिए समझ में आता है, जहां मैं यह निर्दिष्ट कर सकता हूं कि मैं चाहता हूं कि नीति की जांच की जाए, लेकिन फिर भी यह नहीं हो सकता है, पासवर्ड की अनुमति है और लॉगिन बनाया / बदल दिया गया है (यह खराब है, IMHO, इस तथ्य के बाद ध्वज की स्थिति की परवाह किए बिना - लेकिन कम से कम अगर इसे सेट किया गया था 0, तो ऐसे बाईपास की पहचान की जा सकती है)।

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

मैं आपको कनेक्ट आइटम पर वोट करने के लिए प्रोत्साहित करता हूं और इससे भी महत्वपूर्ण बात यह है कि आप अपने सिस्टम को झूठी धारणाओं के साथ ऑडिट नहीं कर रहे हैं कि यह डीडीएल विकल्प और मेटाडेटा कैसे काम करता है।

कृपया इसे एक "गैर-मुद्दे" के रूप में अलग न करें, क्योंकि आप पूरी तरह से सहज हैं कि यह कैसे काम करता है और पहले से ही जानता है कि ध्वज पर भरोसा नहीं किया जा सकता है - आप उस उपयोगकर्ता नहीं हैं जिसके बारे में मैं चिंतित हूं; यह बाकी सब है।

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