
मॉड्यूलर मैलवेयर विश्लेषण कलाकृति संग्रह और सहसंबंध ढांचा
Subparse, एक मॉड्यूलर फ्रेमवर्क है जिसे जॉश स्ट्रोचिन, आरोन बेकर और ओडिन बर्नस्टीन द्वारा विकसित किया गया है। यह फ्रेमवर्क मैलवेयर फ़ाइलों को पार्स और इंडेक्स करने तथा पार्सिंग के दौरान प्राप्त जानकारी को खोजने योग्य वेब-व्यूअर में प्रस्तुत करने के लिए डिज़ाइन किया गया है। फ्रेमवर्क मॉड्यूलर है, जो एक कोर पार्सिंग इंजन, पार्सिंग मॉड्यूल और विभिन्न एनरिचर्स का उपयोग करता है जो मैलवेयर इंडेक्स में अतिरिक्त जानकारी जोड़ते हैं। फ्रेमवर्क के लिए मुख्य इनपुट मान मैलवेयर फ़ाइलों की निर्देशिकाएँ हैं, जिन्हें कोर पार्सिंग इंजन या उपयोगकर्ता-निर्दिष्ट पार्सिंग इंजन पार्स करता है, इससे पहले कि किसी भी उपयोगकर्ता-निर्दिष्ट एनरिचमेंट इंजन से अतिरिक्त जानकारी जोड़ी जाए, और फिर पार्स की गई जानकारी को एक elasticsearch इंडेक्स में इंडेक्स किया जाता है। एकत्रित जानकारी को खोजा और वेब-व्यूअर के माध्यम से देखा जा सकता है, जो किसी भी फ़ाइल से प्राप्त किसी भी मान पर फ़िल्टरिंग की अनुमति भी देता है। वर्तमान में 3 पार्सिंग इंजन हैं: डिफ़ॉल्ट पार्सिंग इंजन (PEParser, OLEParser और ELFParser), और 2 एनरिचमेंट इंजन (ABUSEEnricher और CAPEEnricher)।
Subparse का उपयोग शुरू करने के लिए, हमारे सॉफ्टवेयर के साथ काम करने से पहले कुछ आवश्यक/अनुशंसित प्रोग्रामों को स्थापित और सेटअप करने की आवश्यकता है।
| सॉफ्टवेयर | स्थिति | लिंक |
|---|
अपने सिस्टम पर आवश्यक/अनुशंसित सॉफ्टवेयर स्थापित करने के बाद, Subparse को स्थापित करने के लिए कुछ अन्य कदम उठाने होंगे।
sudo get apt install build-essential pip3 install -r ./requirements.txt
docker-compose up
नोट: Subparse द्वारा आवश्यक कंटेनरों को डाउनलोड करने और सेट अप करने में थोड़ा समय लग सकता है।
subparse/parser/subparse.py के लिए उपलब्ध कमांड लाइन विकल्प:
Subparse के पार्सरों से परिणाम देखने के लिए, localhost:8080 पर जाएँ। यदि आपको साइट देखने में परेशानी हो रही है, तो सुनिश्चित करें कि आपने Docker में कंटेनर शुरू किया है और पोर्ट 8080 पर कोई अन्य प्रक्रिया नहीं चल रही है जो साइट को अनुपलब्ध कर सकती है।
किसी भी पार्सर को निष्पादित करने से पहले, अंतर्निहित फ़ाइल प्रकार की परवाह किए बिना, सैंपल के बारे में सामान्य जानकारी एकत्रित की जाती है। इस जानकारी में शामिल हैं:
पार्सर केवल उन सैंपलों पर निष्पादित किए जाते हैं जो फ़ाइल प्रकार से मेल खाते हैं। उदाहरण के लिए, PE फ़ाइलों पर डिफ़ॉल्ट रूप से PEParser निष्पादित किया जाएगा क्योंकि फ़ाइल प्रकार उनसे मेल खाता है जिनकी PEParser जाँच कर सकता है।
ये वैकल्पिक मॉड्यूल हैं जो केवल तभी निष्पादित होंगे यदि कमांड लाइन पर -e | --enrichers फ़्लैग के माध्यम से निर्दिष्ट किए गए हों।
Subparse का वेब व्यू Bootstrap का उपयोग करके बनाया गया था, यह आपको अपने स्वयं के कस्टम पार्सर/एनरिचर Vue.js फ़ाइलों को विकसित करते समय किसी भी निर्मित Bootstrap CSS का उपयोग करने की अनुमति देता है। हमने शुरू करने में मदद के लिए प्रत्येक के लिए एक उदाहरण भी प्रदान किया है और विकास की प्रक्रिया को आसान बनाने और जानकारी प्रदर्शित करने के तरीके में मानकीकरण को बढ़ावा देने के लिए कुछ कस्टम विजेट भी लागू किए हैं। सभी Vue.js फ़ाइलों का उपयोग कस्टम पार्सर/एनरिचर से जानकारी को गतिशील रूप से प्रदर्शित करने के लिए किया जाता है और डेटा के लिए टेम्पलेट के रूप में उपयोग किया जाता है।
नोट: क्लास और फ़ाइल नाम दोनों के साथ नामकरण परंपराओं का सख्ती से पालन किया जाना चाहिए, यदि आपको अपने कस्टम पार्सर/एनरिचर को निष्पादित करने में समस्या आती है तो यह पहली चीज़ है जिसकी जाँच की जानी चाहिए। आपके पार्सर/एनरिचर का नामकरण सम्मेलन सभी फ़ाइलों और क्लास नामों में समान नाम का उपयोग करना चाहिए।
लॉगर ऑब्जेक्ट डिफ़ॉल्ट Python लॉगर का एक सिंगलटन कार्यान्वयन है। गहन उपयोग के लिए कृपया आधिकारिक दस्तावेज़ देखें। Subparse के लिए हम केवल आउटपुट के लिए लॉगिंग स्तरों का उपयोग करने की अनुशंसा करते हैं। ये हैं:
| Docker | आवश्यक | इंस्टॉलेशन गाइड |
| Python3.8.1 | आवश्यक | इंस्टॉलेशन गाइड |
| Pyenv | अनुशंसित | इंस्टॉलेशन गाइड |
| आर्गुमेंट | विकल्प | आवश्यक | विवरण |
|---|
| -h | --help | नहीं | सहायता मेनू दिखाता है |
| -d SAMPLES_DIR | --directory SAMPLES_DIR | हाँ | पार्स करने के लिए सैंपलों की निर्देशिका |
| -e ENRICHER_MODULES | --enrichers ENRICHER_MODULES | नहीं | अतिरिक्त पार्सिंग के लिए उपयोग किए जाने वाले एनरिचर मॉड्यूल |
| -r | --reset | नहीं | कॉन्फ़िगर किए गए Elasticsearch क्लस्टर में सभी डेटा रीसेट/हटाएँ |
| -v | --verbose | नहीं | विस्तृत कमांडलाइन आउटपुट दिखाएँ |
| -s | --service-mode | नहीं | सेवा मोड में प्रवेश करता है जो प्रोसेसिंग के दौरान SAMPLES_DIR में और सैंपल जोड़ने की अनुमति देता है |