- 29 مارس 2022
- 21
- 15
- 3
- الجنس
- ذكر
السلام عليـكم ورحمة الله وبركاته
في هذا الموضوع سنشرح طرق فحص وتحليل البرمجيات الخبيثة وأنواعهـا.
ما هو الـ Malware analysis :
هو من اشهر عمليات الـ Reverse Engineering او الهندسة العكسيه و التى من خلالها يتم تحليل malware معين من اجل الوصول الى آليه عمله و مصدره و تأثيره على أي نظام .
في هذا الموضوع سنشرح طرق فحص وتحليل البرمجيات الخبيثة وأنواعهـا.
ما هو الـ Malware analysis :
هو من اشهر عمليات الـ Reverse Engineering او الهندسة العكسيه و التى من خلالها يتم تحليل malware معين من اجل الوصول الى آليه عمله و مصدره و تأثيره على أي نظام .
متطلبات عمل Malware Analysis Lab.
استخدام البرامج الشهيرة الخاصه بالـ Virtualization سواء Hyper-V او VMware, البدء فى عمل Virtual machines.
عزل الـ Vm عن طريق جعل NIC الخاص بالـ Guest الى Host Only لضمان عدم حدوث اي تسريب للـ Malwares, اضافة برنامج Simulation للـ internet وافضل مثال على هذا الامر هو Inetsim, ايقاف اي Shared Folders واضافه برامج الـ Malware Analysis والتي ستختلف طبقاً لنوع الـ Analysis.
استخدام البرامج الشهيرة الخاصه بالـ Virtualization سواء Hyper-V او VMware, البدء فى عمل Virtual machines.
عزل الـ Vm عن طريق جعل NIC الخاص بالـ Guest الى Host Only لضمان عدم حدوث اي تسريب للـ Malwares, اضافة برنامج Simulation للـ internet وافضل مثال على هذا الامر هو Inetsim, ايقاف اي Shared Folders واضافه برامج الـ Malware Analysis والتي ستختلف طبقاً لنوع الـ Analysis.
انواع الـ Malware Analysis :
النوع الاول : Static Malware analysis و هنا يكون الهدف هو تحليل الكود الخاص بالـ Malware و تحديدا الـ Binary Code الخاص به و يكون عن طريق مجموعه من الادوات و التي ستساعدنا بشكل كامل لمعرفة الـ Characteristics الخاصة بالـ Malware نفسه.
سنقوم بتعريف بعض الخطوات و الادوات ايضا و التي ستساعدنا علي هذا الأمر :
أولاً File Fingerprinting : معرفة الـ Hash الخاص بالملف المشكوك فيه بإستخدام أداة Hashmy Files ثم التحقق من الـHash على موقـع virustotal.com, وإيضاً رفـع الملف المصاب إن لم يتحقق من الـHash.
ثانياً Strings Search : كثير من الـ Malware تكون مصحوبه ببعض الرسائل و Domain Controller للـ Attacker و IP addresses و Attack commands ..إلـخ لذا يمكننا استخدام الادوات مثل Bin text او Floos لإستخراج النصوص من الـ Malware.
ثالثاً Identifying Packages : الـ Malware makers يقومون باخفاء Obfuscation للـMalware داخل برنامج او Executable File حتى لايتم التعرف عليه وهنا يكون
هدفنا عكس الامر بفك الارتباط بالملف الخادع عن طريق ادوات مثل PEid و UPX واستخدام اداة PE Explorer من أجل معرفة الـ Executable Information.
رابعاً Identifying File Dependencies : معرفة الملفات التي يعتمد عليها الـ malware فى النظام نفسه و هنا تبرز اداة Dependency Walker و Synk.
خامساً Malware Disassembly : وهنا ياتي اهم دور للـ Static Analysis حيث يتم استخدام Binary Code ومعرفه كل ما يدور فى الخلفية لهذا الكود و تبرز مجموعه من الادوات فى هذا الامر مثل IDA PRO و Immunity Debugger والتي ينصح بتعلمها بشكل كامل حيث ان استخدامهما قد يسهل العديد من الامور ليس فى الـ Malware Analysis فقط و لكن فى الـ Penetration Testing ايضا و بالاخص الـ Cases الخاص بالـ Memory Exhausted او الـ Buffer overflow وإيضاً يجدر بك معـرفة لـغة ++C و Assembly إن أمكن .
النوع الثاني : Dynamic Malware Analysis هنا سيتم تشغيل الكود في البيئه المعزوله ومعرفة تاثير الـ Malware على الـ Guest System بشكل كامل و لعمل هذا الامر لابد من اخذا Snapshot للنظام قبل تشغيل الـ malware ومقارنته بما سيحدث بعد تشغيله و هو ما سنسميه فى حالتنا System Baselining.
التغييرات ستكون على مستوى الاتي :
أولاً Port Mentoring: متابعة الـ Ports التى انشأت بعد الـ Malware Execution وهنا نستخدم هذه الادوات netstat و TCP Veiw
ثانياً Process Mentoring: كثير من الـ Malwares يصاحبها استهلاك للمعالج عن طريق عمليات وهميه و هنا نستخدم هذه الادوات Process Monitor و Monit.
ثالثاً Registry Mentoring: من المعلوم ان الـ Registry من الاماكن التى تسجل كل مايحدث بها من عمليات التشغيل داخل الـ OS لأي malware ليعمل بشكل Automated لابد من وضع تسجيل له داخل الـ Registry وهنا تبرز العديد من الادوات مثل : Jv16 PowerTools و Regshot.
رابعاً Windows Service Mentoring: تسجيل ما حدث من تغيير فى الـ Services ويمكن استخدام Service manager من Manage engine, و Process Hacker و Netwrix Service Monitor
خامساً Startup Program: و هنا نستخدم Auto runs for Windows او بالطبع فتح ملف الـ Boot.ini.
سادساً Network Traffic Analysis : هام جدا لمعرفة الـ Rhosts التي يتصل عليها لـ Malware الخاصة بالـ Attackers وهنا يأتي افضل البرامج فى هذا الامر مثل Wireshark و Capsa Network هناك ايضا العديد من العوامل الواجب مشاهدتها مثل الـ DNS Traffic و API Call Mentoring و Device Drivers.
النوع الاول : Static Malware analysis و هنا يكون الهدف هو تحليل الكود الخاص بالـ Malware و تحديدا الـ Binary Code الخاص به و يكون عن طريق مجموعه من الادوات و التي ستساعدنا بشكل كامل لمعرفة الـ Characteristics الخاصة بالـ Malware نفسه.
سنقوم بتعريف بعض الخطوات و الادوات ايضا و التي ستساعدنا علي هذا الأمر :
أولاً File Fingerprinting : معرفة الـ Hash الخاص بالملف المشكوك فيه بإستخدام أداة Hashmy Files ثم التحقق من الـHash على موقـع virustotal.com, وإيضاً رفـع الملف المصاب إن لم يتحقق من الـHash.
ثانياً Strings Search : كثير من الـ Malware تكون مصحوبه ببعض الرسائل و Domain Controller للـ Attacker و IP addresses و Attack commands ..إلـخ لذا يمكننا استخدام الادوات مثل Bin text او Floos لإستخراج النصوص من الـ Malware.
ثالثاً Identifying Packages : الـ Malware makers يقومون باخفاء Obfuscation للـMalware داخل برنامج او Executable File حتى لايتم التعرف عليه وهنا يكون
هدفنا عكس الامر بفك الارتباط بالملف الخادع عن طريق ادوات مثل PEid و UPX واستخدام اداة PE Explorer من أجل معرفة الـ Executable Information.
رابعاً Identifying File Dependencies : معرفة الملفات التي يعتمد عليها الـ malware فى النظام نفسه و هنا تبرز اداة Dependency Walker و Synk.
خامساً Malware Disassembly : وهنا ياتي اهم دور للـ Static Analysis حيث يتم استخدام Binary Code ومعرفه كل ما يدور فى الخلفية لهذا الكود و تبرز مجموعه من الادوات فى هذا الامر مثل IDA PRO و Immunity Debugger والتي ينصح بتعلمها بشكل كامل حيث ان استخدامهما قد يسهل العديد من الامور ليس فى الـ Malware Analysis فقط و لكن فى الـ Penetration Testing ايضا و بالاخص الـ Cases الخاص بالـ Memory Exhausted او الـ Buffer overflow وإيضاً يجدر بك معـرفة لـغة ++C و Assembly إن أمكن .
النوع الثاني : Dynamic Malware Analysis هنا سيتم تشغيل الكود في البيئه المعزوله ومعرفة تاثير الـ Malware على الـ Guest System بشكل كامل و لعمل هذا الامر لابد من اخذا Snapshot للنظام قبل تشغيل الـ malware ومقارنته بما سيحدث بعد تشغيله و هو ما سنسميه فى حالتنا System Baselining.
التغييرات ستكون على مستوى الاتي :
أولاً Port Mentoring: متابعة الـ Ports التى انشأت بعد الـ Malware Execution وهنا نستخدم هذه الادوات netstat و TCP Veiw
ثانياً Process Mentoring: كثير من الـ Malwares يصاحبها استهلاك للمعالج عن طريق عمليات وهميه و هنا نستخدم هذه الادوات Process Monitor و Monit.
ثالثاً Registry Mentoring: من المعلوم ان الـ Registry من الاماكن التى تسجل كل مايحدث بها من عمليات التشغيل داخل الـ OS لأي malware ليعمل بشكل Automated لابد من وضع تسجيل له داخل الـ Registry وهنا تبرز العديد من الادوات مثل : Jv16 PowerTools و Regshot.
رابعاً Windows Service Mentoring: تسجيل ما حدث من تغيير فى الـ Services ويمكن استخدام Service manager من Manage engine, و Process Hacker و Netwrix Service Monitor
خامساً Startup Program: و هنا نستخدم Auto runs for Windows او بالطبع فتح ملف الـ Boot.ini.
سادساً Network Traffic Analysis : هام جدا لمعرفة الـ Rhosts التي يتصل عليها لـ Malware الخاصة بالـ Attackers وهنا يأتي افضل البرامج فى هذا الامر مثل Wireshark و Capsa Network هناك ايضا العديد من العوامل الواجب مشاهدتها مثل الـ DNS Traffic و API Call Mentoring و Device Drivers.
زكاة الـعلم نشره
مصادر:
الإستاذ : خالد أبو إبراهيم
كتاب Learning Malware Analysis
التعديل الأخير: