Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL सर्वर और स्पेक्टर/मेल्टडाउन कमजोरियाँ

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

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

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

पैचिंग का प्रदर्शन प्रभाव

आपके सर्वर हार्डवेयर, ऑपरेटिंग सिस्टम, वर्कलोड, और आप कौन से पैच इंस्टॉल करते हैं, इस पर निर्भर करते हुए, यह संभावना है कि आप इन शमन उपायों से कुछ नकारात्मक प्रदर्शन प्रभाव देखेंगे। माइक्रोसॉफ्ट के टेरी मायर्सन के पास इस विषय पर एक विस्तृत विस्तृत पोस्ट है, जबकि नेटफ्लिक्स के ब्रेंडन ग्रेग के लिनक्स पर कुछ विस्तृत परिणाम हैं। ब्रैंडन ली ने यहां VMware के माहौल में कुछ सिंथेटिक बेंचमार्क टेस्टिंग की है।

अच्छी खबर यह है कि इस पैचिंग प्रयास के परिणामस्वरूप होने वाले अधिकांश प्रदर्शन प्रतिगमन को SQL सर्वर में उचित कॉन्फ़िगरेशन और वर्कलोड ट्यूनिंग के साथ कम किया जा सकता है। SentryOne के SQL संतरी जैसे निगरानी उत्पादों का उपयोग करने से आपको अपने वातावरण में मौजूद प्रदर्शन बाधाओं की पहचान करने में मदद मिल सकती है।

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

आधुनिक इंटेल प्रोसेसर में पीसीआईडी ​​और आईएनवीपीसीआईडी ​​सपोर्ट है, जो मेल्टडाउन ऑपरेटिंग सिस्टम पैच के प्रदर्शन प्रभाव को काफी कम करता है। इसका मतलब है कि आपको Intel Xeon E5-2600 v3 उत्पाद परिवार (Haswell-EP) और बाद के प्रोसेसर में PCID प्रदर्शन अनुकूलन के लिए Intel Xeon E7 v3 उत्पाद परिवार (Haswell-EX) और बाद के प्रोसेसर के साथ Windows OS समर्थन मिलेगा।

यदि आपका इंटेल प्रोसेसर हैसवेल माइक्रोआर्किटेक्चर से पुराना है (जिसे 2014 की तीसरी तिमाही में दो-सॉकेट सर्वर के लिए जारी किया गया था), तो यह आपको हार्डवेयर अपग्रेड की योजना बनाने के लिए और अधिक कारण देता है। आपके प्रोसेसर में PCID और INVPCID सपोर्ट है या नहीं, यह आसानी से जांचने के लिए मैंने Microsoft CoreInfo का उपयोग करने के तरीके के बारे में लिखा है। मैंने नए Intel Kaby Lake सिस्टम पर कुछ सिंथेटिक बेंचमार्क परीक्षण भी किए हैं।

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

अपने SQL सर्वर इंस्टेंस की जाँच करना

अंत में, आपको अपने SQL सर्वर पैच स्थिति की जांच करने की आवश्यकता है। मैंने एक टी-एसक्यूएल स्क्रिप्ट विकसित की है जो यह देखने के लिए आपके एसक्यूएल सर्वर इंस्टेंस की जांच करेगी कि आपने प्रासंगिक एसक्यूएल सर्वर पैच स्थापित किया है या नहीं। यह स्क्रिप्ट ऑन-प्रिमाइसेस इंस्टेंस के लिए या Azure IaaS इंस्टेंस के लिए SQL Server 2008 से SQL Server 2017 पर काम करेगी। यह Azure SQL डेटाबेस पर कार्य करने के लिए डिज़ाइन नहीं किया गया है। आप इसे यहां डाउनलोड कर सकते हैं।

इस समस्या का एक संभावित लाभ यह है कि यह आपको अपने संगठन को अपने सर्विस पैक और संचयी अद्यतनों के साथ अपने SQL सर्वर इंस्टेंस को चालू करने के लिए और अधिक औचित्य दे सकता है, जो कि Microsoft स्पष्ट रूप से वैसे भी अनुशंसा करता है।

स्पेक्टर/मेल्टडाउन शमन चरण

