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

محمد سلامي
21/12/2020


المقدمة
معظم حوادث الإختراق الأمني هذه الأيام سببها غالبا برامج خبيثة، وجود مثل هذه البرامج داخل
المنظمات إما لأسباب تخريبية, او تجسسية بهدف الاطلاع على ملفات سرية أو سرقة بيانات حساسة.
سوف نعرض لكم في هذه المقالة بشكل مبسط كيف يمكن لمحلل المخاطر الاطلاع على أهم
المفاتيح لفهم طريقة عمل البرامج الخبيثة للحد من خطرها

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

هناك طريقتان لتحليل البرامج الخبيثة, إما بالطريقة الديناميكية أو الطريقة الثابتة.

التحليلات الثابتة
ببساطة هذه الطريقة تستخدم لتحليل البرامج الخبيثة بدون تشغيلها ودراسة المحتوى بشكل آمن,
مثلا الاطلاع على APIs و ASCII & Unicode او الميتا داتا

يساعد هذا النوع من التحليل للفهم والتأكد إذا ما كان البرنامج خبيث أم لا.
بعد الاطلاع إلى الصورة أدناة، سنرى أن البرنامج يحتوي على API CryptDecrypt
هذا النوع من الـ API يستخدم في التشفير
يمكن ان نرى ايضا ان هناك احتمالية تخاطب البرنامج الخبيث مع خادم خارجي قد يكون الغرض منه التحكم بجهاز الضحية عبر بروتكول HTTP

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)
HTTP/1.1
Connection: close
نرى أيضا خلال تحليلنا لهذا البرنامج الخبيث وجود احتمالية مفاتيح تسجيل, تستخدم هذي المفاتيح لضمان إعادة تشغيل البرنامج الخبيث بعد إطفاء جهاز الضحية
Software\Microsoft\Windows\CurrentVersion\Run
بعد ما تم تشغيل البرنامج الخبيث داخل بيئة امنة, نستطيع ان نتحقق اذا ما كان البرنامج يحاول التخاطب مع خادم خارجي كما ظهر لنا في التحليلات الثابتة في المثال السابق
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)
HTTP/1.1
Connection: close
في العادة يستخدم برنامج ال debugger في هذه العملية لضمان دراسة تحركات البرنامج الخبيث داخل الذاكرة
مراحل تحليل البرامج الضارة
هناك ٤ مراحل تستخدم في تحليل البرامج الخبيثة.
تكون المراحل الأربع في شكل مخطط هرمي وكلما نرتقي في الهرم، يزداد تعقيد مرحلة التحليل

المراحل هي:

التحليل التلقائي الكامل
تحليل الخصائص الثابتة
تحليل السلوك التفاعلي
تحليل الكود اليدوي
التحليل التلقائي الكامل
التحليل التلقائي بالكامل يكون سريع وبسيط وبشكل آلي
يمكن تحليل البرامج الخبيثة باستخدام SandBox مثل Cuckoo و hyper
بعد الانتهاء من التحليل تقوم الأداة بإنشاء تقرير سريع عن محتويات الملف

تحليل الخصائص الثابتة
تعتبر نقطة البداية الجيدة, حيث يقوم المحلل بفحص الخصائص الثابتة للعينة مثل البيانات الوصفية.
تعد PeStudio واحدة من أفضل الأدوات المستخدمة لهذا النوع من التحليل كما هو موضح في الصورة أدناه
تحليل السلوك التفاعلي
بعد استخدام الأدوات وفحص الخصائص الثابتة للملف، يقوم المحلل بإلقاء نظرة أعمق لدراسة سلوك البرنامج
غالبًا ما يتضمن ذلك إصابة النظام بالبرنامج الخبيث داخل بيئة آمنة لمراقبة سلوكه كما فعلنا من قبل أثناء التحليل الديناميكي
في هذا المثال سوف نقوم باستخدام أداة Process Monitor لمراقبة سلوك البرنامج
ما يهدف إليه هذا النوع من التحليل هو الحصول على فكرة عن ما تحاول البرامج الضارة القيام به عند تشغيلها على جهاز الضحية
تحليل الكود اليدوي
تعتبر هذه المرحلة متقدمة في تحليل البرامج وتتطلب فهمًا جيدًا في لغة البرمجة
Assembly
أحد الأمثلة في تحليل الكود اليدوي هو استخدام أداة
الـDebugger
لتشفير ملف أو بيانات، يجب أن يكون لديك نسخة واضحة منه أولاً.
توضح الصورة أدناه المحتوى الذي يحاول البرنامج تشفيره

لمشاركة هذه المدونة
تابعنا
طور مهاراتك من خلال متابعة آخر منشورات فريقنا
المدونات