– مقدمة:
فايروس الفدية Mamba هو أحد أنواع الفيروسات التي يقوم بتشفير بعض أو جميع ملفات جهازك ومنعك من الوصول لها. في المقابل تظهر لك رسالة تطالبك بمقابل مادي اذا كنت تريد استرجاع وفك تشفير ملفات جهازك. هناك أنواع كثيرة من فيروسات الفدية. منها ما يسهل تحليله واكتشافه ومنها من الصعب جدا اكتشافه وهذا كله يعتمد على طريقة كتابة صانع الفايروس لفايروس الفدية. اخترت تحليل فايروس Mamba لانه انتشر كثير في السعودية عام 2017 وايضا انتشر في عدد من الدول العربية كمصر.
الفايروس ينتقل الى جهازك ممكن عن طريق روابط مزيفة ضغطت عليها او عن طريق ملفات word او pdf اذا كنت مفعل ال macro. او حتى عن طريق ال spam emails. المتطلبات المطلوبة لهذه المقالة كالاتي
– المتطلبات المطلوبة لهذه المقالة كالاتي:
- معرفة وفهم سابق للغة ال C.
- معرفة وفهم سابق للغة الاسمبلي.
- معرفة وفهم سابق لطرق تحليل الفايروسات.
:Static Analysis –
فكرة ال static analysis للتذكير هو قدرتنا على اختبار وتحليل الفايروس بدون ما نشغل الفايروس. لماذا؟ حتى لا يؤثر على جهازنا او يحاول اخفاء نفسه. بعض الفايروسات بمجرد تشغيلك له، يحاول ان يشتغل كبرنامج عادي ويخفي عنك اي عمليات ضارة يقوم بها الفايروس على جهازك. ولهذا السبب، حنبدا بال static analysis ونحاول ناخذ معلومات اولية عن الفايروس على قدر استطاعتنا. باستخدام ال static analysis بحاول أجيب على الاسئلة التالية:
- ما هو تاريخ كتابة وانتاج الفايروس؟
- هل الفايروس packed؟ ما هو الدلائل على ذلك؟
- ما هي العناوين، الروابط، الدوال، process،اسماء ملفات التي نعتقد انها قد تكون ضارة او محل شبهة؟
- ما هو تحليلنا الأولي عن الفايروس؟
استخدمت برنامج PeStudio لتحليل الفيروس ومعرفة معلومات أولية عنه. وكما نرى في الصورة رقم ١ ادناه، الفايروس كتب وانشى بتاريخ Apr 24th, 2016. وأيضا نستطيع أن نرى ال MD5 (والتي من خلالها نستطيع ان نبحث عن نفس عينة الفيروس التي استخدمنا وايضا ممكن ان نرى اذا اكتشفت نفس العينة وكيف تم تحليلها) كما نشاهد في الصورة ادناه.
نستطيع أن نشاهد من الصورة رقم 1 ان الفايروس يستهدف نظام Windows وان الفايروس ليس مبني باستخدام GUI (تصميم التطبيق) بس هو موجود كبرنامج console. كيف استنتج انه يستهدف نظام Windows؟ شاهد الصورة رقم 1 ال cpu هو 32bit.
قبل ما اخبرك اذا كان الفيروس packed أو لا، أريد أن أشرح لك فكرة ال packing. فكرة packed مشابهة جدا لفكرة compressed file وهيا باختصار انه يكون عندي ملف كبير واحاول ان اصغر حجم الملف باستخدام ادوات مثل zip او rar. ما وجه الربط بين المصطلحين؟ وما الذي يدعونا للشك؟ الفكرة انه مطورين وصانعين الفايروسات يستخدمون نفس الفكرة ولكن لاخفاء الهدف الحقيقي من الفايروس. مثلا يصغر حجم الفايروس والجزء المصغر هو الجزء الذي يحتوي النوايا الحقيقة للفيروس وبالطريقة هذه يستطيع ان يمر الفايروس من غير ما يتم كشفه من قبل anti-vuirs او حتى من محلل الفيروسات! وهذه تعد من انواع ال obfuscation method التي يستخدمها صانع الفايروس للتخفي. obfuscation method هيا الطرق او الخدع التي يستخدمها الفايروس في اخفاء نفسه عن البرامج المضادة للفيروسات وغيرها كاخفاء نفسه عن VMware.
هناك عدة دلائل تشير الى ان الفايروس غير packed. أحد هذه الدلائل نستطيع ان نشاهده من الصورة رقم 1 من خلال signature. نلاحظ انه مايكروسفت فيجوال C++. عادة اذا كان البرنامج packed فإن الsignature يكون على شكل ارقام وحروف عشوائية كنتيجة لعملية ال packing. الصورة رقم 2 توضح احد الادلة الاخرى ان الفايروس غير packed وهو قيمة ال entropy. نلاحظ انهااقل من 7 لجميع الاقسام. لو كان الفايروس او احد الاقسام packed, قيمة entropy حتكون اعلى من 7. ايضا نستطيع ان نشاهد من الصورة رقم 2 ان حجم raw size قريب من حجم virtual size وهذا احد الادلة ايضا لان لو كان الفايروس packed, حيكون هناك اختلاف في الحجم.
- .text: القسم هذا يحتوي الكواد القابلة للتنفيذ executable code
- .rdata and .data : هذه الاقسام عادة نخزن فيها البيانات
- .rsrc and .reloc: هذه الاقسام عادة نخزن فيها المصادر resources المستخدمة من قبل الفايروس كملفات او فانكشن خارجية.
أكثر ما لفت انتباهي في string الخاصة بالفيروس عن طريق برنامج PeStudio هو المحدد باللون الأحمر في الصورة رقم 3.
لماذا لفتت انتباهي؟ لان كما نلاحظ حجم ال string جدا كبير مقارنة بغيرها. نلاحظ ان اسم او قيمة ال stringهيا DiskCrypto. قمت ببحث بسيط عن طريق قوقل ووجدت انه اداة مفتوحة المصدر تتيح لك تشفير الهاردسك الخاص بجهازك. مصدر المعلومة وجدته من .هنا
في الصورة ادناه رقم 4، نشاهد الكثير من المصادر المستخدمة من قبل الفايروس. استخرجت بعضها واستخدمت PeStudio لابحث عن اي شي مثير للشك. وشاهدت العدد من الدوال (functions) التي تدل على استخدام التشفير للملفات: DCAPI.DLL، DCCON.EXE،DCRYPT.EXE.
نلاحظ ايضا من الصورة رقم 4 ان الملفات تستهدف Windows 32 و 64. الصورة رقم 5 توضح الدوال المشتبه بها. اكثر ما لفت انتباهي هو دالة crptoCreateHash, crptoDestoryHash, crptoGetHashParam and ShellExecuteA. الثلاث الدوال الاولى كما يظهر لنا انها خاصة بنشاء وتدمير ال Hash والتي هيا اغلب الظن مستخدمة في عملية التشفير. بخصوص ShellExecuteA، فهيا غالبا تستخدم ال commmand line لتشغيل برامج خارجية.
: Dynamic Analysis –
فكرة dynamic analysis هو أن نقوم باختبار سلوكيات وقدرات الفايروس عن طريق تشغيل الفايروس مباشرة او عن طريق تشغيله باستخدام debugger حتى نحاول ننتبع دوال الفايروس بالتفصيل قدر الاستطاعة. باستخدام ال dynamic analysis بحاول أجيب على الاسئلة التالية:
- ما هيا السلوكيات المريبة التي لاحظناها بعد ما شغلنا الفايروس؟
- هل هناك دلائل على نشاطات خاصة ب network?
- ما هيا الملفات او process التي انشئت من قبل الفايروس؟
- هل لاحظت اي persistence mechanisms؟
- كيف استطعت كشف obfuscation methods المستخدمة من قبل الفايروس؟
في البداية، حاولت تشغيل الفايروس لكن لم يعطي اي استجابة. استخدمت RegSho و Process Monitor ولم الاحظ اي تغييرات بستثناء ان الفايروس حاول كتابة ملفات ولم ينجح كما نشاهد في الصورة رقم 6 أدناه
حاولت اقرا الكود للفايروس عن طريق Ghidra. وشاهدت أن الفايروس اذا كان parameter أقل من 2، سيخرج (التطبيق يقفل وما يسوي اي شي) كما نشاهد في الصورة رقم 7.
شغلت الفايروس عن طريق اضافة parameter كالاتي: “.\sample1.exe aaa”. بعد أقل من دقيقة، سار لجهازي restart واشتغل مرة اخرى. هذا دليل على الفايروس قام باعادة تشغيل الجهاز لكن ما نعرف الى الان ماذا قام به الفايروس.
حتى استطيع ان اعرف ما قام به الفايروس اجبرت على اعادة تهيئة ال VMware التي اشتغل عليها. ومن ثم استخدمت برنامج Process Monitor لاعرف ما التغييرات التي طرأت عند تشغيل الفايروس. يعني بدات اسجل الاحداث من قبل ما اشغل الفايروس وحتى خلال تشغيله. لماذا اجبرت لاعادة تهيئة ال VMware؟ لان أريد ان ارى التغيرات التي حدثت عند تشغيل الفايروس. الصورة رقم 8 توضح التغيرات التي طرأت عند تشغيل الفايروس.
نلاحظ من الصورة رقم 8 أن هناك ملفات مختلفة انشئت في directory الاتي: “C:\\DC22” ونلاحظ انها انشئت بنجاح. أتاكد من نفس directory وفعلا وجدت الملفات وهيا كالاتي:
- Cryptor library (decapi.dll).
- onsole version of DiskCryptor (decon.exe)
- Cryptor installer support (dcinst.exe)
- Cryptor driver (dcrypt.sys)
- lof file.txt وفيه يتم تتبع عملية التشفير للملفات
- Mount
- Netpass.ex
- Netuse.tx
صورة رقم 9 توضح وجود الملفات في الامتداد في ال C drive.
بعد دقائق شاهدت تغييرات في ملف logfile تدل على بدء عملية التشفير كما نشاهد في الصورة رقم 10.
نلاحظ ان الرمز (password) المستخدم لعملية التشفير هو نفس ال parameter الذي مررناه للفايروس عند تشغيله وهو aaa كما نرى في الصورة رقم 10. ايضا نستطيع ان نتتبع عملية التشفير عن طريق الملف GUI dcrypt.exe المنشئة من قبل الفايروس او عن طريق console dccon.exe كما نشاهد في الصورة رقم 11 و 12.
نلاحظ ايضا ان نوع التشفير هو AES باسستخدام ال XTS mode. في الصورة رقم 12 نشاهد بعض ال registry key المعدلة من قبل الفايروس
ومن الاشياء المثيرة للاهتمام التي وجدتها في إعدادات ال bootloader ل disk هيا رسالة تفيد بان الجهاز تم تهكيره كما نشاهد في الصورة رقم 15.
ومن الاشياء المثيرة للاهتمام التي وجدتها في إعدادات ال bootloader ل disk هيا رسالة تفيد بان الجهاز تم تهكيره كما نشاهد في الصورة رقم 15.
خلال عملية التشفير، لاحظ ان الهاردسك استهلك تقريبا بالكامل كما نشاهد في الصورة رقم 16.
ايضا لاحظت ان عينة الفايروس والتي اسمها sample1.exe شغلت برنامج اخر وهو dccon.exe والذي استخدم في عملية التشفير كما نشاهد في الصورة رقم 17.
وعندما تحققت من الخصائص للعينة، لاحظت انها تستخدم خدمة اسمها DefragmentService كما نشاهد في الصورة رقم 18.
وايضا لاحظت ان الخدمة DefragmentService ثبتت قبل عملية اعادة التشغيل للجهاز كما نشاهد في الصورة رقم 19.
ال DefragmentService استخدمت لتحقق ال persistence والتي تعني ان يحافظ الفايروس على تواجده في جهازك لفترة طويلة.
– الخاتمة:
الفايروس الذي حللناه يعتبر من فايروس الفدية والتي تقوم على تشفير كامل للهارسك الخاص بالجهاز. وتستخدم ادوات خارجية مثل DiskCryptor لتشفير محتوى الهاردسك والتي تمنع المستخدم من الوصول الى نظام الجهاز. لتشغيل الفايروس نحتاج أن نعطي argument للفايروس. وهذا ال argument يستخدم من قبل DiskCryptor لتشفير وفك تشفير الهاردسك. ايضا الفايروس يقوم بكتابة ملفات مختلفة في C:\DC22. وايضا الفايروس يقوم باستخدام خدمة DefragmentService والتي يستخدمها الفايروس لتحقيق persistence.
اخيرا، اذا وجدت من الصعب فهم بعض ما شرحت، ارجع الى الفديو لان شرحت فيه بشكل مباشر ما تحدثت عنه بتفصيل اكثر.
ان اصبت فمن الله وان اخطات فمن نفسي .. لا تنسى مشاركة المقالة اذا أعجبتك .. اخوكم رائد الحربي
ولاي ملاحضات او استفسارات يرجى مراسلتي على تويتر @raedalharbi14 أو كتابة التعليق هنا