
خوارزمية فك تشفير ملفات Hive v5
كان العمل المنجز خلال الأشهر القليلة الماضية ضروريًا لكشف آلية تشفير الملفات الخبيثة في Hive v5-5.2. وقد قُسّم العمل إلى جزأين:
أود أن أشكر العظيم @rivitna على الدعم والحوار والنصائح خلال شهور العمل هذه! يُرجى الاطلاع على مستودع rivitna على GitHub المليء بمعلومات مفيدة حول برنامج الفدية Hive والمزيد.
ستجد في ملف القراءة هذا بعض المعلومات حول خوارزمية فك تشفير الملفات، مع إحالتك إلى كود PoC للحصول على صورة أكثر اكتمالًا عن طريقة عمله. تدفق المفاتيح هو نص صريح مشفَّر. النص الصريح هو مجموعة من 0xA00000 بايت، أُضيفت إليها أول 0x2FFF00 بايت، ليصبح المجموع 0xCFFF00 بايت. أُنشئت هذه البايتات باستخدام الخوارزمية الضعيفة التي سبقت مناقشتها في الجزء الأول الذي صدر في يوليو 2022. فيما يلي مثال على نص صريح:

عينة Hive التي حُلِّلت وأُشير إليها في هذا المستند اختيرت من هذه القائمة التي أنشأها @rivitna، الذي أتوجه إليه بأحر شكري. لإدراك مدى تعقيد برامج الفدية، يُرجى إلقاء نظرة على هذا التحليل المنشور من مركز Microsoft للاستخبارات الأمنية (MSTIC).
يستخدم برنامج الفدية Hive النص الصريح (وهو تدفق مفاتيح مفكوك) عند تشفير كل ملف. عند تشفير ملف، يحسب برنامج الفدية Hive عددين صحيحين يشيران إلى مواضع دقيقة في النص الصريح (إزاحات) ليُستخدما في تشفير الملف وفق المعادلة التالية:

حيث c = i % 0x2FFF00 و d = i % 0x2FFD00، مع i كعداد بايتات.
العمليات الأولية قبل كتابة الملف هي:

في هذه الحالة أيضًا، يلعب النص الصريح دورًا أساسيًا. فهو يُستخدم من أجل:
غير أن الإزاحة الأولى تُشفَّر باستخدام موضع ثابت من النص الصريح، وهي مختلفة لكل عينة من عينات Hive 5/5.1/5.2. نوع من القيمة السحرية. في العديد من القطع الأثرية لـ Hive 5/5.1، تظهر هذه القيمة السحرية صراحةً داخل مرجع ذاكرة، كما في هذه الحالة 0x98072A:

أو هذه الحالة 0x7539D:

لكن في الدليل التالي، تختلف حلقة for قليلًا وكُتبت بطريقة لا تُظهر صراحةً القيمة السحرية التي نحتاج إلى تحديدها. وهذا يخص أثرًا يعود إلى Hive 5.2:

في هذه الحالة، يمكن استخدام دالة القوة العمياء للإزاحة الموجودة في الأداة المُصدَرة، باستخدام ملف بامتداد معروف وتدفق المفاتيح المفكوك المرتبط به. وباستخدام ترويسة الملف المشفَّر وترويسة الملف غير المشفَّر، يمكن معرفة الإزاحة التي يجب أن يبدأ منها مفكك التشفير لفك تشفير الملف.
يمكن أن يكون وضع تشفير الملف بإحدى قيمتين: 0xFB أو 0xFF
لمزيد من المعلومات حول حساب حجم الكتل غير المشفَّرة وإزاحة النص الصريح، يُرجى الرجوع إلى كود PoC.
يوفّر البرنامج خيارين:

https://github.com/rivitna/Malware/blob/main/Hive/Hive_samples.txt