إلى الخلف
ذكاء البرامج الضارة
جدول المحتوى

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

الفئة:

ذكاء البرامج الضارة

النوع/العائلة:

رانسوم وير

الصناعة:

متعدد

المنطقة:

عالمي

ما هو برنامج بلوسكاي رانسوم وير؟

BlueSky Ransomware هو برنامج ضار حديث يستخدم تقنيات متقدمة للتهرب من الدفاعات الأمنية. يستهدف في الغالب مضيفي Windows ويستخدم نموذج Windows متعدد مؤشرات الترابط للتشفير السريع. ظهرت لأول مرة في أواخر يونيو 2022 ولوحظ انتشارها عبر رسائل البريد الإلكتروني المخادعة ومواقع التصيد الاحتيالي والتنزيلات المحصنة.

يغطي هذا التحليل العميق لـ BlueSky Ransomware الجوانب الفنية التالية:

  • إجراءات تصعيد الامتيازات
  • إصرار
  • آلية التشفير
  • تقنيات التهرب

المرحلة الأولية

  • يتم تحميل الوحدات المطلوبة لبرنامج الفدية ديناميكيًا ويتم تخزين عناوين الوظائف المثيرة للاهتمام في مصفوفة لاستخدامها لاحقًا.
  • تم حل عناوين قائمة واجهات برمجة التطبيقات التالية:
واجهات برمجة التطبيقات المخزنةNtdll.rtl قم بتخصيص نواة الملفات 32. إنشاء ملف Kernel 32.تعيين مؤشر الملف Kernel 32.lstcmpwadvapi 32.cryptgen عشوائي Ntdll. البحث عن نواة الملف 32. احصل على حجم الملف exkernel 32.تعيين سمات الملف kernel 32. تعيين سمات الملف kernel 32. افتح العمليات HLWAPI.path دمج النواة الجديدة 32. ابحث عن الملف الأول exwkernel 32. اقرأ نواة الملفات 32. الحصول على حالة الإكمال في قائمة الانتظار Kernel 32. نقل الملف باستخدام نواة التقدم 32. إنهاء العمليات HLWAPI. المسار إزالة الامتداد wkernel 32. ابحث عن الملف التالي Wkernel 32. اكتب نواة الملف 32. نواة حالة الإكمال في قائمة الانتظار الأخيرة Kernel 32.lstrcatwkernel 32. انتظر كائنًا واحدًا
  • بعد تحميل المكتبات المطلوبة، تستمر برامج الفدية في تنفيذ المهام التالية:
    • يتحقق من أن عملية التشغيل هي 32 بت عبر عملية كيرنيل 32. آي إس WOW64
    • يقوم بفك تشفير السلاسل
    • اضبط امتياز العملية إلى SE_DEBUG بواسطة امتياز Ntdll.rtlad العادل
    • يسترد ما يلي:
      • دليل الآلة من البرامج\\ ميكروسوفت\\ التشفير
      • معرف المنتج الرقمي و تاريخ التثبيت من البرامج\\ ميكروسوفت\\ ويندوز NT\\ الإصدار الحالي
    • يخفي الخيط الرئيسي من مصحح الأخطاء عن طريق الاتصال موضوع معلومات Ntdll.zwset عن طريق تمرير ThreadHide من مصحح الأخطاء (0x11) كفئة معلومات الموضوع
  • تقوم برامج الفدية بتحديث الحالة على أنها «مكتملة» بعد المرحلة الأولية ويتم قفل بيانات المستخدم.
Locking of user data after initial phase
قفل بيانات المستخدم بعد المرحلة الأولية

 

جيل موتكس

يقوم برنامج الفدية بإنشاء موتكس عالمي عن طريق الاتصال Kernel 32. قم بإنشاء Mutexa API.

Mutex Creation
ابتكار موتكس

 

فك تشفير السلسلة

يقوم برنامج الفدية بفك تشفير جميع السلاسل في وقت التشغيل. فيما يلي العديد من الإضافات التي تم تجنبها أثناء القفل، وإضافات بيانات المستخدم المقفلة، وأسماء الأدلة لتعداد الملفات.

