macOS में सिस्टम और kernel एक्सटेंशन
macOS 10.15 या बाद के संस्करण kernel स्तर के बजाए यूज़र स्पेस में रन होने वाले सिस्टम एक्सटेंशन को इंस्टॉल और प्रबंधित करके macOS की क्षमताओं को विस्तारित करने के लिए डेवलपर को सक्षम करते हैं। यूज़र स्पेस में रन करके सिस्टम एक्सटेंशन macOS की स्थिरता और सुरक्षा को बढ़ाते हैं। हालाँकि kexts के पास संपूर्ण ऑपरेटिंग सिस्टम का पूरा ऐक्सेस है, फिर भी यूज़र स्पेस में रन होने वाले एक्सटेंशन को उनकी विशिष्ट फ़ंक्शनलिटी को निष्पादित करने के लिए केवल आवश्यक विशेषाधिकार प्रदान किए जाते हैं।
सिस्टम एक्सटेंशन MDM का उपयोग करते हुए रोबस्ट प्रबंधन का समर्थन करते हैं, जिसमें शामिल हैं किसी विशिष्ट डेवलपर या किसी विशिष्ट प्रकार (जैसे नेटवर्क एक्सटेंशन) के एक्सटेंशन को यूज़र एक्सटेंशन के बिना लोड करने के लिए अनुमति देने की योग्यता। वैकल्पिक रूप से, MDM यूज़र को अपने ख़ुद के सिस्टम एक्सटेंशन को लोड करने के लिए अनुमोदन की अनुमति नहीं दे सकते हैं।
macOS 11.3 से लेकर macOS 11.6.4 में, सीधे सिस्टम एक्सटेंशन प्रोफ़ाइल में बदलाव करने से एक्सटेंशन की स्थिति प्रभावित होती है। उदाहरण के लिए, यदि किसी एक्सटेंशन का अनुमोदन लंबित है और एक्सटेंशन को अनुमति देने वाला कॉन्फ़िगरेशन प्रोफ़ाइल पुश किया जाता है, तो एक्सटेंशन लोड करने की अनुमति दी जाती है। इसके लिए, यदि अनुमोदन को रद्द किया जाता है, तो सिस्टम एक्सटेंशन को अनलोड किया जाता है और Mac के अगले रीस्टार्ट के समय हटाए जाने के लिए चिह्नांकित किया जाता है। यदि सिस्टम एक्सटेंशन ख़ुद को अनलोड करने की कोशिश करता है, तो एक इंटरैक्टिव प्रमाणन डायलॉग दिखाई देता है जिसे अनलोड करने के लिए ऐडमिनिस्ट्रेटर के क्रेडेंशियल की ज़रूरत होती है।
macOS 12.0.1 या बाद के संस्करण में, सिस्टम एक्सटेंशन पेलोड में शब्दकोश—जिसे RemovableSystemExtensions
—कहा जाता है, MDM ऐडमिनिस्ट्रेटर को निर्दिष्ट करने की अनुमति देता है कि कौन-से ऐप्स उनके अपने सिस्टम एक्सटेंशन से हटाए जाने में सक्षम हैं। सिस्टम एक्सटेंशन को हटाने के लिए किसी भी स्थानीय ऐडमिनिस्ट्रेटर प्रमाणन की ज़रूरत नहीं पड़ती है। यह ख़ास तौर पर उन विक्रेताओं के लिए उपयोगी है जो अपने ऐप्स के लिए ऑटोमैटेड अनइंस्टॉलर प्रदान करते हैं।
Kernel एक्सटेंशन
macOS 11 या बाद के संस्करण में, यदि तृतीय-पक्ष kernel एक्सटेंशन (kexts) को सक्षम किया गया है, तो माँग की जाने पर उन्हें kernel में लोड नहीं किया जा सकता। इसके लिए AuxKC को फिर से बनाने के लिए kernel में बदलाव लोड करने हेतु यूज़र के अनुमोदन की और macOS को रीस्टार्ट करने की आवश्यकता होती है और इसके लिए यह भी आवश्यक है कि सुरक्षित बूट को Apple silicon वाले Mac पर घटाई गई सुरक्षा में कॉन्फ़िगर किया गया हो।
डेवलपर kexts को राइट किए बिना USB और ह्यूमन इंटरफ़ेस ड्राइवर, एंडपॉइंट सिक्योरिटी टूल (जैसे कि डेटा हानि या अन्य एंडपॉइंट एजेंट की रोकथाम) और VPN और नेटवर्क टूल को राइट करने के लिए फ़्रेमवर्क का उपयोग कर सकते हैं, जिनमें DriverKit और NetworkExtension शामिल हैं। यदि तृतीय-पक्ष सुरक्षा एजेंट इन API का लाभ उठाते हैं या उनके पास kernel एक्सटेंशन को छोड़कर उन पर ट्रांज़िशन करने का प्रबल मानचित्र है, केवल तभी इन तृतीय-पक्ष सुरक्षा एजेंट का उपयोग किया जाना चाहिए।
महत्वपूर्ण : macOS के लिए अब Kexts अनुशंसित नहीं हैं। Kexts ऑपरेटिंग सिस्टम की इंटेग्रिटी और विश्वसनीयता को दाँव पर लगाते हैं। यूज़र को ऐसे समाधानों को प्राथमिकता देनी चाहिए जिनके लिए kernel को विस्तारित करने की आवश्यकता नहीं होती, बल्कि जो सिस्टम एक्सटेंशन का उपयोग करते हैं।
macOS 11 या बाद के संस्करण वाले Intel-आधारित या Apple silicon वाले Mac पर kexts जोड़ना
यदि आपको कर्नेल एक्सटेंशन का उपयोग करना है, तो नामांकन प्रकार के आधार पर अनुमोदन विधियों की समीक्षा करें।
MDM नामांकन प्रकार | अनुमोदन विधि | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
नामांकित नहीं यूज़र नामांकन | जब एक नया kext इंस्टॉल किया जाता है और उसे लोड करने का प्रयास किया जाता है, तो यूज़र द्वारा चेतावनी संवाद से रीस्टार्ट शुरू किया जाना चाहिए :
इस रीस्टार्ट के कारण AuxKC को kernel बूटिंग से पहले फिर से बनाना शुरू होता है। | ||||||||||
डिवाइस नामांकन ऑटोमेटेड डिवाइस नामांकन | हर बार जब एक नया kext इंस्टॉल किया जाता है और उसे लोड करने का प्रयास किया जाता है, तो निम्नलिखित में से किसी एक के द्वारा रीस्टार्ट शुरू किया जाना चाहिए :
नोट : kext की अनुमति प्राप्त सूची प्रोफ़ाइल को सबसे पहले kext को निर्दिष्ट करने वाले MDM समाधान द्वारा इंस्टॉल किया जाना चाहिए। macOS 11.3 या बाद के संस्करण वैकल्पिक रूप से MDM को यूज़र को सूचना देने की अनुमति देते हैं, ताकि वे सुविधा के अनुसार रीस्टार्ट को पूरा करें। |
Apple silicon वाले Mac पर kexts जोड़ने के लिए अतिरिक्त चरण
यदि आप Apple silicon वाले Mac पर कर्नेल एक्सटेंशन जोड़ रहे हैं, तो आपको अतिरिक्त कदम उठाने होंगे।
MDM नामांकन प्रकार | अनुमोदन विधि | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
नामांकित नहीं | यूज़र द्वारा Kext प्रबंधन किए जाने के लिए recoveryOS में रीस्टार्ट करने की आश्यकता है, ताकि सुरक्षा सेटिंग्ज़ को डाउनग्रेड किया जा सके। recoveryOS में रीस्टार्ट करने और ऐडमिनिस्ट्रेटर के रूप में प्रमाणित करने के लिए यूज़र को पावर बटन को दबाए रखना चाहिए। पावर बटन को दबाए रखकर recoveryOS में प्रवेश करने के बाद ही Secure Enclave नीति में बदलाव का स्वीकार करेगा। फिर यूज़र को “घटाई गई सुरक्षा” चेकबॉक्स और “पहचाने गए डेवलपर से kernel एक्सटेंशन के यूज़र प्रबंधन की अनुमति दें” विकल्प चुनना चाहिए और Mac को रीस्टार्ट करना चाहिए। | ||||||||||
यूज़र नामांकन | सुरक्षा सेटिंग्ज़ को डाउनग्रेड करने के लिए यूज़र को recoveryOS में रीस्टार्ट करने की आश्यकता है। recoveryOS में रीस्टार्ट करने और स्थानीय ऐडमिनिस्ट्रेटर के रूप में प्रमाणित करने के लिए यूज़र को पावर बटन को दबाए रखना चाहिए। पावर बटन को दबाए रखकर recoveryOS में प्रवेश करने के बाद ही Secure Enclave नीति में बदलाव का स्वीकार करेगा। फिर यूज़र को “घटाई गई सुरक्षा” चुननी चाहिए, “पहचाने गए डेवलपर से kernel एक्सटेंशन के यूज़र प्रबंधन की अनुमति दें” की जाँच करनी चाहिए और Mac को रीस्टार्ट करना चाहिए। | ||||||||||
डिवाइस नामांकन | MDM समाधान को यूज़र को सूचित करना चाहिए कि सुरक्षा सेटिंग्ज़ को डाउनग्रेड करने के लिए उन्हें recoveryOS में रीस्टार्ट करने चाहिए। recoveryOS में रीस्टार्ट करने और ऐडमिनिस्ट्रेटर के रूप में प्रमाणित करने के लिए यूज़र को पावर बटन को दबाए रखना चाहिए। पावर बटन को दबाए रखकर recoveryOS में प्रवेश करने के बाद ही Secure Enclave नीति में बदलाव का स्वीकार करेगा। फिर यूज़र को “घटाई गई सुरक्षा” चुननी चाहिए, “kernel एक्सटेंशन और ऑटोमैटिक सॉफ़्टवेयर अपडेट के रिमोट प्रबंधन की अनुमति दें” की जाँच करनी चाहिए और Mac को रीस्टार्ट करना चाहिए। यह जानने के लिए कि यह फ़ीचर आपके डिवाइस के लिए समर्थित है या नहीं, अपने MDM वेंडर के दस्तावेज़ देखें। | ||||||||||
ऑटोमेटेड डिवाइस नामांकन (Mac सीरियल नंबर Apple School Manager, Apple Business Manager या Apple Business Essentials में दिखाई देना चाहिए और Mac को सेवा से जुड़े MDM समाधान में नामांकित होना चाहिए।) | MDM समाधान इसे ऑटोमैटिकली प्रबंधित कर सकते हैं। यह जानने के लिए कि यह फ़ीचर आपके डिवाइस के लिए समर्थित है या नहीं, अपने MDM वेंडर के दस्तावेज़ देखें। |
सिस्टम इंटेग्रिटी सुरक्षा वाले Kernel एक्सटेंसन
यदि सिस्टम इंटेग्रिटी सुरक्षा (SIP) को सक्षम किया गया है, तो प्रत्येक kext को AuxKC में शामिल करने से पहले उसकी सिग्नेचर को सत्यापित किया जाता है।
यदि SIP को अक्षम किया गया है, तो kext सिग्नेचर को लागू नहीं किया जाता है।
kexts को साइन करने से पहले उनका जाँच करने के लिए यह दृष्टिकोण ऐसे डेवलपर और यूज़र के लिए परमिसिव सुरक्षा की अनुमति देता है जो Apple डेवलपर प्रोग्राम के भाग नहीं हैं।