
ESF मॉड्यूलर इंजेशन टूल विकास और अनुसंधान के लिए।
यह macOS वातावरण से EndpointSecurity Framework (ESF) इवेंट्स के मॉड्यूलर उपभोग के लिए तैयार किया गया एक टूल है। यह मौजूदा टूल्स के साथ सामने आई कई समस्याओं को दूर करने का मेरा प्रयास है, जिनमें साइलेंट डेटा ड्रॉपिंग, सख्त इवेंट टाइप उपभोग, वैकल्पिक डेटा इवेंट टाइप्स के लिए समर्थन की कमी और फाइल एक्सेस हैंडलर ओवरलोड जैसी चीजें शामिल हैं।
यह टूल क्रिस रॉस, ओमार्क-इकराम और Objective-See की टीम द्वारा उनके टूल्स ProcessMonitor, Appmon और EndpointSecurityDemo के लिए किए गए उत्कृष्ट कार्य पर heavily निर्भर करता है। ESF डेटा इन्जेशन की मेरी मूल समझ और प्रयोज्यता उनके कार्यों की जांच करने से काफी बढ़ी और शुरू हुई, जिन्होंने इस विकास को संभव बनाने के लिए अधिकांश भारी काम किया। इस टूल ने इन टूल्स के सर्वोत्तम तत्वों को निकालने और उनका विस्तार करने का प्रयास किया है ताकि जांचकर्ताओं की आवश्यकताओं के आधार पर केस-दर-केस ESF उपभोग क्रिया की अनुमति मिल सके।
मौजूदा टूल्स, जिनमें FireEye द्वारा Crescendo जैसे अधिक परिष्कृत टूल्स भी शामिल हैं, ESF से जुड़ी कई समस्याओं का शिकार होते हैं, जो परीक्षण में ESF क्लाइंट द्वारा सब-सिस्टम से डेटा इन्जेस्ट करने के तरीके से संबंधित प्रतीत होती हैं। प्राथमिक समस्या डेटा का साइलेंट नुकसान थी। परीक्षण में, जब कई इवेंट टाइप्स इन्जेस्ट किए गए, तो एकल इवेंट टाइप के इन्जेशन की तुलना में परिणामों से पता चला कि संचित डेटा में असमानता थी। परीक्षण में, दुर्भावनापूर्ण गतिविधि से संबंधित महत्वपूर्ण इवेंट्स उस अधिग्रहीत डेटा सेट में नहीं थे जो एकल इवेंट टाइप इन्जेशन में मौजूद थे।
इस टूल का प्राथमिक उद्देश्य 3 गुना था:
इस उद्देश्य के लिए, टूल उपयोगकर्ता को यह निर्दिष्ट करने की अनुमति देता है कि वे 51 उपलब्ध NOTIFY इवेंट टाइप्स में से कौन से इवेंट टाइप्स को संचालन के दौरान एकत्र करना चाहते हैं (AUTH इवेंट टाइप्स इस टूल के लिए छोड़ दिए गए थे)। इसका मतलब है कि शोधकर्ता उन विशिष्ट इवेंट टाइप्स को लक्षित कर सकते हैं जो उन विशिष्ट संचालनों से संबंधित हैं जिन्हें वे मॉनिटर करना चाहते हैं, साथ ही क्लाइंट द्वारा एकत्र किए गए समग्र इवेंट टाइप्स को कम करके संबंधित साइलेंट डेटा हानि को कम करने में मदद करते हैं।
डेटा आउटपुट को व्यक्तिगत इवेंट टाइप लॉग फाइलों में वितरित किया जाता है, जो बदले में प्रोसेस, फाइल, सॉकेट्स आदि जैसी इवेंट शैली फाइलों के अंतर्गत समूहीकृत होती हैं। सभी लॉग आसान इन्जेशन के लिए JSON में लिखे जाते हैं और उपयोगकर्ता Apple द्वारा प्रदान किए गए event_type दस्तावेज़ में उल्लिखित अतिरिक्त फ़ील्ड्स को एकत्र करने के लिए स्रोत कोड को बदलकर इनका विस्तार कर सकते हैं।
भविष्य के नोट्स -
साइलेंट डेटा हानि को रोकने के लिए एक संभावित समाधान टूल को मल्टी-थ्रेड करना होगा ताकि कई ESF क्लाइंट एक साथ चल सकें, प्रत्येक इवेंट टाइप्स का एक उपसमूह एकत्र कर सके। यह संभावित रूप से आंतरिक थ्रेशोल्ड तक पहुंचने की समस्या को दूर कर सकता है जो देखी गई डेटा हानि का कारण बनती है। मेरे पास इसके लिए अतिरिक्त नियंत्रण लागू करने का समय नहीं था।
कैसे उपयोग करें
SIP अक्षम होना आवश्यक है!
दुर्भाग्य से, चूंकि यह एक विकास POC कोड है, आप SIP सक्षम होने पर इसका उपयोग नहीं कर पाएंगे क्योंकि ESF सब-सिस्टम तक पहुंच हस्ताक्षरित बाइनरीज़ तक सीमित है। चूंकि यह अहस्ताक्षरित है, उपयोग के लिए SIP अक्षम होना चाहिए। इसलिए, इसे केवल गैर-उत्पादन मशीनों पर उपयोग करें।
निष्पादन के तीन प्रकार हैं: आप कॉन्फ़िगरेशन फ़ाइल से किसी event_id का ID निर्दिष्ट कर सकते हैं, कॉन्फ़िगरेशन फ़ाइल से कोई group_id निर्दिष्ट कर सकते हैं, या आप इवेंट टाइप ID या समूहों की पंक्तियों को अनकमेंट करके कॉन्फ़िगरेशन फ़ाइल का संदर्भ दे सकते हैं।
उदाहरण 1 = केवल ES_EVENT_TYPE_NOTIFY_EXEC इवेंट्स एकत्र करें: ./ESFang -id 2
उदाहरण 2 = फाइल शैली इवेंट्स एकत्र करें: ./ESFang -group 2
उदाहरण 3 = कॉन्फ़िग फ़ाइल द्वारा निर्दिष्ट इवेंट टाइप्स या समूह एकत्र करें: ./ESFang -config ./ESF_config.txt
हार्ड कोडेड फ़िल्टर पर नोट
स्रोत कोड के भीतर एक हार्ड कोडेड प्रोसेस फ़िल्टर है जो लाइन 460 - 469 पर पाया जाता है। इस फ़िल्टर को विशिष्ट PID, PPID या प्रोसेस नाम पर कैप्चर करने के लिए हेरफेर किया जा सकता है। इसे विशिष्ट फ़िल्टरिंग उद्देश्यों के लिए एक "हैकी" वर्कअराउंड के रूप में जोड़ा गया था। इसे कमांड लाइन पर डायनामिक बनाकर Inspector में फीड करने के प्रयास सभी विफल रहे। इसलिए इसे हार्ड कोडेड छोड़ दिया गया।
हार्ड कोडेड प्रोसेस म्यूटर पर नोट
स्रोत कोड के भीतर एक हार्ड कोडेड प्रोसेस म्यूटिंग क्षमता है जो लाइन 471 - 491 पर पाई जाती है। इस फ़िल्टर का उपयोग क्रमशः प्रोसेस या पैरेंट प्रोसेस पथ के आधार पर विशिष्ट इवेंट्स के कैप्चर को म्यूट करने के लिए किया जा सकता है। इसका उपयोग सावधानी से किया जाना चाहिए क्योंकि निर्दिष्ट नाम से मेल खाने वाली सभी प्रक्रियाएं म्यूट हो जाएंगी यदि वे किसी भी गतिविधि की प्रोसेस या पैरेंट हैं। यह रिलीज़ के समय बीटा-परीक्षण में था।