الإضافات المدرجة في القائمة السوداء

يترك برنامج الفدية الملفات ذات الامتدادات المدرجة في القائمة السوداء التالية من القفل.

الإضافات المدرجة في القائمة السوداء«pdf» «icl» «bin» «spl» «diagcab» «ini» «theme» «hta» «scr» «386» «help» «ps1" «الرمز» «الرموز» «rtp» «diagpkg» «icl» «cmd» «shs» «msu» «القفل» «pdf» «msc» «rps» «rp» «386" «واجهة المستخدم» «drv» «الصور» «ocx» «dll» «sys» «msstyles» «cmd» «adv» «wpx» «key» «mpa» «bluesky» «mod» «cab» «واجهة المستخدم» «السمة» «الحقيبة» «الوسائط» «msi» «nls» «adv» «msi» «rom» «com» «cpl» «idx» «diagcfg» exe» «رابط»

ملحقات بيانات المستخدم

يتم استهداف الملفات ذات ملحقات بيانات المستخدم التالية على وجه التحديد.

ملحقات بيانات المستخدم«cop» «dbs» «mrg» «qry» «wdb» «sqlite3» «dbc» «dbt» «mwb» «sdb» «db» «sqlitedb» «mdf» «dbc» «md» «sqlite» «db-shm» «dbc» «dbf» «frm» «nm» pdf» «tmd» «accdb» «db-wal»

أسماء الدليل

تستخدم برامج الفدية أسماء الأدلة هذه لغرض تعداد الملفات.

أسماء الدليل«$recycle.bin» «boot» «windows» «perflogs» «بيانات التطبيق» «ملفات البرنامج» «windows.old» «جميع المستخدمين» المستخدمين» «بيانات البرنامج» «$windows. ~ws» «معلومات وحدة تخزين النظام» «$windows. ~bt» «ملفات البرنامج (x86)»

التشفير المسبق

خوارزمية التشفير

سياق التشفير هو نوع من البيانات المصادق الإضافية التي تتكون من أزواج قيمة الاسم العشوائية غير السرية. أثناء مرحلة التهيئة، يكتسب برنامج الفدية سياق التشفير من advapi32.crypt: اكتساب السياق API. موفر التشفير الذي تستخدمه البرامج الضارة هو «موفر التشفير المحسن من Microsoft v1.0" ونظام التشفير المحدد هو RSA.

Acquiring cryptographic context
الحصول على سياق التشفير

بيانات الاسترداد

قبل تنفيذ وظيفة التشفير، يقوم برنامج الفدية بكتابة البيانات اللازمة لاستعادة الملفات المقفلة في السجل. تتم كتابة البيانات التالية:

  • فقاعة الاسترداد
  • المفتاح العام X25519
Writing data needed for recovery of locked files
كتابة البيانات اللازمة لاستعادة الملفات المقفلة

 

Updated view of the registry
عرض محدث للسجل

 

مذكرة الفدية

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

Ransom note generation
إنشاء مذكرة الفدية

 

يتم تنفيذ الخطوات التالية:

  • يتم إنشاء معرف استرداد عشوائي وفريد للضحية وتخزينه في مخزن الكومة المؤقت.
  • يقوم برنامج الفدية Bluesky بإنشاء مذكرة فدية بتنسيقات «.txt» و «.html».
  • يتم تخصيص كتلتين من 1000 (4096) بايت من ذاكرة الكومة للاحتفاظ بملاحظات الفدية النهائية.
  • يتم تخصيص مخزنين مؤقتين (txt_ransom_note_buffer و html_ransom_note_buffer) للاحتفاظ بالملاحظات المشفرة المستردة من الملف الثنائي.
  • يتم استخدام محدد سلسلة تنسيق المكان كعنصر نائب لمعرف الاسترداد الذي تم إنشاؤه في الخطوة الأولى.
  • الوظيفة»فرعية 2866e0» مسؤول عن تنسيق الملاحظة عن طريق استبدال «%s» بقيمة معرف الاسترداد التي يبلغ طولها 242 حرفًا.
  • يتم تخزين النتيجة بعد ذلك في الذاكرة، ليتم استخدامها لاحقًا بواسطة الوظيفة المسؤولة عن كتابة الملاحظة إلى نظام الملفات.
