Introduction to Malware Analysis

The fundamentals and basic concepts of malware analysis and malware types.

الهجمات والحروب الإلكترونية في تزايد مستهدفة الحكومات، القطاعات العسكرية والعامة والخاصة. اغلب تلك الهجمات يتم فيها استخدام البرمجيات الخبيثة Malware للوصول للهدف من حصول على معلومات او بأغراض تخريبية، خلال عملية تحليل تلك البرمجيات يتطلب من المُحلل Analyst ان يمتلك المعرفة والمهارات والادوات المناسبة لفهم والتصدي لتلك الهجمات.

ما هي البرمجيات الخبيثة ؟

البرمجية الخبيثة او الـ Malware هو برنامج يتم برمجته واستخدامه في اغراض خبيثة وتتعدد صوره فيمكن ان يوجد علي شكل برنامج تنفيذي Executable او ملف نصي Script مع اختلاف وتشعب النوعين السابقين حسب لغة البرمجة المستخدمة او البيئة المستهدفة من المهاجم Attacker. ويمكن للمهاجم ان يستخدم البرمجيات الخبيثة لسرقة معلومات حساسة، التجسس على الأجهزة المصابة والسيطرة على الانظمة، كما يمكنه اعادة نشر نفسه عن طريق نقاط اتصال communication channels كالـ Emails او الـ USB devices، والـ Malware هو مصطلح واسع يشير إلى أنواع مختلفة من البرمجيات الخبيثة. وبسبب عمومية ذلك المصطلح يتم أثناء عملية التحليل تصنيف البرمجيات الخبيثة بناءً على وظائفها والطريقة التي تم بها تنفيذ الهجوم. فيما يلي أكثر انواع البرمجيات الخبيثة شيوعا:

ومن المهم ايضا استيعاب وقوع البرمجية الخبيثة في أكثر من تصنيف فكمثال يمكن للبرمجية الخبيثة ان تحتوي على خصائص الـ Worm في مسح الشبكة ومحاولة نشر نفسها مع امكانية اعطاء المهاجم Remote Access فور اصابتها لحاسوب الضحية تمكنه من تحميل او تشفير الملفات الخاصة بالضحية.

لماذا نقوم بتحليل البرمجيات الخبيثة ؟

تحليل البرمجيات الخبيثة هو دراسة لسلوك تلك البرمجيات. والهدف من تلك الدراسة هو فهم لطبيعتها يؤدي الي الحماية منها والقضاء على الخطر الذي تمثله للهدف المراد اصابته. ويتم استخدام الهندسة العكسية في تحليلها داخل بيئة امنة مما يؤدي في نهاية المطاف الي بناء وسائل أقوى وأحدث للحماية من الهجمات المستقبلية لتلك البرمجيات.

 

الطرق المختلفة لتحليل البرمجيات الخبيثة

لفهم البرمجيات الخبيثة وتأثيرها وما تحتويه من خصائص غالبا ما يتم استخدام طرق وادوات مختلفة. فيما يلي تصنيف تلك الطرق:

 

معمارية المختبر و اعداد البيئة المناسبة لتحليل البرمجيات الخبيثة

في عملية تحليل البرمجيات الخبيثة يتم غالبا استخدام بيئة او نظام وهمي Virtual machine مفصول عن النظام المضيف Host machine وغالبا ما يطلق عليه Sandbox ويكثر استخدامه لما توفره تقنية الـ virtualization من سهولة في استرجاع البيئة الوهمية لحالتها قبل تشغيل البرمجية الخبيثة وامكانية استخدام عدة انظمة تشغيل على نفس الـ Host machine وتصميم شبكة وهمية Virtual network لتسجيل والرد على محاولات البرمجية الخبيثة في الاتصال بالـ C2 server. ويسمي البرنامج المستخدم في إنشاء البيئة الوهمية Hypervisor، امثلة على الـ Hypervisors:

و تنقسم الـ Hypervisors الي نوعين هما:

 

Hv v2

مفاهيم عامة عن تقنية الـ virtualization

 

clone1

من ثم يمكنك ان تختار بين:

عند تنصيب الـ Hypervisor سيقوم بإنشاء كروت شبكة وهمية Virtual Network adapeters مثال في VMware سيتم إنشاء VMnet8 VMnet1 VMnet0

adapters

يمكنك من خلالها الاتصال بين الأنظمة الوهمية و بعضها و بين النظام المضيف او حتي الأنترنت بعد تحديد الأعدادات المناسبة للبيئة الوهمية، و تلك الاعدادات تتضمن:

 

اعداد المختبر

لتحميل Windows Virtual Machine مجانا يمكنك زيارة الرابط التالي : Download Windows VMs قم بختيار النسخة التي تريد بناء مختبرك عليها و قم بتحديد الـ Hypervisor المناسب لك و من ثمة قم بتنصيبه.

DownloadWin

او ان كنت تمتلك ملف ISO بالفعل قم بتنصيبه و اتبع الخطوات العادية للتنصيب في كلتي الحالتين. من ثم قم بتنصيب الأدوات و البرامج التالية:

او فقط قم بتنصيب Flare VM من هنا: Flare VM و هي ستتولي تحميل و تنصيب كل الأدوات اللازمة

وقم بأخذ Snapshot وعمل Clone للنظام الوهمي ليكون لديك مختبرين لتحليل البرمجيات الخبيثة، قم بتسمية أحدهم Lab Sandbox والأخر Code Analysis Box او اي اسم يعجبك ولن يكون هناك مشكلة ان لم تقم بفصل بيئة الـ Behavioral analysis عن بيئة الـ Code & Static Analysis ولكنه لمجرد التنظيم.

أثناء الـ Behavioral analysis للبرمجية الخبيثة يتم استخدام العديد من الأدوات لمراقبة سلوكها و تأثيرها علي النظام، و من ضمن تلك الادوات INetSim و FakeNet-NGالذين يقومون بنفس الوظيفة في محاكاة الخدمات الشبكية simulating network services للرد علي محاولات البرمجية الخبيثة في التواصل مع الـ C2 server ولكن يختلفون في ان INetSim يحتاج الي ان يتم تنصيبه في بيئة Linux من ثم تعديل إعدادات الشبكة يدويا في بيئة Windows لتمرر اي أتصال لـ Linux، بينما بستخدام FakeNet-NG يمكنك فقط تحميله في بيئة Windows ثم تشغليه بدون الحاجة للأتصال بنظام وهمي اخر او بالنظام المضيف. الشكل التالي يوضح الفرق بين INetSim و FakeNet-NG في التعامل مع البيئة الوهمية:

InetSim

FakeNg

 

بعد تنصيب الأدوات و أخذ Snapshot للحالة النظيفة للنظام الوهمي الذي سنستخدمه كـ Sandbox الشكل التالي يوضح الصورة العامة للبيئة التي تم انشائها:

BasicSandbox