Sodinokibi Ransomware: دراسة مفصلة

لقد تم حديثًا عن Sodinokibi ransomware في الأخبار ، لكن القليل منهم قد غوص في تفاصيل هذه البرامج الضارة. اليوم سنحاول التعرف على Sodinokibi عن قرب ، والنظر في مبادئ رانسومواري لتحديد ناقلات الأولوية لحماية نظم المعلومات من تهديد جديد.



مؤلفو النص: رافيكان تيواري وألكسندر كوشيليف

ماذا نعرف عن سودينوكيبي؟


على الأرجح ينتشر Sodinokibi من قبل نفس المهاجمين الذين كانوا معروفين بهجمات الفدية من عائلة GandCrab ، والتي ، بناءً على تقارير من منتديات تحت الأرض ، لن تتطور.

يستخدم Sodinokibi مشكلة عدم حصانة Oracle WebLogic (CVE-2019-2725) للوصول إلى كمبيوتر الضحية. بمجرد دخول النظام ، يحاول البرنامج الضار تشغيل نفسه بحقوق ممتدة من أجل الوصول إلى جميع الملفات والموارد الخاصة بجهاز الكمبيوتر دون قيود ...
يحاول Sodinokibi عدم إصابة أجهزة الكمبيوتر في إيران وروسيا وبلدان أخرى في الاتحاد السوفيتي السابق.

يستخدم برنامج Ransomware خوارزميات AES و Salsa20 لتشفير ملفات المستخدم. يتم استخدام AES لتشفير مفاتيح الجلسة ، وكذلك البيانات المرسلة إلى خادم الإدارة.

يتم تشفير ملفات المستخدم باستخدام Salsa20.

لإنشاء المفاتيح وتوزيعها ، تستخدم Sodinokibi خوارزمية Diffie-Hellman على المنحنيات الإهليلجية.

مرة واحدة على الجهاز ، يحذف الفيروس على الفور جميع الملفات من مجلد النسخ الاحتياطي.

