2011-03-30 5 views
6

मैं अपने एसक्यूएल सर्वर पर CLR को सक्षम करने के विचार के साथ कर रहा हूँ EXEC sp_configure 'clr enabled', 1क्या एसक्यूएल सर्वर 2005 पर सीएलआर सक्षम करने के साथ कोई सुरक्षा समस्या है?

का उपयोग कर लेकिन, मैं कई अन्य डेवलपर्स और उनकी परियोजनाओं के साथ अपने डेटाबेस सर्वर साझा कर रहा हूँ। मैंने अस्पष्टता से सुना है कि यह सक्षम होने के साथ security issues हो सकता है।

क्या कोई यह जानता है कि ये समस्याएं क्या हो सकती हैं? एसएलआर एसक्यूएल सर्वर पर उपयोग करने के लिए सुरक्षित है?

उत्तर

3

नहीं, SQLCLR कोड समान सुरक्षा संदर्भ के तहत चल रहे समकक्ष टी-एसक्यूएल कोड मॉड्यूल की तुलना में डेटाबेस में और कुछ नहीं कर सकता है।

यह था और वर्तमान में एसक्यूएल सर्वर (विशेष रूप से के बाद 2012) के सभी में सबसे अज्ञानी सुरक्षा का दावा है, जो SCCM databases लिए यूआई कनेक्टिविटी तोड़ सकते है, प्रमुख ईटीएल तैनाती मॉडल SSISDB (CLR की आवश्यकता है), क्योंकि एक 3 पार्टी सुरक्षा उपकरण सीआईएस बेंचमार्क (मुख्य रूप से डीबीप्रोटेक्ट) को नुकसान पहुंचाता है जो सर्वर 2000 के माध्यम से SQL सर्वर संयोजन गुणांक को गलत तरीके से झुकाता है, भले ही सर्वर 2000 नहीं चल रहा है, गलत तरीके से मास्टर को पुनर्निर्माण करने के लिए डीबीए को निर्देशित करता है और हमेशा अपने पर्यावरण और अनुप्रयोगों को अपंग कर देता है, अगर कोई भी खोज पर बात नहीं करता है । सीएलआर सुरक्षा जोखिम नहीं है, यह आरडीपी और फ़ाइल सिस्टम दाएं शमन और एसएसआईएस कोड प्रबंधन के माध्यम से कई संबंधों में सुरक्षा के लिए प्रमुख वृद्धि (SQL सर्वर 2012 पोस्ट) के लिए अनुमति देता है। एसएसआईएसडीबी, जो एचए समाधान सहित प्रत्येक 90% एसक्यूएल सर्वर दुकानों को प्रभावित करने की संभावना है, एक एकल SAN पर निर्भर नहीं है।

डीबीए के संबंध में एक साइड नोट जो सीएलआर के विपरीत है, क्योंकि इसे "बुरी तरह से समस्या निवारण करना मुश्किल हो सकता है" - यह मुख्य रूप से डीबीए प्यूरीव्यू के अंदर वरिष्ठ .NET डेवलपर कोड की समस्या निवारण के लिए नहीं है, यदि आप खराब डीबीए किराए पर लेते हैं तो वे समस्या निवारण के लिए भी मुश्किल हो सकती है (उपरोक्त के माध्यम से ऊपर देखें)। इसके अलावा, सीएलआर का लाभ उठाने वाले अधिकांश लोग फ्लैगशिप फ़ंक्शंस के लिए ऐसा कर रहे हैं और सीएलआर कोड लिखने के साथ बहुत कम या कुछ भी नहीं है (हालांकि script tasks in SSIS leverage this डिग्री सेल्सियस), और एसएसआईएसडीबी के साथ और अधिक SAN में उपलब्धता समूहों का उपयोग करने के लिए बहुत कुछ है। डीबीए जो इस कार्यक्षमता को नापसंद करते हैं उन्हें वर्ष 2008 के लिए एक समय के साथ कूदना चाहिए और स्टैसिस मोड हिट करना चाहिए। यह एक पूर्ण-स्टैक बीआई/डीबीए परिप्रेक्ष्य से लिखा गया है, कुछ हद तक मायोपिक sys internals vantage बिंदु से नहीं।

आगे, Availability Groups utilize CLR, सीएलआर सक्षम नहीं होने पर त्रुटि उत्पन्न हुई है। अधिक जानकारी Technet

दोनों उपलब्धता समूह और एसएसआईएसडीबी दोनों आधुनिक SQL सर्वर वातावरण की प्रमुख विशेषताएं हैं।

