
إطار عمل معياري لجمع وتحليل القطع الأثرية لتحليل البرامج الضارة وربطها ببعضها
Subparse، هو إطار عمل معياري طوره Josh Strochein وAaron Baker وOdin Bernstein. صمم الإطار لتحليل وفهرسة ملفات البرامج الضارة وعرض المعلومات المكتشفة أثناء التحليل في عارض ويب قابل للبحث. الإطار معياري، ويستخدم محرك تحليل أساسي، ووحدات تحليل، ومجموعة من وحدات الإثراء التي تضيف معلومات إضافية إلى فهارس البرامج الضارة. القيم الرئيسية المدخلة للإطار هي أدلة ملفات البرامج الضارة، والتي يقوم محرك التحليل الأساسي أو محرك تحليل يحدده المستخدم بتحليلها قبل إضافة معلومات إضافية من أي محرك إثراء يحدده المستخدم، ثم فهرسة المعلومات المحللة في فهرس Elasticsearch. يمكن بعد ذلك البحث في المعلومات التي تم جمعها وعرضها عبر عارض ويب، والذي يسمح أيضًا بالتصفية لأي قيمة تم جمعها من أي ملف. يوجد حاليًا 3 محركات تحليل، محركات التحليل الافتراضية (PEParser وOLEParser وELFParser)، ومحركي إثراء (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 قد تسبب عدم توفر الموقع.
قبل تنفيذ أي محلل، يتم جمع معلومات عامة حول العينة بغض النظر عن نوع الملف الأساسي. تتضمن هذه المعلومات:
يتم تنفيذ المحللات فقط على العينات التي تطابق نوع الملف. على سبيل المثال، سيتم افتراضيًا تنفيذ PEParser على ملفات PE بسبب تطابق نوع الملف مع تلك التي يمكن لـ PEParser فحصها.
هذه الوحدات اختيارية ولن يتم تنفيذها إلا إذا تم تحديدها عبر العلامة -e | --enrichers في سطر الأوامر.
تم بناء عرض الويب لـ Subparse باستخدام Bootstrap لـ CSS الخاص به، مما يسمح باستخدام أي Bootstrap CSS مدمج عند تطوير ملفات Vue.js المخصصة لوحدة التحليل/الإثراء الخاصة بك. لقد قدمنا أيضًا مثالًا لكل منها للمساعدة في البدء ونفذنا أيضًا بعض الأدوات المخصصة لتسهيل عملية التطوير وتعزيز التوحيد القياسي في طريقة عرض المعلومات. تُستخدم جميع ملفات Vue.js لعرض المعلومات ديناميكيًا من وحدة التحليل/الإثراء المخصصة وتُستخدم كقوالب للبيانات.
ملاحظة: يجب الالتزام الصارم باتفاقيات التسمية لكل من أسماء الفئات والملفات، وهذا هو أول شيء يجب التحقق منه إذا واجهت مشاكل في عدم تنفيذ وحدة التحليل/الإثراء المخصصة الخاصة بك. يجب أن تستخدم اتفاقية التسمية لوحدة التحليل/الإثراء الخاصة بك نفس الاسم عبر جميع الملفات وأسماء الفئات.
كائن السجل (logger) هو تطبيق فردي (singleton) لمسجل 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 أثناء المعالجة |