macOS Gatekeeper / Quarantine / XProtect
गेटकीपर
गेटकीपर एक सुरक्षा सुविधा है जो मैक ऑपरेटिंग सिस्टम के लिए विकसित की गई है, जिसका उद्देश्य यह सुनिश्चित करना है कि उपयोगकर्ता उनके सिस्टम पर केवल विश्वसनीय सॉफ़्टवेयर चलाएं। यह उपयोगकर्ता द्वारा डाउनलोड किया और खोलने का प्रयास किया गया सॉफ़्टवेयर जैसे कि एक ऐप, एक प्लग-इन, या एक इंस्टॉलर पैकेज से बाहरी स्रोतों से।
गेटकीपर की मुख्य तंत्रिका उसकी सत्यापन प्रक्रिया में है। यह यह जांचता है कि डाउनलोड किया गया सॉफ़्टवेयर किसी मान्यता प्राप्त डेवलपर द्वारा साइन किया गया है, सॉफ़्टवेयर की प्रामाणिकता सुनिश्चित करते हुए। इसके अतिरिक्त, यह सुनिश्चित करता है कि क्या सॉफ़्टवेयर एप्पल द्वारा नोटराइज़्ड है, जिससे यह साबित होता है कि इसमें किसी जाने-माने हानिकारक सामग्री की कमी है और नोटराइज़ेशन के बाद इसमें हस्तक्षेप नहीं किया गया है।
इसके अतिरिक्त, गेटकीपर उपयोगकर्ता नियंत्रण और सुरक्षा को मजबूत करता है जिससे डाउनलोड किए गए सॉफ़्टवेयर को पहली बार खोलने की मंजूरी देने के लिए उपयोगकर्ताओं को प्रोत्साहित किया जाता है। यह सुरक्षा उपाय उपयोगकर्ताओं को विश्वसनीय डेटा फ़ाइल के रूप में गलती से हानिकारक एक्झीक्यूटेबल को चलाने से रोकने में मदद करती है।
एप्लिकेशन हस्ताक्षर
एप्लिकेशन हस्ताक्षर, जिन्हें कोड हस्ताक्षर भी कहा जाता है, एप्पल की सुरक्षा बुनियाद का एक महत्वपूर्ण घटक है। इनका उपयोग सॉफ़्टवेयर लेखक (डेवलपर) की पहचान सत्यापित करने और यह सुनिश्चित करने के लिए किया जाता है कि कोड उस समय से जब आखिरी बार साइन किया गया था, उसमें कोई हस्तक्षेप नहीं किया गया है।
यह कैसे काम करता है:
एप्लिकेशन को साइन करना: जब एक डेवलपर अपने एप्लिकेशन को वितरित करने के लिए तैयार होता है, वह एप्लिकेशन को एक निजी कुंजी का उपयोग करके साइन करता है। यह निजी कुंजी एक प्रमाणपत्र से संबंधित है जिसे डेवलपर को जब वह एप्पल डेवलपर प्रोग्राम में नामांकित होते हैं, तो एप्पल जारी करता है। साइनिंग प्रक्रिया में एप्लिकेशन के सभी हिस्सों का एक और्ध्वगति हैश बनाना और इस हैश को डेवलपर की निजी कुंजी के साथ एन्क्रिप्ट करना शामिल है।
एप्लिकेशन को वितरित करना: साइन किए गए एप्लिकेशन को उपयोगकर्ताओं के साथ डेवलपर के प्रमाणपत्र के साथ वितरित किया जाता है, जिसमें संबंधित पब्लिक कुंजी होती है।
एप्लिकेशन की सत्यापन: जब एक उपयोगकर्ता एप्लिकेशन को डाउनलोड करता है और चलाने का प्रयास करता है, तो उनका मैक ऑपरेटिंग सिस्टम डेवलपर के प्रमाणपत्र से पब्लिक कुंजी का उपयोग करके हैश को डिक्रिप्ट करता है। फिर यह हैश पुनः गणना करता है आधारित हैश को और इसे डिक्रिप्ट किए गए हैश के साथ तुलना करता है। यदि वे मिलते हैं, तो इसका मतलब है कि एप्लिकेशन में कोई परिवर्तन नहीं किया गया है जब से डेवलपर ने इसे साइन किया था, और सिस्टम एप्लिकेशन को चलाने की अनुमति देता है।
एप्लिकेशन हस्ताक्षर एप्पल के गेटकीपर प्रौद्योगिकी का एक महत्वपूर्ण हिस्सा है। जब एक उपयोगकर्ता इंटरनेट से डाउनलोड किए गए एप्लिकेशन को खोलने का प्रयास करता है, तो गेटकीपर एप्लिकेशन हस्ताक्षर की सत्यापन करता है। यदि यह एप्पल द्वारा एक जाने-माने डेवलपर को जारी किए गए प्रमाणपत्र से साइन किया गया है और कोड में कोई हस्तक्षेप नहीं किया गया है, तो गेटकीपर एप्लिकेशन को चलाने की अनुमति देता है। अन्यथा, यह एप्लिकेशन को ब्लॉक करता है और उपयोगकर्ता को चेतावनी देता है।
मैकओएस कैटालिना से शुरू होकर, गेटकीपर यह भी जांचता है कि क्या एप्लिकेशन को एप्पल द्वारा नोटराइज़्ड किया गया है, जो एक अतिरिक्त सुरक्षा स्तर जोड़ता है। नोटराइज़ेशन प्रक्रिया एप्लिकेशन को जाने-माने सुरक्षा समस्याओं और हानिकारक कोड के लिए जांचती है, और यदि ये जांचें पास होती हैं, तो एप्पल एप्लिकेशन में एक टिकट जोड़ता है जिसे गेटकीपर सत्यापित कर सकता है।
हस्ताक्षरों की जांच
किसी **म
स्वीकृति
एप्पल की स्वीकृति प्रक्रिया उपयोगकर्ताओं को संभावित हानिकारक सॉफ़्टवेयर से सुरक्षित रखने के लिए एक अतिरिक्त सुरक्षा प्रावधान के रूप में काम करती है। इसमें डेवलपर अपने एप्लिकेशन को एप्पल की नोटरी सेवा के द्वारा जांच के लिए प्रस्तुत करता है, जिसे एप्प रिव्यू से भिन्न नहीं किया जाना चाहिए। यह सेवा एक स्वचालित प्रणाली है जो प्रस्तुत सॉफ़्टवेयर को हानिकारक सामग्री और कोड-साइनिंग के साथ किसी भी संभावित समस्याओं के लिए जांचती है।
यदि सॉफ़्टवेयर इस जांच में सफलता प्राप्त करता है और कोई भी चिंता नहीं उठाता है, तो नोटरी सेवा एक स्वीकृति टिकट उत्पन्न करती है। उसके बाद डेवलपर को अपने सॉफ़्टवेयर के साथ इस टिकट को जोड़ना अनिवार्य होता है, जिसे 'स्टैप्लिंग' कहा जाता है। इसके अतिरिक्त, स्वीकृति टिकट को भी ऑनलाइन प्रकाशित किया जाता है जहां गेटकीपर, एप्पल की सुरक्षा प्रौद्योगिकी, इसे एक्सेस कर सकती है।
उपयोगकर्ता के पहले सॉफ़्टवेयर के स्थापना या उसके निष्पादन पर, नोटरीकरण टिकट की मौजूदगी - चाहे वह एक्जीक्यूटेबल के साथ स्टैपल किया गया हो या ऑनलाइन पाया जाए - गेटकीपर को सूचित करती है कि सॉफ़्टवेयर को एप्पल द्वारा स्वीकृत किया गया है। इस परिणामस्वरूप, गेटकीपर प्रारंभिक लॉन्च संवाद में एक विवरणात्मक संदेश प्रदर्शित करता है, जिससे स्थापित होता है कि उपयोगकर्ता उनके सिस्टम पर स्थापित या चलाए गए सॉफ़्टवेयर की सुरक्षा की जांच की गई है।
गेटकीपर की गणना
गेटकीपर एक है, कई सुरक्षा घटक जो अविश्वसनीय ऐप्स को निष्पादित होने से रोकते हैं और एक है, उनमें से एक घटक।
गेटकीपर की स्थिति देखना संभव है:
ध्यान दें कि GateKeeper हस्ताक्षर जांच केवल क्वारंटाइन विशेषता वाले फ़ाइलों पर की जाती है, हर फ़ाइल पर नहीं।
GateKeeper यह जांचेगा कि प्राथमिकताओं और हस्ताक्षर के अनुसार क्या एक बाइनरी क्रियान्वित किया जा सकता है:
इस कॉन्फ़िगरेशन को रखने वाला डेटाबेस /var/db/SystemPolicy
में स्थित है। आप इस डेटाबेस को रूट के रूप में चेक कर सकते हैं:
नोट करें कि पहला नियम "App Store" में समाप्त हुआ और दूसरा "Developer ID" में और पिछले इमेज में यह App Store और पहचाने गए डेवलपर्स से ऐप्स को चलाने की सक्षमता थी। अगर आप उस सेटिंग को App Store पर संशोधित करते हैं, तो "Notarized Developer ID" नियम हट जाएंगे।
GKE प्रकार के हजारों नियम भी हैं:
ये हैश हैं जो /var/db/SystemPolicyConfiguration/gke.bundle/Contents/Resources/gke.auth
, /var/db/gke.bundle/Contents/Resources/gk.db
और /var/db/gkopaque.bundle/Contents/Resources/gkopaque.db
से आते हैं
या आप पिछली जानकारी को निम्नलिखित के साथ सूचीबद्ध कर सकते हैं:
विकल्प --master-disable
और --global-disable
का उपयोग spctl
करके इन हस्ताक्षर जांचों को पूरी तरह से अक्षम कर देगा:
जब पूरी तरह से सक्षम हो जाए, तो एक नया विकल्प दिखाई देगा:
GateKeeper द्वारा क्या किसी ऐप को अनुमति दी जाएगी यह जांचना संभव है:
GateKeeper में नए नियम जोड़ना संभव है ताकि कुछ एप्लिकेशनों को निष्पादित किया जा सके:
क्वारंटाइन फ़ाइलें
एक एप्लिकेशन या फ़ाइल को डाउनलोड करने पर, विशिष्ट macOS एप्लिकेशन जैसे वेब ब्राउज़र या ईमेल क्लाइंट्स डाउनलोड की गई फ़ाइल के साथ एक विस्तारित फ़ाइल गुणवत्ता जो सामान्यत: "क्वारंटाइन झंडा" के रूप में जानी जाने वाली एक विशेषता जोड़ते हैं। यह गुणवत्ता फ़ाइल को एक सुरक्षा उपाय के रूप में चिह्नित करती है कि यह अविश्वसनीय स्रोत (इंटरनेट) से आ रही है, और संभावित जोखिम ले सकती है। हालांकि, सभी एप्लिकेशन इस गुणवत्ता को नहीं जोड़ते, उदाहरण के लिए, सामान्य बिटटोरेंट क्लाइंट सॉफ़्टवेयर आम तौर पर इस प्रक्रिया को छोड़ देते हैं।
क्वारंटाइन झंडा की मौजूदगी जब एक उपयोगकर्ता फ़ाइल को निष्पादित करने का प्रयास करता है, तो macOS के गेटकीपर सुरक्षा सुविधा को संकेत करती है।
उस स्थिति में जहां क्वारंटाइन झंडा मौजूद नहीं है (कुछ बिटटोरेंट क्लाइंट्स के माध्यम से डाउनलोड की गई फ़ाइलों के साथ), गेटकीपर की जांचें संपन्न नहीं की जा सकती हैं। इसलिए, उपयोगकर्ताओं को सावधानी बरतनी चाहिए जब वे कम सुरक्षित या अज्ञात स्रोतों से डाउनलोड की गई फ़ाइलें खोलते हैं।
कोड हस्ताक्षरों की मान्यता की जांच एक संसाधन-प्रचुर प्रक्रिया है जिसमें कोड और उसके सभी संगठित संसाधनों के एन्क्रिप्टेड हैश उत्पन्न किए जाते हैं। इसके अतिरिक्त, प्रमाणपत्र की मान्यता की जांच में उसे जांचने के लिए ऑनलाइन जांच करना होता है कि यह जारी किए जाने के बाद रद्द कर दिया गया है। इन कारणों से, हर बार जब एक ऐप निष्पादित किया जाता है, एक पूर्ण कोड हस्ताक्षर और नोटराइजेशन जांच अव्यावहारिक होती है।
इसलिए, ये जांचें केवल उस समय चलाई जाती हैं जब किसी ऐप को क्वारंटाइन गुणवत्ता के साथ निष्पादित किया जाता है।
यह गुणवत्ता फ़ाइल बनाने/डाउनलोड करने वाले एप्लिकेशन द्वारा सेट की जानी चाहिए।
हालांकि, सैंडबॉक्स में फ़ाइलें जो होती हैं, उनके द्वारा बनाई गई हर फ़ाइल के लिए यह गुणवत्ता सेट की जाएगी। और गैर सैंडबॉक्स ऐप्स इसे खुद सेट कर सकते हैं, या LSFileQuarantineEnabled कुंजी को Info.plist में निर्दिष्ट कर सकते हैं जिससे सिस्टम com.apple.quarantine
विस्तारित गुणवत्ता को फ़ाइलों पर सेट कर देगा।
इसकी स्थिति की जांच करना और सक्षम/अक्षम (रूट आवश्यक) किया जा सकता है:
आप निम्नलिखित के साथ यह भी पता लगा सकते हैं कि क्या किसी फ़ाइल में क्वारंटाइन विस्तारित विशेषता है:
विस्तारित गुणों की मान की जाँच करें और उस ऐप को खोजें जिसने quarantine गुण लिखा है:
वास्तव में एक प्रक्रिया "उस फ़ाइल पर क्वारंटाइन झंडे सेट कर सकती है जिसे वह बनाती है" (मैंने एक बनाई गई फ़ाइल में USER_APPROVED झंडा लगाने का प्रयास किया लेकिन यह लागू नहीं होता):
Last updated