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