طوّر قراصنة محترفون نسخة جديدة من برامج الفدية الخبيثة المعروفة باسم “PDFly”، حيث تستخدم هذه النسخة تقنيات متطورة تسمح لها بتجاوز وسائل الكشف التقليدية. تعتمد هذه البرمجية الخبيثة على نسخة معدلة من أداة PyInstaller، مما يعيق عمل أدوات التحليل القياسية ويجعل فحص شيفرتها البرمجية مهمة صعبة.
وتكمن الصعوبة في التغييرات التي أدخلها المهاجمون على المعرفات الرئيسية، بالإضافة إلى تشفير البايتات الخاصة بلغة بايثون بطبقات متعددة. هذا يتطلب من محللي الأمن استثمار وقت وجهد في الهندسة العكسية لعملية فك التشفير.
مواجهات تقنية جديدة مع PDFly Variant
ظهرت برمجية PDFly للمرة الأولى عندما أشار إليها باحث أمني عبر منصات التواصل الاجتماعي. لاحقاً، تم اكتشاف عينة مشابهة باسم PDFClick، مما يشير إلى أن المهاجمين يعملون بجد على تطوير هذه التقنية. تشترك كلتا العينتين في استراتيجية التعديل الأساسية، مما يجعلهما جزءاً من حملة أوسع للتهرب من الاكتشاف.
تحتوي النسخة المعدلة من PyInstaller على سلاسل نصية تالفة وتستخدم قيمة “سحرية” مخصصة تختلف عن التطبيقات القياسية. هذا الاختلاف يمنع الأدوات الآلية مثل PyInstxtractor من التعرف على البنية الداخلية للملف.
وفقاً لمحللي Samplepedia، تم التعرف على مخطط التشفير بعد تحقيق تفصيلي في مكونات البرمجية الخبيثة الداخلية. عندما فشلت أدوات الاستخراج القياسية في معالجة الملف التنفيذي، اضطر الباحثون إلى فحص الملف باستخدام أدوات التفكيك لتحديد العناصر المعدلة.
وكشف التحقيق أن عملية التشفير لم تكن مدمجة في PyInstaller نفسه، بل وجدت في ملفات تشغيل منفصلة تتولى استخراج الأرشيفات أثناء التنفيذ. اعتمد مطورو البرمجيات الخبيثة على خوارزمية تشفير معقدة لحماية محتويات أرشيف PYZ من التحليل.
بعد تعديل سكربت PyInstxtractor للتعرف على القيمة السحرية المخصصة وإزالة فحوصات التحقق، وجد الباحثون أن الملفات المستخرجة لا تزال مشفرة. يشير هذا إلى الحاجة إلى فهم أعمق لطريقة عمل التشفير.
عملية فك التشفير والتنفيذ التقني
تتبع خوارزمية التشفير تسلسلاً محدداً يجب عكسه للوصول إلى الشيفرة الخبيثة. أولاً، تخضع البيانات المؤرشفة لعملية فك تشفير XOR باستخدام مفتاح مكون من 13 بايت يسمى SCbZtkeMKAvyU. بعد ذلك، تمر النتيجة بعملية فك ضغط zlib لاستعادة البنية الأصلية للملف.
يتم تطبيق عملية XOR ثانية باستخدام مفتاح مكون من 7 بايتات يسمى KYFrLmy لمزيد من إخفاء البيانات. أخيراً، يتم عكس البايتات قبل أن تقوم وحدة `marshal` في بايثون بمعالجتها إلى كائنات شيفرة قابلة للتنفيذ.
وقد طور باحثو الأمن أداة استخراج عامة للتعامل مع سلالات متعددة ذات مفاتيح تشفير مختلفة. تبحث الأداة تلقائياً عن هياكل “سحرية” صالحة في تذييل الملف PE وتتحقق منها عن طريق فحص طول الحزمة، وإزاحة جدول المحتويات، وحقول إصدار بايثون. بمجرد تحديد الموقع، تقوم الأداة بتحليل البايتات الموجودة في pyimod01_archive.pyc لاستخراج مفاتيح XOR من تعبيرات المولد داخل فئة ZlibArchiveReader، مما يسمح بفك تشفير العينات المستقبلية تلقائياً.