Decoded note in the buffer
ملاحظة مشفرة في المخزن المؤقت

إنهاء العملية

بعد إنشاء مذكرة الفدية، يقوم برنامج الفدية بتعداد العمليات التي تعمل على النظام المخترق. ال معلومات نظام الاستعلام Ntdll.zw يتم استدعاء API عن طريق تمرير فئة SystemInformation (0x5) للحصول على قائمة العمليات من النظام. يتم استخدام القائمة بواسطة برنامج الفدية لقتل العمليات بشكل انتقائي.

Enumeration of processes running on the compromised system
تعداد العمليات التي تعمل على النظام المخترق

 

Process Termination Task
مهمة إنهاء العملية

 

يتم تنفيذ الخطوات التالية لإنهاء العمليات الجارية:

  • يبدأ برنامج الفدية بتحليل بنية العملية لاسترداد اسم الصورة واستخداماتها shlwapi.path إزالة الامتداد W API لإزالة الامتداد (.exe) من الاسم.
  • بمجرد استرداد اسم العملية بدون ملحق، تستدعي برامج الفدية الفرع الفرعي 2869b0 لحساب حجم اسم العملية.
  • بعد ذلك يتم إجراء مكالمة إلى الرقم الفرعي 2868 درجة مئوية لتحويل الأحرف إلى أحرف صغيرة للتوحيد.
  • أخيرًا، يتم استخدام ترميز البايت المخصص لتحويل السلسلة إلى قيمة سداسية عشرية.
  • يتم فحص القيمة السداسية التي تم إنشاؤها مقابل مجموعة من القيم المشفرة للعمليات التي سيتم إنهاؤها.
Process names the threat actor wants to terminate
أسماء العمليات التي يريد ممثل التهديد إنهاءها

 

  • في المرحلة الأولية، يتم التعامل مع «Shell_Traywnd»، والذي يتم الحصول عليه باستخدام المستخدم 32. ابحث عن النافذة A، يتم تمريره إلى احصل على معرف عملية مؤشر ترابط Windows API من أجل الحصول على معرف العملية الخاص بـ explorer.exe. (explorer.exe مسؤولة عن إنشاء «Shell_Traywnd»). يتم تخزين معرف العملية في الذاكرة.
  • في حالة وجود تطابق، يتم تمرير معرف العملية المستهدفة، الذي تم الحصول عليه في المرحلة الأولية، إلى الرقم الفرعي 2910f0.
  • تتحقق البرامج الضارة مما إذا كان معرف العملية خاصًا بها أو explorer.exe. بعد الفحص، يتم استرداد مقبض المعالجة عبر عملية كيرنيل 32 المفتوحة API.
  • يتم إنهاء العمليات «غير الحرجة» فقط لمنع التحقق من الأخطاء (شاشة الموت الزرقاء). إذا لم يكن مقبض العملية الذي تم تمريره حرجًا، فسيتم إنهاؤه عبر Kernel 32. إنهاء العملية.
The function sub_2910F0
الدالة sub_2910f0

 

  • مكالمات برامج الفدية عملية معلومات الاستعلام عن Ntdll.nt من خلال اجتياز ProcessBreakOnTerination (0x1d) كفئة المعلومات لتحديد العمليات الحرجة.
Call to NtQueryInformationProcess Class
اتصل بفئة عملية معلومات NTQuery

 

سلة المحذوفات الفارغة

بعد إنهاء العملية، يقوم برنامج الفدية بإفراغ سلة المحذوفات عن طريق الاتصال آلة إعادة التدوير الفارغة من Shell32.she.

Emptying the recycle bin
تفريغ سلة المحذوفات

 

التشفير

