macOS System Extensions
Last updated
Last updated
AWS हैकिंग सीखें और प्रैक्टिस करें:HackTricks प्रशिक्षण AWS रेड टीम एक्सपर्ट (ARTE) GCP हैकिंग सीखें और प्रैक्टिस करें: HackTricks प्रशिक्षण GCP रेड टीम एक्सपर्ट (GRTE)
कर्नल एक्सटेंशन्स की तरह, सिस्टम एक्सटेंशन्स यूजर स्पेस में चलते हैं कर्नल स्पेस की बजाय, जिससे एक्सटेंशन के खराब होने से सिस्टम क्रैश का जोखिम कम होता है।
तीन प्रकार की सिस्टम एक्सटेंशन्स होती हैं: ड्राइवरकिट एक्सटेंशन्स, नेटवर्क एक्सटेंशन्स, और एंडपॉइंट सिक्योरिटी एक्सटेंशन्स।
ड्राइवरकिट कर्नल एक्सटेंशन्स की जगह है जो हार्डवेयर समर्थन प्रदान करता है। इसकी मदद से डिवाइस ड्राइवर्स (जैसे USB, सीरियल, NIC, और HID ड्राइवर्स) कर्नल स्पेस की बजाय यूजर स्पेस में चल सकते हैं। ड्राइवरकिट फ्रेमवर्क में कुछ I/O किट क्लासेस के यूजर स्पेस संस्करण शामिल हैं, और कर्नल सामान्य I/O किट इवेंट्स को यूजर स्पेस में फॉरवर्ड करता है, जिससे इन ड्राइवर्स को चलाने के लिए एक सुरक्षित वातावरण प्रदान किया जाता है।
नेटवर्क एक्सटेंशन्स नेटवर्क व्यवहारों को अनुकूलित करने की क्षमता प्रदान करते हैं। कई प्रकार के नेटवर्क एक्सटेंशन्स होते हैं:
ऐप प्रॉक्सी: इसका उपयोग एक वीपीएन क्लाइंट बनाने के लिए किया जाता है जो एक फ्लो-ओरिएंटेड, कस्टम वीपीएन प्रोटोकॉल को लागू करता है। इसका मतलब है कि यह कनेक्शन्स (या फ्लोज) के आधार पर नेटवर्क ट्रैफिक का संचालन करता है बजाय व्यक्तिगत पैकेट्स के।
पैकेट टनल: इसका उपयोग एक वीपीएन क्लाइंट बनाने के लिए किया जाता है जो एक पैकेट-ओरिएंटेड, कस्टम वीपीएन प्रोटोकॉल को लागू करता है। इसका मतलब है कि यह व्यक्तिगत पैकेट्स के आधार पर नेटवर्क ट्रैफिक का संचालन करता है।
फ़िल्टर डेटा: इसका उपयोग नेटवर्क "फ्लोज" को फ़िल्टर करने के लिए किया जाता है। यह नेटवर्क डेटा को फ्लो स्तर पर मॉनिटर या संशोधित कर सकता है।
फ़िल्टर पैकेट: इसका उपयोग व्यक्तिगत नेटवर्क पैकेट्स को फ़िल्टर करने के लिए किया जाता है। यह नेटवर्क डेटा को पैकेट स्तर पर मॉनिटर या संशोधित कर सकता है।
DNS प्रॉक्सी: इसका उपयोग एक कस्टम DNS प्रोवाइडर बनाने के लिए किया जाता है। इसका उपयोग DNS अनुरोधों और प्रतिक्रियाओं को मॉनिटर या संशोधित करने के लिए किया जा सकता है।
एंडपॉइंट सिक्योरिटी एक फ्रेमवर्क है जो Apple ने macOS में प्रदान किया है जो सिस्टम सुरक्षा के लिए एक सेट की एपीआई प्रदान करता है। इसका उद्देश्य है कि सुरक्षा विक्रेताओं और डेवलपर्स द्वारा उत्पादों का निगरानी और नियंत्रण करने के लिए उपयोग किया जाए।
यह फ्रेमवर्क सिस्टम गतिविधि को निगरानी और नियंत्रित करने के लिए एक संग्रहीत एपीआई प्रदान करता है, जैसे प्रोसेस एक्जीक्यूशन, फाइल सिस्टम इवेंट्स, नेटवर्क और कर्नल इवेंट्स।
इस फ्रेमवर्क का कोर कर्नल में लागू किया गया है, एक कर्नल एक्सटेंशन (KEXT) के रूप में, जो /System/Library/Extensions/EndpointSecurity.kext
पर स्थित है। यह KEXT कई मुख्य घटकों से मिलकर बना है:
EndpointSecurityDriver: यह कर्नल एक्सटेंशन के लिए "प्रवेश बिंदु" के रूप में काम करता है। यह ओएस और एंडपॉइंट सिक्योरिटी फ्रेमवर्क के बीच मुख्य बातचीत का माध्यम है।
EndpointSecurityEventManager: यह घटक कर्नल हुक्स को लागू करने के लिए जिम्मेदार है। कर्नल हुक्स फ्रेमवर्क को सिस्टम कॉल्स को अंटरसेप्ट करके सिस्टम इवेंट्स को मॉनिटर करने की अनुमति देते हैं।
EndpointSecurityClientManager: यह यूजर स्पेस क्लाइंट्स के साथ संचार का प्रबंधन करता है, जिसमें यह ट्रैक करता है कि कौन से क्लाइंट्स कनेक्ट हैं और इवेंट सूचनाएं प्राप्त करने की आवश्यकता है।
EndpointSecurityMessageManager: यह मैसेज और इवेंट सूचनाएं यूजर स्पेस क्लाइंट्स को भेजता है।
एंडपॉइंट सिक्योरिटी फ्रेमवर्क द्वारा मॉनिटर किए जा सकने वाले इवेंट्स निम्नलिखित श्रेणियों में वर्गीकृत होते हैं:
फाइल इवेंट्स
प्रोसेस इवेंट्स
सॉकेट इवेंट्स
कर्नल इवेंट्स (जैसे कर्नल एक्सटेंशन लोड/अनलोड या आई/ओ किट डिवाइस खोलना)
एंडपॉइंट सिक्योरिटी फ्रेमवर्क के साथ यूजर स्पेस संचार IOUserClient क्लास के माध्यम से होता है। दो विभिन्न सबक्लासेस का उपयोग किया जाता है, कॉलर के प्रकार के आधार पर:
इस बाईपास और संबंधित बाईपास के बारे में अधिक जानकारी के लिए टॉक देखें #OBTS v5.0: "The Achilles Heel of EndpointSecurity" - Fitzl Csaba
अंत में इसे ठीक कर दिया गया था नए अनुमति kTCCServiceEndpointSecurityClient
को सुरक्षा ऐप्लिकेशन को दिया गया था जिसे tccd
द्वारा प्रबंधित किया गया था ताकि tccutil
इसकी अनुमतियों को साफ न करें जिससे इसे चलने से रोका जा सके।