الدرس السادس : دفاعات البرامج الخبيثه

بسم الله الرحمن الرحيم

تستخدم البرامج الخبيثه اساليب متنوعه لتخطي عملية كشفها من قبل برامج مضادات الفيروسات او محلل البرامج الخبيثه باستخدامها طرق تجعل تحليلها اصعب و تبطل عمل برامج debugging حتى انها يمكن ان تكتشف تشغيلها في جهاز افتراضي virtual machine فتوقف عملها ولا تقوم بتشغيل وظائفها الخبيثه لذلك على المحلل لهذه البرامج ان يكون لديه علم بهذه الطرق وكيفية تخطيها حتى تسهل من عمله و ان ياخذ كامل المعلومات والوظائف الخبيثه لدى البرنامج الخبيث . وفي هذا الموضوع سنقوم بشرح طرق الاكتشاف والتخطي لدفاعات البرامج الخبيثه .

 

اولا : ما اسباب استخدام الحماية الذاتيه للبرامج الخبيثه ؟

زياده مده انتشار و حياه البرنامج الخبيث : فكلما زادت مده كشف كيفيه عمل البرنامج الخبيث زاد وقت انتشاره و اصابته لضحايا اكثر .
اغلب البرامج الخبيثه التي تكون مبرمجه من قبل جيش الكتروني تحوي على استغلال لثغرات ZeroDay فاذا ما تم اكتشاف البرنامج الخبيث يجب ان يكون هنالك دفاعات تقوم بابطاء اكتشاف استغلال هذه الثغرات لانه عند اكتشافها سيتم اصلاحها في الانظمه و لن يتمكن البرنامج الخبيث من استغلالها .
ابطاء اكتشاف الضرر الذي يسببه البرنامج الخبيث حتى لا يتمكن الضحيه من اصلاح الضرر بسرعه الا بعد فوات الاوان ومثال على هذا البرنامج الخبيث stuxnet .

 

ثانيا : ما هي الطرق التي تستخدمها البرامج الخبيثه للدفاع عن نفسها ؟

Code Obfuscation : و تعني جعل الكود المصدري غير مفهوم من قبل الاخرين بتغير اسماء المتغيرات و اسماء الfunction داخل البرنامج الخبيث واضافه اكواد ليس لها فائده .
Encryption : يقوم المخترق بتشفير الكود الذي يقوم بالوظيفه الرئيسيه ووضعه داخل البرنامج ثم عند تشغيله يتم فك تشفير الكود و تنفيذه فعند التحليل الساكن للبرنامج الخبيث لن يتم اكتشاف الكود الرئيسي .
Compression : حيث يتم ضغط البرنامج الخبيث لتقليل حجمه و جعل البيانات غير مرئيه الا بفك ضغطه .
polymorphism : حيث يقوم البرنامج الخبيث بتغير خصائصه بنفسه وعمل برنامج جديد في كل مره يعمل بها فعند عمل تحليل له يكون مختلف عن ما كان من قبل .
Anti-emulation : يقوم البرنامج الخبيث بالبحث عن اي كلمه او ميزه او اي شيئ يدل على وجوده داخل نظام وهمي مثل vmware و virtualbox , genymotion .
Anti-Debugging : يقوم البرنامج باستخدام طرق متنوعه لايقاف برامج ال debugger عن العمل حتى يصعب على محلل برامج الخبيثه استخدامها .
Anti-Disassembler : عن طريق اضافه تعليمات بلغه الاسمبلي يمكن للبرنامج الخبيث ان يخفي التعليمات الحقيقيه حيث ستقوم برامج disassembler بفهم التعليمات بشكل خاطئ .
Packing : وهو استخدام خوارزميات تقوم بجمع اقسام البرنامج ( قسم الكود وقسم البيانات وغيرها ) داخل قسم واحد يتم ضغطه وتشفيره وتم شرحه هنا : packers

 

 

تجدون هنا مراجع يمكنكم الاستفاده منها :

  1. سكربت لاكتشاف التشغيل داخل ال vbox
  2. برنامج يحوي عدد كبير من طرق anti-debugging يمكنكم استخدامه لدراسه هذا الموضوع AL-khaser
  3. مجموعه من طرق ال anti-debugging لبرامج التي تعمل على اللينكس Anti-debug

 

اترككم الان مع الشرح التوضيحي لكيفيه تخطي anti-emulation و anti-debugging :