यहां वे उपाय दिए गए हैं जिन पर आपको दृढ़ता से विचार करना चाहिए:

  • माइक्रोसॉफ्ट से प्रासंगिक ऑपरेटिंग सिस्टम पैच स्थापित करें (यदि उपलब्ध हो)
    • Windows Server, संस्करण 1709, Windows Server 2016, Windows Server 2012 R2 और Windows Server 2008 R2 के लिए उपलब्ध
    • Windows Server 2012 या Windows Server 2008 के लिए अभी तक उपलब्ध नहीं है (15 फरवरी, 2018 तक)
  • सर्वर ऑपरेटिंग सिस्टम पर ऑपरेटिंग सिस्टम सुरक्षा को सक्षम करने के लिए आवश्यक कॉन्फ़िगरेशन परिवर्तन (रजिस्ट्री सेटिंग्स) करें
  • यदि आप हाइपरवाइजर पर चल रहे हैं, तो संबंधित हाइपरवाइजर पैच इंस्टॉल करें
    • VMware vSphere, वर्कस्टेशन और फ़्यूज़न अपडेट सट्टा निष्पादन समस्या के लिए हाइपरवाइज़र-असिस्टेड गेस्ट रेमेडियेशन जोड़ते हैं
  • माइक्रोसॉफ्ट से प्रासंगिक SQL सर्वर पैच स्थापित करें
    • SQL Server 2017, SQL Server 2016, SQL Server 2014, SQL Server 2012 SP4, SQL Server 2008 R2 SP3 और SQL Server 2008 SP4 के लिए उपलब्ध
    • SQL सर्वर 2005 या इससे पहले के संस्करण के लिए उपलब्ध नहीं है
  • अपने सर्वर विक्रेता (यदि उपलब्ध हो) से एक BIOS अपडेट (जिसमें CPU माइक्रोकोड अपडेट है) इंस्टॉल करें
    • यह इस बात पर निर्भर करता है कि आप किस प्रोसेसर का उपयोग कर रहे हैं, साथ ही आपके परिवेश और सुविधा उपयोग पर भी
    • ये BIOS अद्यतन वर्तमान में अधिकांश सर्वरों के लिए उपलब्ध नहीं हैं (इन्हें शुरू में कुछ नए सर्वरों के लिए जारी किया गया था और फिर वापस ले लिया गया था)
  • मूल्यांकन करें कि आप किन SQL सर्वर एक्स्टेंसिबिलिटी सुविधाओं का उपयोग कर रहे हैं और आपको कौन से अतिरिक्त शमन कदम उठाने की आवश्यकता हो सकती है। इनमें शामिल हैं:
    • एसक्यूएल सीएलआर असेंबली
    • R और Python पैकेज बाहरी स्क्रिप्ट तंत्र के माध्यम से चल रहे हैं या SQL सर्वर के समान भौतिक मशीन पर स्टैंडअलोन R/मशीन लर्निंग स्टूडियो से चलते हैं
    • SQL एजेंट एक्स्टेंसिबिलिटी पॉइंट उसी भौतिक मशीन पर चल रहे हैं जिस पर SQL सर्वर (ActiveX स्क्रिप्ट)
    • लिंक्ड सर्वर में उपयोग किए जाने वाले गैर-Microsoft OLE DB प्रदाता
    • गैर-Microsoft विस्तारित संग्रहीत कार्यविधियाँ
    • सर्वर के भीतर निष्पादित COM ऑब्जेक्ट (sp_OACreate के माध्यम से पहुँचा)
    • xp_cmdshell के माध्यम से निष्पादित कार्यक्रम

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर (T-SQL उदाहरण) में लिंक किए गए सर्वर से कॉलम जानकारी लौटाएं

  2. Sql सर्वर अस्थायी तालिका गायब हो जाती है

  3. टी-एसक्यूएल में एक पंक्ति के पिछले मान का उपयोग करके मूल्य की गणना करना

  4. SQL सर्वर - एक संग्रहीत कार्यविधि समाप्त होने तक तालिका को कैसे लॉक करें

  5. SQL सर्वर (T-SQL) में गलत पासवर्ड के कारण लॉगिन के लिए असफल लॉगिन प्रयासों की संख्या प्राप्त करें