يتم حقن حزمة UAParser.js NPM، التي لديها 8 ملايين عملية تنزيل أسبوعيًا، ببرامج ضارة.

تلقت قصة إزالة ثلاث حزم ضارة من مستودع NPM والتي نسخت كود مكتبة UAParser.js استمرارًا غير متوقع - سيطر مهاجمون مجهولون على حساب مؤلف مشروع UAParser.js وأصدروا تحديثات تحتوي على كود لـ سرقة كلمات المرور واستخراج العملات المشفرة.

تكمن المشكلة في أن مكتبة UAParser.js، التي توفر وظائف لتحليل رأس User-Agent HTTP، لديها حوالي 8 ملايين عملية تنزيل أسبوعيًا وتستخدم كتبعية في أكثر من 1200 مشروع. يُذكر أن UAParser.js يُستخدم في مشاريع شركات مثل Microsoft وAmazon وFacebook وSlack وDiscord وMozilla وApple وProtonMail وAutodesk وReddit وVimeo وUber وDell وIBM وSiemens وOracle وHP وVerison. .

تم تنفيذ الهجوم من خلال اختراق حساب مطور المشروع، الذي أدرك أن هناك خطأ ما بعد وصول موجة غير عادية من البريد العشوائي إلى صندوق بريده. لم يتم الإبلاغ عن كيفية اختراق حساب المطور بالضبط. أنشأ المهاجمون الإصدارات 0.7.29 و0.8.0 و1.0.0، وأدخلوا فيها تعليمات برمجية ضارة. وفي غضون ساعات قليلة، استعاد المطورون السيطرة على المشروع وقاموا بإنشاء التحديثات 0.7.30 و0.8.1 و1.0.1 لإصلاح المشكلة. تم نشر الإصدارات الضارة فقط كحزم في مستودع NPM. لم يتأثر مستودع Git الخاص بالمشروع على GitHub. يُنصح جميع المستخدمين الذين قاموا بتثبيت إصدارات بها مشاكل، إذا عثروا على ملف jsextension على Linux/macOS، وملفات jsextension.exe و create.dll على Windows، باعتبار النظام معرضًا للخطر.

كانت التغييرات الضارة المضافة تذكرنا بالتغييرات التي تم اقتراحها مسبقًا في نسخ UAParser.js، والتي يبدو أنها تم إصدارها لاختبار الوظائف قبل شن هجوم واسع النطاق على المشروع الرئيسي. تم تنزيل الملف القابل للتنفيذ jsextension وتشغيله على نظام المستخدم من مضيف خارجي، والذي تم اختياره اعتمادًا على النظام الأساسي للمستخدم والعمل المدعوم على Linux وmacOS وWindows. بالنسبة لمنصة Windows، بالإضافة إلى برنامج تعدين العملة المشفرة Monero (تم استخدام عامل منجم XMRig)، قام المهاجمون أيضًا بتنظيم إدخال مكتبة create.dll لاعتراض كلمات المرور وإرسالها إلى مضيف خارجي.

تمت إضافة رمز التنزيل إلى ملف preinstall.sh، حيث يتم إدراج IP=$(curl -k https://freegeoip.app/xml/ | grep 'RU|UA|BY|KZ') إذا [ -z " $ IP" ] ... قم بتنزيل الملف القابل للتنفيذ وتشغيله fi

كما يتبين من الكود، قام البرنامج النصي أولاً بفحص عنوان IP في خدمة freegeoip.app ولم يطلق تطبيقًا ضارًا للمستخدمين من روسيا وأوكرانيا وبيلاروسيا وكازاخستان.

المصدر: opennet.ru

إضافة تعليق