نموذج الترابط: منافذ إكمال Windows IO باختصار

  • يقوم برنامج Bluesky ransomware بإجراء التشفير من خلال استخدام منافذ إكمال IO. توفر منافذ إكمال الإدخال/الإخراج نموذجًا فعالاً للترابط لمعالجة العديد من طلبات الإدخال والإخراج غير المتزامن (I/O) على نظام متعدد المعالجات.
Threading model using the IO ports
نموذج الترابط باستخدام منافذ الإدخال/الإخراج

 

  • يقوم الخيط الرئيسي بإنشاء منفذ إكمال IO عبر إنشاء منفذ إكمال iOS. يمكن ربط المنفذ الذي تم إنشاؤه بالعديد من مقابض الملفات. عند اكتمال عملية الإدخال والإخراج غير المتزامن على أحد مقابض الملفات، يتم وضع حزمة إكمال الإدخال/الإخراج في قائمة الانتظار بترتيب FIFO إلى المنفذ المقترن.
  • يقوم مؤشر ترابط العامل بإجراء مكالمة إلى حالة إكمال النشر في قائمة الانتظار لتجميع البيانات المرتبطة. في حالة برامج الفدية، ستكون البيانات هي المسار المطلق لملفات المستخدم التي تنتظر في قائمة الانتظار ليتم تشفيرها.
  • ينفذ خيط عامل آخر احصل على حالة الإكمال في قائمة الانتظار لإلغاء قائمة المحتويات من قائمة الانتظار الرئيسية. عادةً، في برامج الفدية، يكون هذا الموضوع مسؤولاً عن إجراء التشفير وإنشاء مذكرة الفدية.
  • يحتوي القسم التالي على وصف متعمق لكل وظيفة من الوظائف المذكورة أعلاه.

إنشاء منفذ إكمال iOS

تتضمن المكالمة إلى CreateIOCompletionPort الخطوات التالية:

  • يسترد الخيط الرئيسي عدد المعالجات من بنية PEB (كتلة بيئة العملية).
  • مكالمة إلى إنشاء منفذ إكمال iOS يتم إجراؤه عن طريق تمرير عدد المعالجات كقيمة معلمة NumberConcurrentThreads.
  • يتم إنشاء سلاسل عمل متعددة عن طريق الاتصال كيرنيل 32. إنشاء موضوع.
  • بالنسبة لكل مؤشر ترابط، يتم تعيين قناع التقارب (قناع بت يشير إلى المعالج الذي يجب تشغيل مؤشر الترابط عليه) عن طريق الاتصال قناع تقارب الخيط Kernel 32.
  • يقوم الخيط الرئيسي بإجراء تعداد محرك الأقراص الأساسي والمكالمات. حالة إكمال النشر في قائمة الانتظار.
Calling CreatIoCompletionPort
استدعاء منفذ إكمال Creatio/

 

Retrieving processor count from PEB
استرداد عدد المعالجات من PEB

 

PostQueuedCompletionStatus Function
وظيفة حالة إكمال قائمة الانتظار

 

يتم استخدام واجهات برمجة التطبيقات التالية لتعداد محركات الأقراص على النظام:

  • Kernel 32. احصل على سلسلة القيادة المنطقية SW
  • Kernel 32. احصل على نوع محرك الأقراص W

يتم إجراء تعداد إضافي للملفات عن طريق إنشاء مؤشر ترابط عامل لـ حالة إكمال النشر في قائمة الانتظار.

Creation of worker thread for PostQueuedCompletionStatus
إنشاء مؤشر ترابط عامل لـ PostQueuedCompletionStatus

 

مكالمات الموضوع الرئيسي القائمة المفتوحة لـ mpr.wnet لتعداد موارد الشبكة وإنشاء مؤشر ترابط عامل كما هو مذكور أعلاه يقوم بإجراء استدعاء PostQueuedCompletionStatus.

Calling mpr.WNetOpenEnumW function
استدعاء وظيفة MPR.wnetOpenEnumw

 

موضوع العامل: حالة إكمال البريد في قائمة الانتظار

The worker thread that performs the PostQueuedCompletionStatus
مؤشر الترابط العامل الذي يقوم بتنفيذ PostQueuedCompletionStatus

 

