كشفت تقارير أمنية حديثة عن حملة هجوم سلسلة توريد جديدة تستهدف مطوري ASP.NET، حيث تم نشر أربعة حزم NuGet خبيثة مصممة لسرقة بيانات اعتماد تسجيل الدخول وزرع أبواب خلفية مستمرة داخل تطبيقات الويب.
تم نشر هذه الحزم، التي تحمل أسماء NCryptYo، DOMOAuth2_، IRAOAuth2.0، و SimpleWriter_، بين 12 و 21 أغسطس 2024، من قبل جهة تهديد تعمل تحت اسم المستخدم “hamzazaheer”. وقد حققت هذه الحزم مجتمعة أكثر من 4,500 عملية تنزيل، مما يشير إلى انتشار واسع النطاق.
تعتمد الهجمة على الخداع المتعمد. حزمة NCryptYo تتنكر كمكتبة تشفير، حيث تستغل أخطاء إملائية في أسماء الحزم الشائعة مثل NCrypto. يهدف اسم ملف DLL الخاص بها، NCrypt.dll، إلى محاكاة مزود التشفير الأصلي لنظام ويندوز CNG، كما أن مساحة الاسم الخاصة بها تحاكي واجهات برمجة تطبيقات التشفير الخاصة بمايكروسوفت.
الأخطر من ذلك، أن الحزمة تقوم بتشغيل مُنشئ ثابت (static constructor) فور تحميل التجميع، وذلك قبل أن يقوم المطور باستدعاء أي دالة. هذا يسمح بتشغيل وكيل خفي بصمت على منفذ localhost 7152، والذي يقوم بإعادة توجيه حركة المرور إلى خادم خارجي يتحكم فيه المهاجم.
هجوم NuGet الخبيث يستهدف مطوري ASP.NET
تمكن باحثو Socket.dev من تحديد الحملة بالكامل عن طريق تتبع البنية التحتية المشتركة عبر الحزم الأربع. وأشاروا إلى أن حزم DOMOAuth2_، IRAOAuth2.0، و SimpleWriter_ تحمل جميعها رمز مصادقة ثابت مشفر بنفس الطريقة باستخدام ضغط GZip واستبدالات Base64 مخصصة، مما يؤكد أنها من نفس الجهة المنفذة.
أظهر تحليل VirusTotal أن بائعًا أمنيًا واحدًا فقط من أصل 72 قام بالإبلاغ عن NCrypt.dll، مما يكشف عن مدى فعالية التعتيم في إخفاء البرمجيات الخبيثة عن أدوات الكشف القياسية.
بمجرد تفعيلها، تقوم حزم DOMOAuth2_ و IRAOAuth2.0 بجمع بيانات ASP.NET Identity بشكل صامت، بما في ذلك معرفات حسابات المستخدمين، وتعيينات الأدوار، وربط الأذونات. يتم بعد ذلك توجيه هذه البيانات إلى خادم المهاجم عبر الوكيل المحلي.
أما حزمة SimpleWriter_، التي تتظاهر بأنها أداة لتحويل ملفات PDF، فتقوم بكتابة ملفات يتحكم فيها المهاجم على القرص وتشغيل عمليات مخفية بدون نافذة مرئية. الهدف الحقيقي ليس فقط محطة عمل المطور، بل كل تطبيق إنتاجي يتم نشره للمستخدمين النهائيين.
آلية الإصابة الأساسية: اختطاف المترجم في الوقت المناسب (JIT Hooking)
تستخدم حزمة NCryptYo تقنية تُعرف باسم اختطاف المترجم في الوقت المناسب (JIT compiler hijacking) لإبقاء سلوكها الحقيقي مخفيًا عن أدوات الفحص الأمني. يقوم إطار عمل .NET عادةً بترجمة الدوال قبل تشغيلها مباشرة. في هذه الحالة، تستبدل الحزمة هذه العملية بخطاف خاص بها، مما يؤدي إلى فك تشفير الكود الخبيث فقط عند لحظة التنفيذ، وبالتالي يصبح غير مرئي للتحليل الثابت.
الملف DLL محمي بتعتيم .NET Reactor، ويتضمن مؤقت انتهاء صلاحية لمدة 14 يومًا وفحوصات مضادة للتصحيح. يتم تضمين خمسة موارد مشفرة بالداخل، أكبرها عبارة عن حمولة بحجم 126 كيلوبايت مسؤولة عن بناء نفق الوكيل المخفي إلى خادم المهاجم الخارجي.
ينصح المطورون بالتحقق من أسماء الحزم، وهويات المؤلفين، وتاريخ التنزيلات قبل تثبيت أي مكتبة طرف ثالث، ومراقبة حركة المرور على منافذ localhost غير العادية. كما يُنصح فرق الأمن بتمكين عمليات مسح تلقائية لخط أنابيب CI/CD التي تتحقق من وجود علامات التعتيم، وسوء استخدام المنشئات الثابتة، والحمولات المشفرة المضمنة قبل إدخال أي حزمة في عملية بناء إنتاجية.

