Mamba – (Ransomware Malware) تحليل فايروس الفدية

– مقدمة:

فايروس الفدية 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 : معلومات عامة عن الفيروس باستخدام PeStudio

نستطيع أن نشاهد من الصورة رقم 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, حيكون هناك اختلاف في الحجم.

صورة رقم ٢ : الاقسام التي يحتويها الفايروس
من الصورة رقم ٢ اعلاه، نرى أن الفايروس يحتوي الاقسام sections التالية:
  • .text: القسم هذا يحتوي الكواد القابلة للتنفيذ executable code
  • .rdata and .data : هذه الاقسام عادة نخزن فيها البيانات
  • .rsrc and .reloc: هذه الاقسام عادة نخزن فيها المصادر resources المستخدمة من قبل الفايروس كملفات او فانكشن خارجية.

أكثر ما لفت انتباهي في string الخاصة بالفيروس عن طريق برنامج PeStudio هو المحدد باللون الأحمر في الصورة رقم 3.

صورة رقم 3 : قسم ال string من برنامج PeStudio

لماذا لفتت انتباهي؟ لان كما نلاحظ حجم ال string جدا كبير مقارنة بغيرها. نلاحظ ان اسم او قيمة ال stringهيا DiskCrypto. قمت ببحث بسيط عن طريق قوقل ووجدت انه اداة مفتوحة المصدر تتيح لك تشفير الهاردسك الخاص بجهازك. مصدر المعلومة وجدته من .هنا

في الصورة ادناه رقم 4، نشاهد الكثير من المصادر المستخدمة من قبل الفايروس. استخرجت بعضها واستخدمت PeStudio لابحث عن اي شي مثير للشك. وشاهدت العدد من الدوال (functions) التي تدل على استخدام التشفير للملفات: DCAPI.DLL، DCCON.EXE،DCRYPT.EXE.

صورة رقم 4 : قسم ال resources من برنامج PeStudio

نلاحظ ايضا من الصورة رقم 4 ان الملفات تستهدف Windows 32 و 64. الصورة رقم 5 توضح الدوال المشتبه بها. اكثر ما لفت انتباهي هو دالة crptoCreateHash, crptoDestoryHash, crptoGetHashParam and ShellExecuteA. الثلاث الدوال الاولى كما يظهر لنا انها خاصة بنشاء وتدمير ال Hash والتي هيا اغلب الظن مستخدمة في عملية التشفير. بخصوص ShellExecuteA، فهيا غالبا تستخدم ال commmand line لتشغيل برامج خارجية.

صورة رقم 5 : قسم ال functions من برنامج PeStudio

  التحليل الأولي للفايروس هو انه فايروس فدية بناء على الأدلة التي رأيناها. لكن نحتاج أن نثبت هذه الشكوك ونتأكد، وهذا ما سنفعله في ال dynamic analysis.

: Dynamic Analysis –

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

  • ما هيا السلوكيات المريبة التي لاحظناها بعد ما شغلنا الفايروس؟
  • هل هناك دلائل على نشاطات خاصة ب network?
  • ما هيا الملفات او process التي انشئت من قبل الفايروس؟
  • هل لاحظت اي persistence mechanisms؟
  • كيف استطعت كشف obfuscation methods المستخدمة من قبل الفايروس؟

في البداية، حاولت تشغيل الفايروس لكن لم يعطي اي استجابة. استخدمت RegSho و Process Monitor ولم الاحظ اي تغييرات بستثناء ان الفايروس حاول كتابة ملفات ولم ينجح كما نشاهد في الصورة رقم 6 أدناه

صورة رقم 6 : بعض الملفات المنشئة من قبل الفايروس باستخدام برنامج Process Monitor

حاولت اقرا الكود للفايروس عن طريق Ghidra. وشاهدت أن الفايروس اذا كان parameter أقل من 2، سيخرج (التطبيق يقفل وما يسوي اي شي) كما نشاهد في الصورة رقم 7.

صورة رقم 7 : الmain function للفايروس باستخدام برنامج Ghidra.

شغلت الفايروس عن طريق اضافة parameter كالاتي: “.\sample1.exe aaa”. بعد أقل من دقيقة، سار لجهازي restart واشتغل مرة اخرى. هذا دليل على الفايروس قام باعادة تشغيل الجهاز لكن ما نعرف الى الان ماذا قام به الفايروس.

