
Python, Redis और S3 पर आधारित वितरित मैलवेयर प्रसंस्करण ढांचा।
Python, Redis और S3 पर आधारित वितरित मैलवेयर प्रसंस्करण ढांचा।
Karton एक मजबूत ढांचा है जो लचीले और हल्के मैलवेयर विश्लेषण बैकएंड बनाने के लिए है। इसका उपयोग बहुत कम प्रयास में मैलवेयर* विश्लेषण प्रणालियों को एक मजबूत पाइपलाइन से जोड़ने के लिए किया जा सकता है।
हम लंबे समय से स्वचालन व्यवसाय में हैं। हम अधिक से अधिक खतरों से निपट रहे हैं, और घटनाओं के साथ बने रहने के लिए हमें सब कुछ स्वचालित करना होगा। इस वजह से, हम अक्सर कई स्क्रिप्ट्स को डक डक्ट टेप और WD-40 से जोड़ देते हैं। ये स्क्रिप्ट्स विश्लेषकों द्वारा मौके पर लिखी जाती हैं, नाजुक और बदसूरत - लेकिन वे काम करती हैं, और ऐसी खुफिया जानकारी उत्पन्न करती हैं जिसे संग्रहीत, आगे संसाधित, अन्य प्रणालियों को भेजा या अन्य संगठनों के साथ साझा किया जाना चाहिए।
हमें अपनी PoC स्क्रिप्ट को लेने और उन्हें आसानी से अपनी विश्लेषण पाइपलाइन में सम्मिलित करने का एक तरीका चाहिए था। हम उनके निष्पादन की निगरानी करना, लॉगिंग को केंद्रीकृत करना, मजबूती में सुधार करना, विकास जड़ता को कम करना भी चाहते थे... इसी उद्देश्य के लिए, हमने Karton बनाया।
* जबकि Karton को मैलवेयर विश्लेषण को ध्यान में रखकर डिज़ाइन किया गया था, यह हर माइक्रोसर्विस-उन्मुख परियोजना में अच्छी तरह से काम करता है।
स्थापना एक एकल pip install कमांड जितनी आसान है:
pip3 install karton-core
संपूर्ण बैकएंड वातावरण स्थापित करने के लिए आपको S3-संगत स्टोरेज और Redis की भी आवश्यकता होगी, विवरण के लिए दस्तावेज़ देखें।
Karton का उपयोग करने के लिए आपको एक क्लास प्रदान करनी होगी जो Karton से विरासत प्राप्त करती है।
from karton.core import Karton, Task, Resource
class GenericUnpacker(Karton):
"""
Performs sample unpacking
"""
identity = "karton.generic-unpacker"
filters = [
{
"type": "sample",
"kind": "runnable",
"platform": "win32"
}
]
def process(self, task: Task) -> None:
# Get sample object
packed_sample = task.get_resource('sample')
# Log with self.log
self.log.info(f"Hi {packed_sample.name}, let me analyze you!")
...
# Send our results for further processing or reporting
task = Task(
{
"type": "sample",
"kind": "raw"
}, payload = {
"parent": packed_sample,
"sample": Resource(filename, unpacked)
})
self.send_task(task)
if __name__ == "__main__":
GenericUnpacker.main()
यह पैकेज "karton" नामक एक कमांड-लाइन उपयोगिता भी प्रदान करता है। आप इसका उपयोग सरल प्रबंधन कार्यों के लिए कर सकते हैं (लेकिन यह पूरी तरह से सक्षम प्रबंधन उपकरण के रूप में डिज़ाइन नहीं किया गया है)।
$ karton configure # create a new configuration file
$ karton list -s # list current binds
karton name version karton
------------------------------------------------------------------------
karton.yaramatcher 1.2.0 5.3.0
karton.autoit-ripper 1.2.1 5.3.3
karton.mwdb-reporter 1.3.0 5.3.2
$ karton logs # start streaming all system logs
$ karton delete karton.something # remove unused bind (will be GCed by system during the next operation)
कुछ Karton सिस्टम सार्वभौमिक हैं और सभी के लिए उपयोगी हैं। हमने उन्हें समुदाय के साथ साझा करने का निर्णय लिया।
यह रिपॉजिटरी। इसमें karton.system सेवा शामिल है - मुख्य सेवा, जो सिस्टम के भीतर कार्यों को वितरित करने के लिए जिम्मेदार है। इसमें karton.core मॉड्यूल भी शामिल है, जिसे अन्य सिस्टम द्वारा लाइब्रेरी के रूप में उपयोग किया जाता है।
कार्य और कतार प्रबंधन और निगरानी के लिए एक छोटा Flask डैशबोर्ड।
"राउटर"। यह नमूनों/फ़ाइलों को पहचानता है और फ़ाइल प्रारूप के आधार पर विभिन्न कार्य प्रकार उत्पन्न करता है। इसके लिए धन्यवाद, अन्य सिस्टम केवल एक विशिष्ट प्रारूप (उदाहरण के लिए, केवल zip आर्काइव) के कार्यों को सुन सकते हैं।
सामान्य आर्काइव अनपैकर। सिस्टम में अपलोड किए गए आर्काइव निकाले जाएंगे, और प्रत्येक फ़ाइल को अलग-अलग संसाधित किया जाएगा।
मैलवेयर निकालने वाला। यह मैलवेयर नमूनों और विश्लेषणों से स्थिर कॉन्फ़िगरेशन निकालने के लिए Yara नियमों और Python मॉड्यूल का उपयोग करता है। यह एक मछली पकड़ने की छड़ी है, मछली नहीं - हम मॉड्यूल स्वयं साझा नहीं करते। लेकिन अपना खुद का लिखना आसान है!
पाइपलाइन का एक बहुत महत्वपूर्ण हिस्सा। रिपोर्टर विश्लेषण के दौरान उत्पन्न सभी फ़ाइलों, टैग, टिप्पणियों और अन्य खुफिया जानकारी को MWDB में सबमिट करता है। यदि आप अभी तक MWDB का उपयोग नहीं करते हैं या अन्य बैकएंड पसंद करते हैं, तो अपना खुद का रिपोर्टर लिखना आसान है।
स्वचालित रूप से पाइपलाइन में सभी फ़ाइलों पर Yara नियम चलाता है, और नमूनों को उचित रूप से टैग करता है। नियम शामिल नहीं हैं ;)|.
Karton सिस्टम जो सामान्य तरीकों जैसे hex, base64 आदि से एन्कोडेड फ़ाइलों को डिकोड करता है। (आप विश्वास नहीं करेंगे कि यह कितना सामान्य है)।
AutoIt-Ripper के चारों ओर एक छोटा रैपर जो संकलित AutoIt निष्पादन योग्य से एम्बेडेड AutoIt स्क्रिप्ट और संसाधनों को निकालता है।
DRAKVUF इंजन के तहत स्वचालित ब्लैक-बॉक्स मैलवेयर विश्लेषण प्रणाली, जिसे गेस्ट OS पर एजेंट की आवश्यकता नहीं है।
यह है कि इन प्रणालियों का उपयोग एक बुनियादी मैलवेयर विश्लेषण पाइपलाइन बनाने के लिए कैसे किया जा सकता है:
एक मॉड्यूलर Karton Framework सेवा जो Qiling Framework का उपयोग करके UPX जैसे सामान्य पैकर्स को अनपैक करती है।
MalDuck के लिए एक फीचर-रिच मॉड्यूलर मैलवेयर कॉन्फ़िगरेशन निष्कर्षण उपयोगिता
Karton ढांचे के लिए Detect-It-Easy क्लासिफायर
Karton ढांचे के लिए RetDec अनपैकर मॉड्यूल
मॉड्यूलरिटी को ध्यान में रखते हुए मैलवेयर समानता मंच।
एक स्केलेबल विंडोज ड्राइवर भेद्यता विश्लेषक पाइपलाइन।