في الوقت الحالي ، تطلب Ransomware 0.32806964 BTC ((2500 دولار) لاستعادة الوصول إلى الملفات المشفرة. علاوة على ذلك ، إذا لم يتم دفع الفدية في غضون 4 أيام ، فإن المختطفين يعدون بمضاعفة المبلغ ...

كيف يعمل سودينوكيبي؟


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

تم فك تشفير أسماء API والمعلمات الأخرى أثناء تشغيل البرنامج باستخدام خوارزمية RC4. من أجل جعل الكشف أكثر صعوبة بالنسبة لمضادات الفيروسات ، تنفذ هذه الفدية عمليات على السلاسل باستخدام تجزئة DJB بدلاً من السلاسل نفسها ...

التهيئة


يبدأ Sodinokibi بإنشاء جدول استيراد ديناميكي. بادئ ذي بدء ، البرنامج مقتنع أنه هو النسخة الوحيدة في النظام عن طريق التحقق من المزامنة. بعد التحقق ، يقوم بفك تشفير تكوين JSON باستخدام RC4 ، والذي يتم تخزينه في ملف البرنامج ويتحقق من القيمة المنطقية لمفتاح "exp". إذا كانت قيمتها "حقيقية" ، تحاول Sodinokibi إطلاق استغلال. لقد كان الأمر كذلك في العينة الخاصة بنا ، لذا فقد أدت وظيفة استغلال الثغرات الأمنية




فك تشفير JSON التكوين

يتحقق الرمز الذي يقوم بتشغيل عمليات التحقق من الاستغلال لمعرفة ما إذا كان قد تم تثبيت تحديث 11 سبتمبر (KB4457138) على الكمبيوتر. يعالج هذا التصحيح العديد من نقاط الضعف أدناه. وإذا لم يكن الجهاز موجودًا ، فسوف تستمر Ransomware في إطلاق كود قشرة 32 أو 64 بت ، وفقًا للنظام الأساسي الذي تعمل عليه البرامج الضارة. نعتقد أن رانسومواري تحاول رفع الامتيازات لمسؤول باستخدام CVE-2018-8440.


مقتطف 1

قائمة الثغرات الأمنية التي تعمل على تصحيح KB4457138:

تصحيح KB4457138 إصلاح الثغرات الأمنية:

  • CVE-2018-8457 ، CVE-2018-8335 ، CVE-2018-8424 ، CVE-2018-8455 ، CVE-2018-8468 ، CVE-2018-8447 ، CVE-2018-8475 ، CVE-2018-8271 ، CVE- 2018-8440 ، CVE-2018-8464 ، CVE-2018-8469 ، CVE-2018-8421 ، CVE-2018-8442 ، CVE-2018-8367 ، CVE-2018-8443 ، CVE-2018-8465 ، CVE-2018- 8419 ، CVE-2018-8466 ، CVE-2018-8410 ، CVE-2018-8467 ، CVE-2018-8462 ، CVE-2018-8452 ، CVE-2018-8446 ، CVE-2018-8449 ، CVE-2018-8420 ، CVE-2018-8433 ، CVE-2018-8438 ، CVE-2018-8435 ، CVE-2018-8456 ، CVE-2018-8354 ، CVE-2018-8434 ، CVE-2018-8470 ، CVE-2018-8332 ، CVE- 2018-0965 ، CVE-2018-8315 ، CVE-2018-8439 ، CVE-2018-8392 ، CVE-2018-8425 ، CVE-2018-8393.


إذا لم يتم الكشف عن ثغرة أمنية في النظام واستمرت العملية في العمل كمستخدم عادي ، فسيتم استخدام الأمر RUNAS لبدء مثيل آخر ، ولكن مع حقوق إدارية ، وسيتم الانتهاء من العمل الحالي بامتيازات محدودة. يظهر الرمز الكاذب الكامل في لقطة الشاشة أدناه.



بعد بدء Sodinokibi بنجاح في وضع المسؤول ، يقوم البرنامج بإجراء فحص أولي إضافي ويوضح قيمة مفتاح "bro" في تكوين JSON واكتشف بلد الموقع. لن تحاول إصابة أجهزة الكمبيوتر من البلدان التالية ، إذا تم تعيين معلمات الموقع هذه في إعدادات الكمبيوتر.


تحسين معرفات اللغة

قائمة الدول استثناء

  • رومانيا ، روسيا ، أوكرانيا ، روسيا البيضاء ، إستونيا ، لاتفيا ، ليتوانيا ، طاجيكستان ، إيران ، أرمينيا ، أذربيجان ، جورجيا ، كازاخستان ، قيرغيزستان ، تركمانستان ، أوزبكستان ، تتارستان

* ملاحظة المحرر: لسبب غير معروف ، يسلط المؤلفون الضوء بشكل خاص على لغة التتار في روسيا

بعد اجتياز الاختبار ، تنهي البرامج الضارة عملية mysql.exe (إذا كانت قيد التشغيل) من أجل الوصول إلى ملفات MySQL وتشفيرها. بعد ذلك ، تقوم رانسومواري بإزالة النسخ الاحتياطية من Windows باستخدام vssadmin ، وتعطيل نظام استرداد Windows باستخدام bcdedit:

vssadmin.exe Delete Shadows /All /Quiet & bcedit /set {default}
recoveryenabled No & bcedit /set {default} bootstatuspolice ignorealfailures


قبل تشفير ملفات المستخدم ، يبحث Sodinokibi في جميع أنظمة الملفات ، بما في ذلك مجلدات الشبكة ، للعثور على الدلائل باسم "النسخ الاحتياطي" وحذفها نهائيًا. من المثير للاهتمام أنه قبل حذف الدليل نفسه ، يستبدل البرامج الضارة أولاً المحتوى الموجود في جميع هذه المجلدات بمجموعة عشوائية من البايتات لجعل الاسترداد مستحيلًا من حيث المبدأ. لحسن الحظ ، لا يمكن حذف ملفات Acronis Backup بهذه السهولة ، لأنها محمية على مستوى kernel ، وتحديداً لمنع الفدية من اتخاذ مثل هذه الإجراءات.

جيل المفتاح


Sodinokibi يستخدم Diffie - Hellman Elliptic Curve Generation and Exchange Protocol (ECDH). تُستخدم مفاتيح الجلسة المنشأة في خوارزميات تشفير متماثل ، ويتم تشفير أنواع مختلفة من البيانات باستخدام طرق مختلفة - AES و Salsa20.

يتم استخدام AES لتشفير مفتاح خاص من زوج من المفاتيح الخاصة والعامة التي يتم إنشاؤها محليًا على جهاز المستخدم. كما يقوم بتشفير البيانات أثناء الإرسال عبر الشبكة. يستخدم Salsa20 لتشفير ملفات المستخدم.

يحتوي Sodinokibi على مفتاحين مختلفين ، أحدهما جزء من تكوين JSON ، والثاني مضمن في الثنائي. سيتم استخدام هذه المفاتيح العامة لتشفير المفتاح الخاص الذي تم إنشاؤه على الجهاز. الخطوات المحددة لإنشاء المفاتيح والتشفير هي كما يلي:

الخطوة 1. إنشاء زوج جلسة من رقم خاص (سري ، عشوائي) ومفتاح عمومي على الجهاز المحلي.


جيل المفتاح العام والخاص المحلي

يحدث تشفير المفتاح الخاص من الخطوة 1 باستخدام المفتاح العمومي من تكوين JSON

الخطوة 2. إنشاء زوج آخر من المفاتيح الخاصة والعامة.

الخطوة 3. باستخدام المفتاح الخاص من الخطوة 2 والمفتاح العمومي (قيمة مفتاح pk) ، يتم إنشاء مفتاح عمومي من JSON ، وبعد الحصول عليه ، يتم الحصول على مفتاح متماثل.


قم بإنشاء مفتاح متماثل باستخدام مفتاح مشترك

الخطوة 4. إنشاء الرابع 16 بت (ناقلات التهيئة).

الخطوة 5. تشفير المفتاح الخاص الذي تم إنشاؤه في الخطوة 1 باستخدام AES مع المفتاح والرابع ، والتي تم الحصول عليها خلال الخطوتين 3 و 4.

الخطوة 6. حساب CRC32 للمفتاح الخاص المشفر ، والتي تحولت في الخطوة 5.

الخطوة 7. إضافة IV و CRC32 إلى نهاية المخزن المؤقت الذي يحتوي على المفتاح الخاص المشفر من الخطوة 5.

الخطوة 8. حفظ المخزن المؤقت في الملف المرتبط بالإزاحة (وضع علامة "sk_key").


تشفير المفتاح الخاص من الخطوة 1 باستخدام المفاتيح العامة للمهاجم

تشفير المفتاح الخاص من الخطوة 1 باستخدام المفتاح العمومي الموجود في الملف الثنائي.

الخطوة 9. كرر الخطوات من 2 إلى 7 باستخدام مفتاح عمومي آخر تم تضمينه في الملف الثنائي في الخطوة 3.

الخطوة 10. حفظ المخزن المؤقت في ملف معين مع إزاحة في الذاكرة (علامة "0_key")
تتم كتابة sk_key و 0_key و pk_key إلى السجل وفقًا لذلك ، اعتمادًا على حقوق الوصول التي يتلقاها البرنامج ...

HKLM \ SOFTWARE \ recfg \ sk_key أو HKCU \ SOFTWARE \ recfg \ sk_key
HKLM \ SOFTWARE \ recfg \ 0_key أو HKCU \ SOFTWARE \ recfg \ 0_key
HKLM \ SOFTWARE \ recfg \ pk_key أو HKCU \ SOFTWARE \ recfg \ pk_key

المفتاح السري المشفر في السجل
جيل مفتاح للملفات الفردية مع Salsa20

الخطوة 11. إنشاء زوج جديد من المفتاح العام والخاص.

الخطوة 12. قم بإنشاء مفتاح مشترك باستخدام المفتاح العمومي للجلسة الذي تم إنشاؤه في الخطوة 2 وتجزئة للحصول على مفتاح التماثل التالي اللازم لإنشاء المفاتيح في Salsa20.

الخطوة 13. تثبيت مفتاح 256 بت (32 بايت) في Salsa20

الخطوة 14. إنشاء IV 8 بت لمفاتيح Salsa20

الخطوة 15. Salsa20 جيل المفتاح

الخطوة 16. استخدام Salsa20 key_state لتشفير ملفات المستخدم مع Salsa20.


Salsa20 جيل مفتاح لكل ملف
كرر الخطوات من 11 إلى 16 لكل ملف مشفر.

مثال على التشفير وفك التشفير


لفهم كيفية إنشاء المفاتيح ونقلها بشكل أفضل بين أجهزة الكمبيوتر الخاصة بالمهاجم والضحية ، تحتاج إلى فهم كيفية عمل خوارزمية Diffie Hellman - وهذا سهل التوضيح.

عملية التشفير



Diffie-Hellman Elliptic Curve Exchange (ECDH)


وصف مفصل لعملية التشفير في Sodinokibi

من أجل فك تشفير البيانات ، ستكون هناك حاجة إلى المفاتيح الخاصة للمهاجم. لكن لا يتم نشرها في أي مكان ، وبالتالي فإنه من المستحيل استعادة الملفات.

صورة
عملية فك التشفير (سر المهاجم هو مفتاحه الخاص)

صورة
العملية المبسطة لفك تشفير ملفات المستخدم موضحة أدناه.

ملف التشفير على محركات الأقراص الصلبة المحلية ومجلدات الشبكة


لتشفير ملفات المستخدم ، تستخدم Sodinokibi منافذ الإدخال / الإخراج ، وتطلق عدة تدفقات تشفير ، لكن لا تزيد عن ضعف عدد نوى المعالج على الجهاز ، وتربط هذه التدفقات مع منفذ I / O تم إنشاؤه خصيصًا. تستخدم مؤشرات الترابط هذه وظيفة GetQueuedCompletionStatus Win API لانتظار وصول الحزمة إلى منفذ الإدخال / الإخراج قبل بدء تشفير الملفات.

بمجرد إنشاء التدفقات وانتظر وصول حزم I / O ، يبدأ Sodinokibi في الفرز من خلال ملفات المستخدم على جميع محركات الأقراص المحلية وفي جميع مجلدات الشبكة ، باستثناء CDROM و RAMDISK وتعيينها لمنافذ إكمال الإدخال / الإخراج المقابلة. بالنسبة لجميع الملفات التي لا تندرج تحت قائمة الاستثناءات في أسماء المجلدات والملفات والإضافات ، يتم استدعاء وظيفة AddFileToIoCompletionPort ثم PostQueuedCompletionStatus هذا ينقل التنفيذ إلى دفق التشفير الذي ينتظر الحصول على معلومات حول منفذ إكمال الإدخال / الإخراج لبدء تشفير الملفات.

تقوم وظيفة AddFileToIoCompletionPort أيضًا بإنشاء مفتاح Salsa20 فريد لكل ملف ليتم تشفيره ، ويمرر مفتاح Salsa20 إلى دفق التشفير مع بيانات التعريف الأخرى التي يجب تسجيلها بعد التشفير باستخدام المعلمة lpOverlapped للدالة PostQueuedCompletionStatus Win API.

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

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

صورة

قائمة مجلدات الاستثناء

  • "$ windows. ~ bt"
  • «إنتل»
  • "ملفات البرنامج (x86)"
  • "ملفات البرنامج"
  • «MSOCACHE»
  • "$ recycle.bin"
  • "$ windows. ~ ws"
  • "متصفح Tor"
  • «التمهيد»
  • "معلومات وحدة تخزين النظام"
  • «Perflogs»
  • «جوجل»
  • "بيانات التطبيق"
  • «ويندوز»
  • «Programdata»
  • «Windows.old»
  • «APPDATA»
  • «موزيلا»
  • استثناءات الملف
  • «Bootfont.bin»
  • «الملف Boot.ini»
  • «NTUSER.DAT»
  • «Desktop.ini»
  • «Iconcache.db»
  • «NTLDR»
  • «Ntuser.dat.log»
  • «Thumbs.db»
  • «Bootsect.bak»
  • «Ntuser.ini»
  • «AUTORUN.INF»
  • استثناءات التمديد
  • «ثيمات و»
  • «LDF»
  • «قرار مجلس الأمن»
  • «ايسلندا»
  • "386"
  • «كمد»
  • «العاني»
  • «متقدم»
  • «الموضوع»
  • «أس»
  • «آر تي بي»
  • «Diagcfg»
  • «Msstyles»
  • «بن»
  • «HLP»
  • «SHS»
  • «DRV»
  • «Wpx»
  • «Deskthemepack»
  • «بات»
  • «رومية»
  • «ماجستير»
  • «LNK»
  • «الكابينة»
  • «SPL»
  • «PS1»
  • «جامعة ولاية ميشيغان»
  • «الغرفة الدولية»
  • «مفتاح»
  • «حركة مجتمع السلم»
  • «كوم»
  • «تميز الكلية»
  • «Diagpkg»
  • «NLS»
  • «Diagcab»
  • «إيكو»
  • «قفل»
  • «OCX»
  • «باسكال»
  • «الوغد»
  • «الجندي»
  • «وزارة الدفاع»
  • «هتا»
  • «إكس»
  • «ICNS»
  • «PRF»
  • «دلل»
  • «Nomedia»
  • «IDX»

يفترض دفق التشفير قراءة محتويات الملف ، والتشفير ، والكتابة مرة أخرى إلى نفس الملف ، وإضافة بيانات التعريف ، بما في ذلك المفتاح الخاص للجلسة المشفرة ، مع الجزء العمومي من ECDH لكل ملف وموجه تهيئة Salsa20 المستخدم لتشفير الملف.

بعد ذلك ، يعيد الدفق تسمية الملف ، مضيفًا الاسم الذي تم إنشاؤه عشوائيًا. يتم تشفير الملفات باستخدام خوارزمية Salsa20 باستخدام دالة EncryptAndWrite.

التالي مثال عن استدعاء الدالة EncryptingThreadRoutine.

صورة
هيكل الملف بعد التشفير

صورة
هيكل ملف مشفر

نشاط الشبكة


بعد اكتمال عملية التشفير ، تقوم رانسومواري بإعداد البيانات لإرسالها إلى خادم الإدارة. تتضمن البيانات مجالات متعددة من تكوين JSON ومعلومات النظام ومفاتيح التشفير. تتم كتابة البيانات المعدة أيضًا إلى السجل تحت المفتاح "[HKLM | HKCU] \ SOFTWARE \ recfg \ stat" قبل أن يتم تشفيرها بواسطة AES وإرسالها إلى خادم المهاجم ...

صورة

بيانات الشبكة



يتكون اسم المجال من: sochi-okna23 [.] Ru + جزء من العنوان 1

  • «الفسفور الابيض بين المحتوى»
  • «ثابت»
  • «المحتوى»
  • «تضمين»
  • «التحميلات»
  • «الأخبار»
  • «البيانات»
  • «مشرف»

وجزء من العنوان 2

  • «صور»
  • «صور»
  • «الصورة»
  • «الحرارة»
  • «تمة»
  • «الجرافيك»
  • «الأصول»
  • «صور»
  • «لعبة»

صورة
عنوان URL الجيل

طلب فدية


يحتوي Sodinokibi على قالب لإنشاء طلب إعادة شراء ، مما يترك مجالًا لبيانات المستخدم. وهي تحل تلقائيًا محل الاسم ومعرف المستخدم (معرف المستخدم - الوصف أعلاه) والمفتاح. يتم وضع طلب الفدية في كل دليل ، دون حساب الاستثناءات.

صورة

فك التشفير


صورة

لا توجد وسيلة مجانية لفك تشفير البيانات الخاصة بهذا الفدية ، والطريقة الوحيدة لاستعادة البيانات هي استخدام خدمة فك التشفير التي يوفرها المهاجم. انتقل إليها باتباع الإرشادات الواردة في طلب فدية ...

صورة

استنتاج


نوصيك باستخدام حماية متقدمة من برامج مكافحة الفدية والحفاظ على تحديث أنظمة مكافحة الفيروسات. تحتوي جميع منتجات Acronis على حماية معززة للفدية ويمكنها حمايتك من مثل هذا الهجوم ، مما يقلل من خطر فقد البيانات.

الحماية السيبرانية موجودة في حل Acronis True Image 2019 الشخصي ، وكذلك في أنظمة عمل Acronis Backup ، التي ترافقها وحدة مكافحة البرامج الضارة على أساس الذكاء الاصطناعي يسمى Acronis Active Protection. بفضل هذا ، يستطيع كلا النظامين حماية المستخدمين من Sodinokibi.

Source: https://habr.com/ru/post/ar462567/


All Articles