
घटना प्रतिक्रिया फोरेंसिक फ्रेमवर्क

एक Elasticsearch बैकएंड पर अतुल्यकालिक फोरेंसिक डेटा प्रस्तुति के लिए कस्टम निर्मित एप्लिकेशन।
यह एप्लिकेशन Mandiant Redline 'collections' फ़ाइल को अंतर्ग्रहण करने और खोज/स्टैक और टैगिंग में लचीलापन प्रदान करने के लिए डिज़ाइन किया गया है।
यह एप्लिकेशन एक ही विंडो में कई जांचों (या सैकड़ों एंडपॉइंट्स) को नियंत्रित करने में असमर्थता से उत्पन्न हुआ है।
Redline ऑडिट को अंतर्ग्रहण करने के लिए, हमने nightHawkResponse बनाया, जो एक पूर्ण रूप से विकसित GOpher एप्लिकेशन है जो इस ढांचे के साथ आने के लिए डिज़ाइन किया गया है। एप्लिकेशन का स्रोत कोड इस रेपो में उपलब्ध है, एक बाइनरी संकलित की गई है और आईएसओ के अंदर चल रही है जो पहले बूट से अंतर्ग्रहण के लिए तैयार है।
हम वर्तमान में एक नया प्रमुख संस्करण विकसित कर रहे हैं और इसे मार्च 2020 तक जारी करेंगे। नए संस्करण का उद्देश्य निम्नलिखित को पूरा करना है।
हमने महसूस किया कि पूरे रेपो को प्रभावी ढंग से संचालित करने, संस्थाओं को आसानी से प्रबंधित करने और सब कुछ अद्यतित रखने के लिए बहुत अधिक चलने वाले भाग थे। हम यह भी मानते हैं कि Elastic में रहने वाले मुख्य डेटा का Kibana द्वारा अधिक प्रभावी ढंग से उपयोग किया जाना चाहिए और इसलिए हमने Kibana के अद्भुत कार्यप्रवाह के साथ एक प्लगइन विकसित करके इसे वास्तविकता बनाने का निर्णय लिया।
स्थापना
API दस्तावेज़ीकरण विकि में अनुसरण करेगा
01/09/2016: संस्करण 1.0.3
विशेषताएं:
वीडियो प्रदर्शन: nightHawk Response Platform
nightHawk के उपयोगकर्ताओं के लिए इसे सीधा बनाने के लिए, हमने सब कुछ तैयार के साथ एक ISO बनाया। इसका मतलब है कि आपको निम्नलिखित मिलता है;
/opt/nighthawk/etc/nightHawk.json फ़ाइल में पाई जा सकती है। सिस्टम शुरू करना:
आपूर्ति किए गए ISO के साथ अपना VM बनाने से पहले, निम्नलिखित पर विचार करें;
लंबित: Elastic सेवा को दोहरे नोड्स के रूप में सेट करें जिसमें प्रति नोड आवंटित सिस्टम मेमोरी का 1/4 होगा। इसका मतलब है कि यदि आप इसे 2GB RAM देते हैं, तो प्रत्येक ES नोड 512mb होगा और सिस्टम संचालित करने के लिए 1GB शेष रहेगा।
यदि आप इसे किसी भी अलग तरीके से सेट करना चाहते हैं, तो बॉक्स में ssh करें और अपने इच्छित तरीके से कॉन्फ़िगर करें।
कम से कम 20GB पर विचार किया जाना चाहिए। एक ऑडिट फ़ाइल बड़ी हो सकती है और इसलिए सलाह दी जाती है कि आप कई संग्रहों को अंतर्ग्रहण करने के लिए बहुत अधिक भंडारण आवंटित करें।
लंबित: बड़े पैमाने के उदाहरणों के लिए उपयोगकर्ता आधारित भंडारण सेटअप। यदि आप अतिरिक्त विभाजन सेट करना चाहते हैं, तो आप यह स्वयं कर सकते हैं, ES डेटा स्टोरेज को अपने नए विभाजन की ओर इंगित करने के लिए कुछ बदलाव किए जा सकते हैं।
स्थापना:
ISO डाउनलोड करें: nightHawk v1.0.3
हार्डवेयर कॉन्फ़िगर करें, ISO को VM में माउंट करें, स्थापना स्क्रिप्ट प्रारंभ करें।
पूरा होने पर, अपने ब्राउज़र (Chrome/FireFox) में, https://192.168.42.173 पर जाएं।
'nighthawk/nighthawk' से सिस्टम में लॉग इन करें - एप्लिकेशन में जाने के लिए "goto site" पर क्लिक करें
यदि आपको Kibana तक पहुँचने की आवश्यकता है, तो https://192.168.42.173:8443 पर जाएं।
यदि आपको बॉक्स में SSH करने की आवश्यकता है, तो लॉगिन विवरण admin/nightHawk हैं।
यदि आप IP पता बदलना चाहते हैं (एप्लिकेशन में व्यापक रूप से परिलक्षित); /opt/nighthawk/bin/nighthawkctl set-ip <new_ipaddress>
Redline ऑडिट संग्रह स्क्रिप्ट इस रेपो के रूट में पाई जा सकती है। स्टैंडअलोन redline कलेक्टर का उपयोग करते समय इसका उपयोग करें क्योंकि यह आपको nightHawk को सही ढंग से पॉप्युलेट करने के लिए आवश्यक दस्तावेज़ लौटाएगा।
अपलोड करना:
महत्वपूर्ण:
अपलोड करने के लिए ऑडिट ज़िप फ़ाइल बनाना (Redline स्टैंडअलोन कलेक्टर):
चरण_1: Sessions\AnalysisSessionX\Audits<ComputerName> पर जाएं जहां X विश्लेषण संख्या है जो अधिकांश मामलों में 1 है।
चरण_2: ऑडिट फ़ाइलों वाले फ़ोल्डर का ज़िप बनाएं उदा. 20160708085733
चरण_3: 20160708085733.zip अपलोड करें
महत्वपूर्ण: मौजूदा HX ऑडिट फ़ाइल का उपयोग करें (HX कलेक्टर): FireEye HX ऑडिट .mans में समाप्त होने वाले एक्सटेंशन हैं। HX से ऑडिट Redline कलेक्टर से भिन्न है क्योंकि यह जो .mans लौटाता है वह वास्तव में एक ज़िप फ़ाइल है। इसका मतलब है कि इसे Redline ऑडिट के विपरीत सीधे अपलोड किया जा सकता है जिसके लिए आपको ऊपर दिए गए निर्देशों का पालन करना होगा।
नेव बार पर "Upload" आइकन पर जाएं, एक ऑडिट .zip (या एकाधिक), एक केस नाम चुनें (अन्यथा सिस्टम आपको एक प्रदान करेगा) और सबमिट करें। यदि आपने अपने संग्रह को बनाने के लिए हमारी Redline ऑडिट स्क्रिप्ट का उपयोग किया है, तो ऊपर दिए गए "Redline Collector" निर्देशों का पालन करें।
एक बार संसाधित होने के बाद, एंडपॉइंट "Current Investigations" ट्री नोड में दिखाई देगा। एंडपॉइंट के अंतर्गत आपको उस एंडपॉइंट के लिए उपलब्ध सभी ऑडिट प्रकार प्रस्तुत किए जाएंगे। इस वेब ऐप की अपलोड सुविधा pOpen उपप्रक्रियाएं उत्पन्न करती है जो Redline ऑडिट को पार्स करने और डेटा को Elasticsearch में धकेलने के लिए GO एप्लिकेशन को कॉल करती हैं। अपलोड करने के लिए 2 विकल्प हैं, एक अनुक्रमिक है, दूसरा समवर्ती है।
कृपया ध्यान दें: समवर्ती अपलोड एक बार में 5 तक सीमित हैं और संसाधन गहन हो सकते हैं, यदि आपके पास कम शक्ति वाली मशीन है तो इस सुविधा के उपयोग को 2-3 तक सीमित करें।
टैगिंग:
आप डेटा को टैग करने के लिए किसी भी तालिका (प्रतिक्रिया दृश्य में) में किसी भी पंक्ति पर क्लिक कर सकते हैं। एक बार टैग होने के बाद आप टिप्पणियाँ दृश्य में टिप्पणियाँ देख सकते हैं।
Elasticsearch:
निम्नलिखित पर कस्टम मैपिंग (git रूट में आपूर्ति) और सलाहकार टिप्पणियाँ हैं;
दस्तावेज़ GO ऐप के माध्यम से parent/child संबंध के रूप में अनुक्रमित किए जाते हैं। इसे इसलिए चुना गया क्योंकि यह दस्तावेज़ देखने के लिए अपेक्षाकृत तार्किक पथ देने में सक्षम है, अर्थात् parent एंडपॉइंट नाम है और children ऑडिट प्रकार हैं। पैमाने पर parent/child संबंधी दस्तावेज़ पर समुच्चयन करना भी समझ में आता है। स्टैकिंग फ्रेमवर्क कुछ ऑडिट प्रकारों के लिए सभी child दस्तावेज़ समुच्चयन प्राप्त करने के लिए एक सरणी में parents बनाने पर निर्भर करता है।
Elasticsearch सेटअप में ट्यूनिंग और उचित डिज़ाइन पहचान की आवश्यकता होती है। शार्डिंग को समझना महत्वपूर्ण है क्योंकि हम parent/child दस्तावेज़ों को जिस तरह से जोड़ रहे हैं। Child हमेशा parent को रूट किया जाता है, यह अपने आप अस्तित्व में नहीं रह सकता। इसका मतलब है कि इंडेक्स पर कितने शार्ड निवासी हैं, इस पर विचार किया जाना चाहिए। हम जो समझते हैं, उसके अनुसार एक ऐसा सेटअप चुनना बुद्धिमानी हो सकती है जिसमें एकल शार्ड वाले कई नोड शामिल हों। इस प्रकार के सेटअप से प्रदर्शन प्राप्त करने के लिए हम शार्ड रूटेड खोजों पर काम कर रहे हैं।
हम वर्तमान में तेज़ खोज के लिए सर्वोत्तम संभव कॉन्फ़िगरेशन डिज़ाइन करने पर काम कर रहे हैं।
यह एप्लिकेशन अत्यधिक स्केल करने के लिए डिज़ाइन किया गया है। प्रारंभिक डिज़ाइन अवधारणा से, हम इसे 3 ES नोड्स (Macbook Pro) के साथ एक एकल CPU 2gb ubuntu VM पर लगभग 4 मिलियन+ दस्तावेज़ों (या 50 एंडपॉइंट अंतर्ग्रहण) के साथ सुचारू रूप से चलाने में सक्षम थे। यदि उत्पादन में जाते हैं, तो 64/128GB RAM और SAS स्टोरेज के साथ एक सेटअप चलाने पर, आप एक साथ कई विश्लेषकों के एप्लिकेशन पर काम करने के दौरान दस्तावेज़ पुनर्प्राप्ति पर बिजली की तेज़ प्रतिक्रिया समय बनाए रखने में सक्षम होंगे।
विचार:
DataTables मिश्रित प्रसंस्करण:
कई ऑडिट प्रकार अंतर्ग्रहण किए जाते हैं जो सभी दस्तावेज़ों को तालिका में वापस करने के लिए बहुत बड़े होते हैं। उदाहरण के लिए, URL इतिहास और रजिस्ट्री DOM में 15k दस्तावेज़ वापस कर सकते हैं, इसे रेंडर करने से क्लाइंट ब्राउज़र पर दबाव पड़ेगा। इसका मुकाबला करने के लिए, हम कुछ ऑडिट प्रकारों के परिणामों को पेज करने के लिए ServerSide प्रसंस्करण का उपयोग कर रहे हैं। इसका मतलब है कि आप बैकएंड में Elasticsearch का उपयोग करके ऑडिट प्रकार में दस्तावेज़ों पर खोज भी कर सकते हैं।
टैगिंग:
वर्तमान में हम दस्तावेज़ों को टैग कर सकते हैं और उन टिप्पणियों को देख सकते हैं। हम उन्हें अपडेट या बदल सकते हैं। विश्लेषक दस्तावेज़ को दिनांक/विश्लेषक नाम/टिप्पणी जैसे संदर्भ देने में सक्षम है।
निर्भरताएं (सभी पूर्व-स्थापित):
elasticsearch-dsl.py
django 1.8
python requests
करने के लिए:
प्रोसेस हैंडल (प्रगति पर)।
समय आधारित जनरेटर के लिए समय चयन स्लाइडर (प्रगति पर)।
वर्तमान/पिछली जांचों के लिए संदर्भ मेनू।
टैगिंग संदर्भ। टैगिंग सिस्टम विश्लेषक पैनलों में लाइव टिप्पणियों के लिए एक वेबसॉकेट लूप में एकीकृत होगा (प्रगति पर)।
एप्लिकेशन संदर्भ।
एंडपॉइंट्स को किसी भी संदर्भ के बीच स्थानांतरित करने की क्षमता।
संभावित रूप से नोड ट्री को जांच तिथि-संचालित होने के लिए पुनः डिज़ाइन करें।
चयनात्मक स्टैकिंग, वर्तमान में रूट नोड चयनकर्ता सक्षम है।
शार्ड रूटिंग खोजें।
Redline ऑडिट स्क्रिप्ट टेम्पलेट।
AngularJS के साथ अधिक व्यापक एकीकरण (प्रगति पर)।
उत्तरदायी डिज़ाइन। (प्रगति पर)।
कोर सेटिंग्स के कॉन्फ़िगरेशन के लिए प्रशासनिक नियंत्रण पृष्ठ (प्रगति पर)।
लेखक और नोट्स:
हम हमेशा समान विचारधारा वाले लोगों की तलाश में रहते हैं जो इस परियोजना में योगदान देना चाहते हैं, हम किसी भी तरह से वेब डिज़ाइन गुरु नहीं हैं, यदि आपको लगता है कि हम कुछ बेहतर कर सकते हैं तो कृपया एक पुल अनुरोध करें और यदि हमें यह पसंद आया, तो हम इसे मर्ज कर देंगे।
Daniel Eden & Roshan Maskey
श्रेय:
Mandiant Redline devs, AngularJS, Django devs, Angular-DataTables/DataTables, D3 (Bostock), Elasticsearch/ES-dsl.py, jsTree, qTip, GOlang, Python, Fahad Abdulaal (Logo/Video).