حتى استطيع ان اعرف ما قام به الفايروس اجبرت على اعادة تهيئة ال VMware التي اشتغل عليها. ومن ثم استخدمت برنامج Process Monitor لاعرف ما التغييرات التي طرأت عند تشغيل الفايروس. يعني بدات اسجل الاحداث من قبل ما اشغل الفايروس وحتى خلال تشغيله. لماذا اجبرت لاعادة تهيئة ال VMware؟ لان أريد ان ارى التغيرات التي حدثت عند تشغيل الفايروس. الصورة رقم 8 توضح التغيرات التي طرأت عند تشغيل الفايروس.

صورة رقم 8 : الملفات المنشئة من قبل الفايروس للفايروس باستخدام برنامج Process Monitor.

نلاحظ من الصورة رقم 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.

صورة رقم 9 : صورة للملفات المنشئة من ال C drive.

بعد دقائق شاهدت تغييرات في ملف logfile تدل على بدء عملية التشفير كما نشاهد في الصورة رقم 10.

صورة رقم 10 : تتبع عملية التشفير من ملف logfile.

نلاحظ ان الرمز (password) المستخدم لعملية التشفير هو نفس ال parameter الذي مررناه للفايروس عند تشغيله وهو aaa كما نرى في الصورة رقم 10. ايضا نستطيع ان نتتبع عملية التشفير عن طريق الملف GUI dcrypt.exe المنشئة من قبل الفايروس او عن طريق console dccon.exe كما نشاهد في الصورة رقم 11 و 12.

صورة رقم 11 : تتبع عملية التشفير GUI-based
صورة رقم 12 : تتبع عملية التشفير consle-based

نلاحظ ايضا ان نوع التشفير هو AES باسستخدام ال XTS mode. في الصورة رقم 12 نشاهد بعض ال registry key المعدلة من قبل الفايروس

صورة رقم 14 : بعض registry keys المعدلة من قبل الفايروس.

ومن الاشياء المثيرة للاهتمام التي وجدتها في إعدادات ال bootloader ل disk هيا رسالة تفيد بان الجهاز تم تهكيره كما نشاهد في الصورة رقم 15.

صورة رقم 15 : Bootloader Config

ومن الاشياء المثيرة للاهتمام التي وجدتها في إعدادات ال bootloader ل disk هيا رسالة تفيد بان الجهاز تم تهكيره كما نشاهد في الصورة رقم 15.

  بعد انتهاء عملية التشفير، اذا اعدنا تشغيل الجهاز فاننا لن نستطيع الدخول الى النظام OS بسثتناء اذا ادخلنا الرمز الخاص بالتشفير وهو aaa.

خلال عملية التشفير، لاحظ ان الهاردسك استهلك تقريبا بالكامل كما نشاهد في الصورة رقم 16.

صورة رقم 16 : استهلاك الهاردسك

ايضا لاحظت ان عينة الفايروس والتي اسمها sample1.exe شغلت برنامج اخر وهو dccon.exe والذي استخدم في عملية التشفير كما نشاهد في الصورة رقم 17.

صورة رقم 17 : Process Explorer

وعندما تحققت من الخصائص للعينة، لاحظت انها تستخدم خدمة اسمها DefragmentService كما نشاهد في الصورة رقم 18.

صورة رقم 18 : DefragmentService

وايضا لاحظت ان الخدمة DefragmentService ثبتت قبل عملية اعادة التشغيل للجهاز كما نشاهد في الصورة رقم 19.

صورة رقم 19 : DefragmentService من Ghidra

ال DefragmentService استخدمت لتحقق ال persistence والتي تعني ان يحافظ الفايروس على تواجده في جهازك لفترة طويلة.

– الخاتمة:

الفايروس الذي حللناه يعتبر من فايروس الفدية والتي تقوم على تشفير كامل للهارسك الخاص بالجهاز. وتستخدم ادوات خارجية مثل DiskCryptor لتشفير محتوى الهاردسك والتي تمنع المستخدم من الوصول الى نظام الجهاز. لتشغيل الفايروس نحتاج أن نعطي argument للفايروس. وهذا ال argument يستخدم من قبل DiskCryptor لتشفير وفك تشفير الهاردسك. ايضا الفايروس يقوم بكتابة ملفات مختلفة في C:\DC22. وايضا الفايروس يقوم باستخدام خدمة DefragmentService والتي يستخدمها الفايروس لتحقيق persistence.

اخيرا، اذا وجدت من الصعب فهم بعض ما شرحت، ارجع الى الفديو لان شرحت فيه بشكل مباشر ما تحدثت عنه بتفصيل اكثر.


ان اصبت فمن الله وان اخطات فمن نفسي .. لا تنسى مشاركة المقالة اذا أعجبتك .. اخوكم رائد الحربي
ولاي ملاحضات او استفسارات يرجى مراسلتي على تويتر @raedalharbi14 أو كتابة التعليق هنا

Leave a Reply

Your email address will not be published.