
मैलवेयर/IOC अंतर्ग्रहण और प्रसंस्करण इंजन
_ ___ _
/\/\ __ _| | / _ (_)_ __ ___
/ \ / _` | |/ /_)/ | '_ \ / _ \
/ /\/\ \ (_| | / ___/| | |_) | __/
\/ \/\__,_|_\/ |_| .__/ \___|
|_|
MalPipe एक मॉड्यूलर मैलवेयर (और संकेतक) संग्रह और प्रसंस्करण ढांचा है। इसे कई फीड्स से मैलवेयर, डोमेन, यूआरएल और आईपी पते खींचने, एकत्रित डेटा को समृद्ध करने और परिणामों को निर्यात करने के लिए डिज़ाइन किया गया है।
इस समय, निम्नलिखित फीड्स समर्थित हैं:
ये निर्देश आपको विकास और परीक्षण उद्देश्यों के लिए अपनी स्थानीय मशीन पर प्रोजेक्ट की एक प्रति प्राप्त करने और चलाने में मदद करेंगे। लाइव सिस्टम पर प्रोजेक्ट को तैनात करने के नोट्स के लिए तैनाती देखें।
MalPipe की तैनाती के लिए आवश्यक पायथन लाइब्रेरीज़ को स्थापित करना और विभिन्न मॉड्यूल को कॉन्फ़िगर करना आवश्यक है।
पायथन निर्भरताएँ चलाकर स्थापित की जा सकती हैं:
pip install -r requirements.txt
एक उदाहरण कॉन्फ़िगरेशन config_example.json में शुरू करने के लिए सेटिंग्स के साथ प्रदान किया गया है। इस फ़ाइल में एक JSON ऑब्जेक्ट है जिसमें प्रत्येक फीड / प्रोसेसर / एक्सपोर्टर के लिए आवश्यक सेटिंग्स हैं। फीड की सेटिंग्स का विवरण नीचे दिखाया गया है:
...
"feeds": {
...
"MalShare": {
"ENABLED" : true,
"API_KEY" : "00000000000000000000000000000000000000000000000000000000000",
"EXPORTERS" : ["DetailsPrinter", "JSONLog"],
"PROCESSORS" : ["YaraScan", "DNSResolver"]
},
...
चूंकि कुछ फीड्स रोजाना अपडेट होती हैं, फीड्स दो रूपों में हो सकती हैं: निर्धारित और सक्रिय। ये कब चलेंगी, इसकी सेटिंग्स अलग-अलग मॉड्यूल में कॉन्फ़िगरेशन के बाहर परिभाषित की गई हैं।
प्रोसेसर एकत्रित डेटा को समृद्ध / मानकीकृत करने के लिए उपयोग किए जाते हैं। उदाहरण के लिए, VirusTotal से डेटा में प्रत्येक फ़ाइल के लिए यारा परिणाम होते हैं, जबकि MalShare में नहीं होते। PROCESSORS कुंजी में YaraScan जोड़कर, आप फ़ाइलों को स्कैन कर सकते हैं ताकि यह डेटा भी शामिल हो सके।
मॉड्यूल सेटिंग्स का एक उदाहरण नीचे दिया गया है:
...
"processors": {
...
"YaraScan": {
"ENABLED" : false,
"RULES_PATH": "/yara_rules/Malware.yara"
},
...
वर्तमान में, निम्नलिखित प्रोसेसर लागू किए गए हैं:
ASNLookupDNSResolverFileTypeRDNSYaraScanअंतिम घटक एक्सपोर्टर हैं, ये नियंत्रित करते हैं कि डेटा कहाँ जाता है। इनका उपयोग एकत्रित डेटा को मैलवेयर रिपॉजिटरी, SIEM, JSON लॉग फ़ाइलों या उपयोगकर्ता के लिए प्रिंट करने के लिए किया जा सकता है।
...
"exporters": {
...
"JSONLog": {
"ENABLED" : true,
"PRETTY" : true,
"LOG_PATH": "./temp/"
},
...
वर्तमान में, निम्नलिखित एक्सपोर्टर लागू किए गए हैं:
DetailsPrinterGenericWebStorageJSONLogLocalFileStorageसेटअप के बाद, MalPipe का उपयोग करके चलाया जा सकता है:
python malpipe.py
MalPipe के मॉड्यूल malpipe/ के अंतर्गत प्रकार के अनुसार स्थित हैं:
नए मॉड्यूल बनाना आसान है,
MalPipe मॉड्यूल पायथन क्लासेज़ के रूप में परिभाषित हैं। निम्नलिखित एक उदाहरण मॉड्यूल हेडर है
class ModuleName(Processor):
def __init__(self):
md = ProcessorDescription(
module_name="ModuleName",
description="Description",
authors=["Author Name"],
version="VersionNumber"
)
Processor.__init__(self, md)
self.types = ['ipaddresses']
self.parse_settings()
सेटिंग्स कॉन्फ़िगरेशन को आयात करके और क्लास वेरिएबल्स पर सेट करके सेट की जा सकती हैं, जैसा नीचे दिखाया गया है:
from malpipe.config import CONFIG
...
self.yara_rule_path = CONFIG['processors'][self.get_module_name()]['RULES_PATH']
प्रत्येक प्रोसेसर के लिए एक run फ़ंक्शन होना आवश्यक है जिसे फीड द्वारा कॉल किया जाता है।
मॉड्यूल बनाने के बाद, सेटिंग्स को config.json में processors, feeds, या exporters कुंजी के अंतर्गत जोड़ा जाना चाहिए। यदि नया मॉड्यूल एक प्रोसेसर या एक्सपोर्टर है, तो इसे संबंधित फीड्स में भी जोड़ना होगा। एक उदाहरण नीचे दिखाया गया है:
...
"processors": {
...
"SuperNewModule": {
"ENABLED" : true,
"DOCOOLSTUFF": true
},
...
"feeds": {
...
"0DayMalwareFeed": {
"ENABLED" : true,
"EXPORTERS" : ["DetailsPrinter", "JSONLog"],
"PROCESSORS" : ["SuperNewModule"]
}
...
कृपया कोई समस्या उत्पन्न करके या पुल रिक्वेस्ट शुरू करके किसी भी समस्या की रिपोर्ट करें। यदि आपके पास अतिरिक्त मॉड्यूल या सुविधाएँ हैं जिन्हें आप देखना चाहते हैं, तो कृपया एक मुद्दा खोलने पर विचार करें।
इस परियोजना में भाग लेने वाले योगदानकर्ताओं की सूची भी देखें।
यह परियोजना GNU जनरल पब्लिक लाइसेंस v3.0 के अंतर्गत लाइसेंस प्राप्त है - विवरण के लिए LICENSE.md फ़ाइल देखें।