
إطار معالجة برمجيات خبيثة موزع مبني على Python وRedis وS3.
إطار عمل موزّع لمعالجة البرمجيات الخبيثة مبني على Python و Redis و S3.
Karton هو إطار عمل قوي لإنشاء خلفيات تحليل البرمجيات الخبيثة المرنة والخفيفة. يمكن استخدامه لربط أنظمة تحليل البرمجيات الخبيثة* في خط أنابيب قوي بجهد ضئيل جدًا.
نحن نعمل في مجال الأتمتة منذ فترة طويلة. نتعامل مع تهديدات متزايدة، وعلينا أتمتة كل شيء لمواكبة الحوادث. ولهذا السبب، غالبًا ما ننتهي بالكثير من النصوص البرمجية الملصقة معًا بشريط لاصق بطة و WD-40. هذه النصوص البرمجية يكتبها المحللون في لحظة الحماس، هشة وقبيحة - لكنها تعمل، وتنتج معلومات استخباراتية يجب تخزينها ومعالجتها بشكل أكبر وإرسالها إلى أنظمة أخرى أو مشاركتها مع مؤسسات أخرى.
كنا بحاجة إلى طريقة لأخذ نصوصنا البرمجية الأولية وإدراجها بسهولة في خط أنابيب التحليل الخاص بنا. أردنا أيضًا مراقبة تنفيذها، ومركزة التسجيل، وتحسين المتانة، وتقليل جمود التطوير... لهذا الغرض تحديدًا، أنشأنا 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 في جوهره، والذي لا يتطلب وكيلًا على نظام التشغيل الضيف.
هكذا يمكن استخدام هذه الأنظمة لتشكيل خط أنابيب أساسي لتحليل البرمجيات الخبيثة:
خدمة Karton Framework معيارية تفكّ حزم الحزم الشائعة مثل UPX وغيرها باستخدام Qiling Framework.
أداة غنية بالميزات ومعيارية لاستخراج تكوين البرمجيات الخبيثة لـ MalDuck
مصنّف Detect-It-Easy لإطار عمل Karton
وحدة فكّ حزم RetDec لإطار عمل Karton
منصة تشابه البرمجيات الخبيثة مع مراعاة المعيارية.
خط أنابيب قابل للتوسع لتحليل ثغرات برامج تشغيل Windows.