वर्तमान में, CLR सक्षम करने और SSISDB के माध्यम से SSIS पैकेज वितरित करते हुए, आप फाइल सिस्टम संगठन कुप्रबंधन और अव्यवस्था, लाभ विरासत में मिला बैकअप रखरखाव योजनाओं और यहां तक ​​कि TDE को कम कर सकते हैं, और वास्तव में काफी आरडीपी के लिए की जरूरत एक SSIS पैकेज का निवारण करने के कम ।

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

http://www.codemag.com/article/0603031

CLR बस

sp_configure 'show advanced options', 1; 
GO 
RECONFIGURE; 
GO 
sp_configure 'clr enabled', 1; 
GO 
RECONFIGURE; 
GO 
+0

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

+0

तो Azure में एसक्यूएल एजेंट था - आपके दावे का कोई आधार या उद्धरण नहीं है। –

+0

क्या आपने सख्त सुरक्षा पर लेख देखा था? यह PERMISSION_SET = SAFE के साथ बनाई गई सीएलआर असेंबली कहता है, सुरक्षित बाहरी सिस्टम संसाधनों तक पहुंचने, अप्रबंधित कोड को कॉल करने और sysadmin विशेषाधिकार प्राप्त करने में सक्षम हो सकता है - sysadmin के लिए बढ़ते विशेषाधिकार एक स्पष्ट स्पष्ट सुरक्षा समस्या है और आपके उत्तर में दावा का विरोध करता है कि 'SQLCLR कोड एक ही सुरक्षा संदर्भ ' –

1

मैं इस पर Squillman साथ हूँ चलाने सक्षम करने के लिए; दुर्भाग्यवश, उत्तर "हां" या "नहीं" जितना आसान नहीं है।सर्वर पर

को सक्षम करने से CLR अपने सर्वर है, जो कस्टम मॉड्यूल & डेटा प्रकार बनाने के लिए संभावनाओं की एक गैर तुच्छ सेट को खोलता है पर उपयोगकर्ता परिभाषित CLR मॉड्यूल की मेजबानी में सक्षम बनाता है, लेकिन यह भी अपने सर्वर पर एक महत्वपूर्ण हमले सतह क्षेत्र को खोलता है।

आगे विचार लेने के लिए कर रहे हैं:

  • डीबी पर विशेषाधिकार प्राप्त अनुमतियों कौन? क्या आप अन्य सभी पर भरोसा करते हैं जो आपके SQL सर्वर पर असेंबली बनाने में सक्षम हो सकते हैं? यदि नहीं, तो ध्यान रखें कि वे आपके सर्वर पर पर सीएलआर कोड होस्ट करने में सक्षम होंगे, जो मैं अनुशंसा नहीं करता हूं।
  • सर्वर पर अन्य सेटिंग, डीबीएस & डेटाबेस पर भरोसेमंद बिट सेटिंग के मालिकाना हक भी शामिल है।
    https://blogs.msdn.microsoft.com/sqlsecurity/2007/12/03/the-trustworhy-bit-database-property-in-sql-server-2005/

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

मुझे आशा है कि इस मदद करता है,

-Raul गार्सिया

एसक्यूएल सुरक्षा

0

तथ्य यह है कि SQL CLR was unceremoniously removed from Azure for security reasons और SQL सर्वर 2017 में एक नया विकल्प CLR strict security जो डिफ़ॉल्ट रूप से सक्षम किया गया है परिचय से तो यह स्पष्ट है कि संभावित सुरक्षा समस्याएं हैं और आपको अनवरोधित सीएलआर कोड को तैनात करने की अनुमति नहीं देनी चाहिए।

सख्त सुरक्षा कड़ी राज्यों

CLR PERMISSION_SET = सुरक्षित के साथ बनाया विधानसभा बाहरी प्रणाली संसाधनों का उपयोग, अप्रबंधित कोड कहते हैं, और सिस्टम प्रशासक के अधिग्रहण विशेषाधिकार

में से एक करने के लिए सक्षम हो सकता है उपरोक्त लिंक किए गए पोस्ट पर टिप्पणियां

कई ".NET सुरक्षा अद्यतन" runnin विंडोज अपडेट के माध्यम से जी हैं जहां कोई सुरक्षित कोड का उपयोग कर .NET सैंडबॉक्स से बच सकता है। बहुत सारे वर्षों में ऐसे कई मामले।

इसके अलावा

SQL Server Guidance to protect against speculative execution side-channel vulnerabilities विशेष रूप से "अविश्वसनीय एसक्यूएल सर्वर तानाना तंत्र" खंड में सूचीबद्ध करता है "SQL CLR विधानसभाओं"।

संबंधित मुद्दे