تم العثور على شفرة ضارة في مثبت purescript npm

npm نقي

قبل بضعة أيام تم اكتشاف رمز ضار في تبعيات حزمة npm مع مثبت PureScript، والذي يظهر عند محاولة تثبيت حزمة purescript.

شفرة ضارة مضمن عبر تبعيات التحميل من cwd أو npm وتبعيات خريطة السرعة. تجدر الإشارة إلى أن المؤلف الأصلي لحزمة npm مع مثبت PureScript ، والذي كان يعمل حتى وقت قريب في صيانة حزمة npm هذه ، ولكن تم إرسال الحزمة إلى المشرفين الآخرين ، هو المسؤول عن الحزم المصاحبة مع هذه التبعيات.

حول المشكلة

تم اكتشاف المشكلة من قبل أحد المحللين الجدد للحزمة، الذي تم نقل حقوق الصيانة إليه بعد العديد من الخلافات والمناقشات السيئة مع المؤلف الأصلي لحزمة npm purescript.

المشرفون الجدد مسؤولة عن مترجم PureScript و لقد أصروا على أن حزمة NPM مع المثبت الخاص بها يجب أن يتم إصلاحها بواسطة القائمين على الصيانة أنفسهم ، وليس بواسطة مطور خارج المشروع.

لم يوافق مؤلف حزمة npm مع مثبت PureScript لفترة طويلة ، لكنه استسلم بعد ذلك وسمح بالوصول إلى المستودع. ومع ذلك ، فقد تركت بعض التبعيات تحت سيطرته.

تم الإعلان عن إصدار مترجم PureScript 0.13.2 الأسبوع الماضي وأعد المشرفون الجدد التحديث المقابل لحزمة npm مع المثبت ، التي تم الكشف عن الشفرة الخبيثة لها.

تم إدخال الشفرة الضارة لأول مرة في حزمة npm "load-from-cwd-or-npm" في الإصدار 3.0.2 ثم ​​في حزمة خريطة المعدل من الإصدار 1.0.3. في الأيام الأخيرة تم نشر إصدارات عديدة من كلتا الحزمتين.

بعد نقله من المنشور المصاحب لمؤلف حزمة npm مع مثبت PureScript ، قال إن حسابه تعرض للاختراق من قبل مهاجمين مجهولين.

ومع ذلك، في الشكل الحالي ، تم تقييد إجراءات الشفرة الضارة فقط من خلال تخريب تثبيت الحزمة، الذي كان الإصدار الأول من المشرفين الجدد. تم تكرار الإجراءات الضارة عند محاولة تثبيت حزمة باستخدام الأمر "npm i -g purescript" دون تنفيذ أي نشاط ضار صريح.

تم تحديد هجومين

وخلاصة القول، يقوم الكود بتخريب برنامج التثبيت purescript npm لمنع اكتمال التنزيل، مما يتسبب في تعليق المثبّت أثناء الخطوة "التحقق مما إذا كان هناك برنامج ثنائي مترجم مسبقًا متوفر لمنصتك".

قام الاستغلال الأول بذلك عن طريق كسر حزمة load-from-cwd-or-npm بحيث يؤدي أي استدعاء لـ loadFromCwdOrNpm () إلى إرجاع تسلسل تمريري بدلاً من الحزمة المتوقعة (في هذه الحالة ، حزمة الطلب ، التي كنا نستخدمها لتنزيل ثنائيات المترجم). فعل التكرار الثاني للاستغلال ذلك عن طريق تعديل ملف المصدر لمنع إعادة استدعاء التنزيل.

4 أيام في وقت لاحق فهم المطورون مصدر العيوب وكانوا يستعدون لإصدار تحديث لاستبعاد الحمل من cwd-o-npm من التبعيات، أصدر المهاجمون تحميل تحديث آخر من cwd أو npm 3.0.4 ، حيث تمت إزالة الشفرة الضارة.

ومع ذلك ، تم إصدار تحديث لتبعية أخرى لـ Rate-Map 1.0.3 على الفور تقريبًا ، حيث تمت إضافة إصلاح يمنع استدعاء رد الاتصال للتنزيل.

أي ، في كلتا الحالتين ، كانت التغييرات في الإصدارات الجديدة من load-from-cwd-or-npm ومعدل الخريطة ذات طبيعة انحراف واضح.

أيضًا ، في الشفرة الضارة ، كان هناك فحص أدى إلى تشغيل الإجراءات الفاشلة فقط عند تثبيت إصدار المشرفين الجدد ولم يظهر على الإطلاق عند تثبيت الإصدارات السابقة.

حل المطورون المشكلة عن طريق إصدار تحديث تمت فيه إزالة التبعيات المسببة للمشكلة.

لمنع تثبيت التعليمات البرمجية المخترقة على أنظمة المستخدمين بعد محاولة تثبيت الإصدار الإشكالي من PureScript.

أخيرا المطور يوصي لكل من لديه الإصدارات المذكورة من الحزمة على نظامهم قم بإزالة محتويات مجلدات node_modules وملفات package-lock.json ثم قم بتعيين النسخة purescript 0.13.2.


اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.