هل تبحث عن شيئ معين في المدونة ؟ اكتب الجملة أو الكلمة التي تريد البحث عنها، واضغط Enter
اضف تعليق

اكتب عن أمن المعلومات والتحقيق الجنائي الرقمي | مدونة شخصية

كيف تتم عملية تحليل الفيروسات

في هذا التدوينة سوف القي نظرة على عملية تحليل البرمجيات الخبيثة وسوف استخدم مصطلح فايروس واقصد به اي برنامج خبيث بكافة انواعها . بشكل عام يتم تصنيف عملية تحليل الفيروسات الى نوعين الاول Static analysis والنوع الثاني Dynamic analysis . كلا النوعين لهم اهمية لفهم الفايروس وتتبعة وكذلك ايجاد الحل المناسب للدمار الذي يسببه .

سوف ابدأ التدوينة باعطاء لمحة سريعة عن الفرق بين الـ static analysis و الـ Dynamic analysis

كل التقنيات والادوات التي تستخدم اثناء عمل static analysis تهتم ببنية الفيروس  وتحلل الكود وطريقة برمجة الفايروس دون تشغيله . يتم أستخدام ادوات معينة (سوف نتطرق لها لاحقا في هذا المقال) لتحليل الكود الخاص بالفيروس واي معلومات تتعلق ببنية الفايروس . المعلومات تختلف على حسب نوع الفايروس فعلى سبيل المثال اذا كان الفايروس مكتوب بلغة البرمجة C سوف نحلل Assembly كود الناتج من الملف التنفيذي  وندرسه بشكل معمق .

بالنسبة لـ Dynamic analysis كل ما يهمنا هو سلوك الفيروس والتغييرات التي يحدثها , لا يهمنا كيف تمت برمجته او كيف يقوم الكود بعمل التغييرات او الدمار . الأدوات تراقب سلوك البرنامج ومتابعة كل التغيرات التي تحصل بسبب الفايروس ويتم تسجيلها ومتابعتها . سلوك البرنامج يقصد به مثلا الملفات التي يغيرها , اتصاله بالانترنت والمعلومات التي ترسل , اسماء الدوال التي يستدعيها من نظام التشغيل .. الخ . لن نقوم بدراسة الكود الخاص بالفايروس في هذا النوع من التحليل . قد يكون خطراً جدا ان تقوم بتشغيل ملف خبيث لذلك توخى الحذر وقم بالعمل في معمل منفصل عن طريق استخدام virtualbox او ماشابه .

النوع الاول Static analysis

اذا كان لدي فيروس واريد ان اقوم بتحليله ماذا يمكنني استخراج من معلومات وماذا يمكنني عملة اذا اردت ان اقوم بعمل Static analysis . تذكر ان هذا النوع من التحليل لا نقوم فيه بتشغيل الملف ابدا وانما تحليله من الداخل وتشريح اجزاءه .

فحص الملف ببرامج الحماية

اول خطوة بالطبع هو محاولة فحص الفيروس باستخدام برامج الحماية , قد ربما شركات الحماية اكتشفت الملف من قبل , لا نستطيع استخدام كل البرامج الموجوده ولكن يمكن ان نستخدم موقع virustotal الموقع يوفر لك امكانية فحص اي ملف بكل برامج الحماية الموجوده . في وقت كتابة هذه التدوينه هناك 56 برنامج حماية يستخدمها الموقع للفحص.

استخراج الهاش الخاص بالفيروس

الهاش عباره عن توقيع خاص بالملف يتم احتسابه باستخدام خوارزميات رياضية تقوم ببعض العمليات الحسابيه اعتمادا على معلومات الملف . هاش اي ملف لا يمكن ابدا ان يتكرر مع اي ملف اخر موجود في العالم , هذا يعني اذا لديك هاش لملف معين لن يتكرر نفس الهاش لملف اخر . اذا استخرجت توقيع ملف معين وقمت بتغيير حرف واحد في الملف سوف يتغير الهاش ايضا . خطوة مهمه يجب على المحلل ان يقوم بها و هي استخرج الهاش الخاص بالملف . الهاش سوف يساعد كثيرا اثناء البحث على الانترنت على الملف كذلك في حالة ارد ان تشارك الهاش مع محللين اخرين سوف تعطيهم الهاش وسوف يتعرفون اذا الملف معروف لديهم او لا . هناك فوائد كثيره من استخراج الهاش الخاص بالملف لذلك قم يأستخراج الهاش عن طريق اداة md4sum وضعه جانبا . الهاشات كثيره انواعها لذلك انصحك ان تجري بحث صغير عن  Cryptographic hash function وتعرف على الاختلافات بينهم . ايضا الهاش يمكنك في البحث عن الملف في قواعد البيانات الضخمه التي تحتوي على معلومات ملفات خبيثه او ملفات معروفه مثل National Software Reference Library .