يؤدي الموضوع الذي تم إنشاؤه حديثًا لـ PostQueuedCompletionStatus إلى ما يلي:

  • يتم تعداد الملفات عبر كيرنيل 32. ابحث عن الملف الأول EXW و Kernel 32. ابحث عن الملف التالي.
  • إذا كان الدليل، يتم استدعاء دالة thread بشكل متكرر لإجراء تعداد الملفات.
  • إذا كان ملف مستخدم، فسيتم وضع المسار المطلق في قائمة انتظار الإكمال عبر حالة إكمال النشر في قائمة الانتظار مكالمة.
  • مؤشر الترابط العامل هذا مسؤول عن جمع الملفات للتشفير.

موضوع العامل: احصل على حالة الإكمال في قائمة الانتظار

مؤشر الترابط العامل هذا مسؤول عن القيام بالقفل الفعلي لملفات المستخدم. يخفي برنامج الفدية هذا الموضوع من مصحح الأخطاء عبر موضوع معلومات Ntdll.zwset عن طريق تمرير ThreadHideFromDebugger كفئة معلومات الموضوع.

Calling ntdll.ZwSetInformationThread function
استدعاء وظيفة مؤشر ترابط معلومات Ntdll.zwset

 

يقوم مؤشر الترابط بفك تشفير امتداد الملف «.bluesky» ويستمر في تنفيذ التشفير. ال Kernel 32. احصل على حالة الإكمال في قائمة الانتظار يتم استدعاؤه في حلقة لا نهائية لاسترداد المسار المطلق لبيانات المستخدم.

Decoding file extension “.bluesky”
ملحق ملف فك التشفير «.bluesky»

 

ال فرعي 288780 الوظيفة مسؤولة عن تشفير البيانات. يتحقق مؤشر الترابط مما إذا كان العنصر الذي تم إلغاء وضعه في قائمة الانتظار عبارة عن دليل أو ملف.

  • إذا كان ملفًا، فسينتقل إلى تشفير البيانات باستخدام واجهات برمجة التطبيقات التالية:
    • كيرنيل 32. إنشاء ملف
    • Kernel 32. تعيين مؤشر الملف
    • كيرنيل 32. اقرأ الملف
    • كيرنيل 32. اكتب ملف
  • إذا كان العنصر عبارة عن دليل، إذن المادة الفرعية 28 من EA0 يتم تنفيذه لتفريغ مذكرة الفدية. يتم فك تشفير سلاسل اسم الملف ديناميكيًا.
File name strings being decoded
يتم فك تشفير سلاسل أسماء الملفات

 

Execution of sub_28EDA0
تنفيذ البرنامج الفرعي 28eda0

 

تتم كتابة محتوى الملاحظة الذي تم إنشاؤه بواسطة برنامج الفدية على القرص عن طريق الاتصال بـ:

  • كيرنيل 32. إنشاء ملف
  • كيرنيل 32. اكتب ملف
Ransom note being written on the disk
ملاحظة الفدية التي تتم كتابتها على القرص

التشفير اللاحق

بمجرد تأمين بيانات المستخدم بنجاح، يقوم برنامج الفدية بإجراء العمليات التالية:

  • يقوم بإصدار mutex الذي تم إنشاؤه في المرحلة الأولية
  • يضبط حالة الخيط إلى ES_continous
  • يدمر الكومة المخصصة
  • يخرج من العملية عبر عملية Kernel32.exit
Post encryption functions
وظائف ما بعد التشفير

 

مؤشرات التسوية (IOCs)

MD5961 fa85207 cdc 4 ef86a076 bbff07a40953 c95a953c95 a43491832 f50e96327 c1d23d405ef5cf 7dd67 af3650824 cbc4999efec04688 a493077 ca9786243 c25656 d8a44d2ed34b5 fe7c8e7c8 e9848974 fba 78 de7f3f3a0bec7 d502d4

الملحق

Ransom Note in .txt format
ملاحظة الفدية بصيغة .txt

 

Ransom Note in .html format
ملاحظة الفدية بتنسيق.html

 

لم يتم العثور على أية عناصر.

مدونات ذات صلة