كشفت حملة برمجية خبيثة متطورة تستهدف منظومة npm عن آلية اكتشاف ذكية تفصل بين المستخدمين العاديين وباحثي الأمن. تهدف هذه الاستراتيجية المبتكرة إلى تمكين المهاجمين من إيصال محتوى ضار بدقة أعلى مع تفادي آليات الحماية.
يندرج هذا الهجوم ضمن سلسلة هجمات سلسلة التوريد، حيث قام المهاجم، الذي يعمل تحت اسم “dino_reborn”، بإنشاء سبع حزم npm خبيثة. صُممت هذه الحزم لتوجيه المستخدمين نحو مواقع احتيال متعلقة بالعملات المشفرة، مع التركيز على التخفي من أنظمة الكشف.
تُمثل هذه العملية تطوراً جديداً في مجال الهجمات السيبرانية، إذ تجمع بين تقنية إخفاء حركة المرور (traffic cloaking) وتقنيات التخفي المعتمدة على المتصفح لتقديم محتوى خبيث مستهدف بدقة.
حملة برمجية خبيثة معتمدة على npm تحاكي الضحايا وتخدع الباحثين
تتضمن الحزم الملوثة التي استُخدمت في هذه الحملة كلاً من: signals-embed، dsidospsodlks، applicationooks21، application-phskck، integrator-filescrypt2025، integrator-2829، و integrator-2830. قامت هذه الحزم بنشر شيفرة برمجية خبيثة بلغ حجمها 39 كيلوبايت.
عند زيارة المستخدمين للمواقع التي تنشرها هذه الحزم، يقوم البرنامج الخبيث بتحليل سلوكهم وخصائص أجهزتهم تلقائياً لتحديد مستوى التهديد. بناءً على هذا التصنيف، يقدم المهاجم تجارب مختلفة تماماً.
يواجه الضحايا واجهة تشبه اختبار CAPTCHA للاحتيال، تدفعهم نحو وجهات خبيثة. في المقابل، يرى باحثو الأمن صفحات بيضاء فارغة تخفي الطبيعة الحقيقية للهجوم، مما يمنعهم من اكتشاف المحتوى الضار.
تحديد هوية المهاجم والبنية التحتية
تمكن محللو الأمن في Socket.dev من توثيق هذه الحملة المعقدة بعد اكتشاف البنية التحتية المترابطة التي تربط جميع الحزم بمهاجم واحد. تبع الفريق البريد الإلكتروني المستخدم لإنشاء الحزم: geneboo@proton[.]me.
اكتشف الباحثون أن المهاجم كان يستغل Adspect، وهي خدمة شرعية لإخفاء حركة المرور مصممة للتمييز بين الزوار الحقيقيين والروبوتات. من خلال تسخير هذه التكنولوجيا في حزم npm، وجد المهاجم طريقة لتوزيع شيفرة خبيثة ذاتية الاحتواء.
آلية الكشف والتخفي المبتكرة
تستمد الحملة نجاحها من نهجها متعدد الطبقات للتخفي من الماسحات الأمنية الآلية والتحليل البشري. عند النشر، تقوم الشيفرة الخبيثة بتغليف حمولتها في تعبير دالة يُستدعى فوراً (IIFE) لضمان التنفيذ التلقائي دون الحاجة لاستدعاءات صريحة للدوال.
تعمل الشيفرة على منع وصول الباحثين بشكل استباقي عن طريق تعطيل أدوات المطور في المتصفح، ومنع النقر بزر الماوس الأيمن، وحظر اختصارات لوحة المفاتيح مثل F12 و Ctrl+U و Ctrl+Shift+I. كما تقوم بإعادة تحميل الصفحة باستمرار إذا تم اكتشاف أدوات التطوير.
التحليل التقني لآلية التخفي والكشف
تعتمد قدرة البرنامج الخبيث على التمييز بين الضحايا والباحثين على نظام بصمة متطور يجمع ثلاثة عشر نقطة بيانات مميزة عن كل زائر. عند وصول المستخدم إلى الموقع المصاب، تقوم الشيفرة الخبيثة JavaScript بجمع معلومات مثل وكيل المستخدم للمتصفح، ومعلومات المضيف، ورابط الإحالة، وطريقة الطلب، واسم المضيف للخادم، وحالة تشفير البروتوكول، ووقت الطلب، وتفضيلات اللغة، وتنسيقات الترميز المقبولة.
تُرسل هذه البيانات الشاملة إلى واجهة برمجة تطبيقات Adspect عبر نقطة نهاية وكيل، مثل association-google.xyz/adspect-proxy.php، مما يعيد بناء قدرات الطلب من جانب الخادم داخل بيئة المتصفح.
منطق اتخاذ القرار وتوجيه المستخدمين
يمثل منطق اتخاذ القرار جوهر ابتكار الحملة. عند تلقي Adspect لبيانات البصمة، تقوم بتحليل خصائص حركة المرور وتعيد استجابة تشير ما إذا كان الزائر يبدو شرعياً أم مشبوهاً. إذا حددت واجهة برمجة التطبيقات أن حركة المرور صادرة من باحث، فإنها تعيد حالة “ok: false”.
يؤدي هذا إلى عرض صفحة بيضاء فارغة تحتوي فقط على نص عام حول Offlido، وهي شركة وهمية لتخزين البيانات دون اتصال بالإنترنت. توفر هذه الصفحة الحميدة غطاءً مثالياً، وتبدو شرعية تماماً لأي محلل قد يقوم بفحصها.
على النقيض من ذلك، إذا حددت Adspect أن الزائر هو ضحية محتمل، فإنها تعيد “ok: true” مع عنوان URL خبيث وتُفعّل عرض واجهة CAPTCHA وهمية. تقلد واجهة CAPTCHA أنظمة التحقق الحقيقية من بورصات العملات المشفرة الشرعية مثل Uniswap و Jupiter، مستعيرة علاماتها التجارية لبناء مصداقية زائفة.
معالجة الضحايا وإعادة التوجيه الخبيث
عندما ينقر الضحايا على مربع التحقق، يتم تشغيل رسوم متحركة للتحميل لمدة ثلاث ثوانٍ قبل عرض رسالة نجاح، تليها إعادة توجيه تلقائي إلى عنوان URL الخبيث في علامة تبويب متصفح جديدة. هذا التلاعب النفسي، جنبًا إلى جنب مع واجهة CAPTCHA المألوفة، يزيد من احتمالية ثقة الضحايا بالمحتوى وعدم الشك فيه.
من جهة أخرى، تمنح مرونة البنية التحتية للمهاجم ميزة كبيرة. نظرًا لأن Adspect تعيد عناوين URL جديدة لكل طلب، يمكن للمهاجم تدوير الوجهات النهائية من جانب الخادم دون الحاجة إلى إعادة نشر أي حزمة npm. هذا يجعل جهود الإزالة التقليدية استجابية وليست وقائية، مما يسمح للحملة بالبقاء نشطة حتى بعد الكشف عنها وإزالة الحزم الأولية من سجل npm.