استخراج النصوص

اول خطوة نقوم بها وهي استخراج النصوص المخزنة داخل الملف التنفيذي . افترض ان لديك كود لبرنامج بلغة السي وهناك بعض العبارات في دالة printf  او عبارات في array of characters . يمكن ان تستخرج اي نص موجود داخل الملف التنفيذي .

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

فحص اذا تم عمل obfuscation او ضغط للكود

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

استخراج الدوال المتسخدمه من قبل الفيروس

هناك مكاتب يوفرها نظام التشغيل يمكن استخدامها من قبل المبرمجين للتعامل مع النظام. على سبيل المثال هناك دوال خاصة بنظام الملفات او دوال للتعامل مع الرجستري او دوال للتعامل مع اتصال الانترنت … الخ . يمكن استدعاء الدوال من الفيروس للقيام بهمه معينة . هذه الدوال مبرمجه وجاهزه من قبل نظام التشغيل فقط يجب على المبرمج ان يستورد المكتبة المطلوبه واستخدام هذه الدوال . لكل جزء في النظام هناك دوال يمكن استخدامها . لكل نحلل الدوال التي يستخدمها الفايروس يمكن استخدام اداة Dependency Walker . الاداة توفر لك اسماء مكتبات DLL التي يستخدمها الفايروس كذلك اسم الدالة . الاداة توفر لك امكانية تشغيل الفايروس داخل الاداه وجمع معلومات اكثر عن الاعتماديات والمكتبات التي قد تتم استدعاها , ولكن هذا سوف يكون Dynamic analysis ونحن لا نريد عمل ذلك حاليا .

قراءة معلومات الـ Headers الخاصة بالفيروس

لكل ملف تنفيذي يوجد اقسام او segments وكل جزء يحتوي على معلومات مختلفه , اذا كنت كتبت برامج بلغة الاسمبلي سوف تلاحظ ان اثناء البرمجه يتم قسم البرنامج الي قسمين واحد يحتوي على المتغيرات والبيانات ويدعى DATA SEGMENT وجزء اخر يحتوي على الكود  ويدعى CODE SEGMENT قد تختلف المسميات من بنيه معالج الى اخر ولكن المفهوم لا يختلف. هناك اقسام اخرى ليس ماذكرته فقط  وكل قسم يحتوي على معلومات مفيده . سوف اضع جدول من كتاب practical Malware analysis  يوضح كل قسم والمعلومات التي يحتويها

 لقراءة كل المعلومات الموجوده في كل Header استخدم اداة PEview .

اذا لاحظت في الصوره هناك قسم اسمه rsrc وهو قسم يحتوي على كل الملفات والمعلومات الخاصه بالملف التنفيذي , مثل النصوص والصور والواجهة الرسومية وغيرها . اذا اردنا الاطلاع على معلومات الفيروس قد يكون هناك شي ما, يمكن ان نستخدم اداة Resource hacker الاداة تسمح لك بعرض كل شي في الملف التنفيذي حتى الازرار , ويمكن ايضا ان تعدل عليهم وتحفظ الملف. مثلا اذا لديك برنامج ذو واجهة رسوميه والايقونه هي تفاحه يمكن بكل بساطه حذفها واضافه صوره اخرى وحفظ الملف وسوف يعمل البرنامج بالايقونه الجديده . احيانا يتم استخدام البرنامج للترجمه بحيث يتم حذف الكتابة الانجليزيه ووضع الترجمه العربيه وحفظ الملف ولكن نحن سوف نستخدمه لاغراض التحليل وكشف محتويات قسم rsrc .

كل هذه الطرق هي ابسط ما يمكن القيام به ولا تعتمد على خبره او معلومات سابقة يمكن لأي شخص استخدامها واستخراج المعلومات من الفيروسات . التقنيات والاساليب المتقدمه تحتاج الى خبره في لغه الاسمبلي واستخدام Disassemblers سوف نتطرق لها في تدوينات اخرى . بالنسبة لكيفية عمل Dynamic analysis يمكن ان تقرأ هذه التدوينة .

تعليق واحد
  1. نجممايو 4, 2017

    رائع يا أخي

اضف تعليق