الثغرة الأمنية التي سمحت بإصدار تحديث لأي حزمة في مستودع NPM

كشفت GitHub عن حادثتين في البنية التحتية لمستودع حزم NPM الخاص بها. في 2 نوفمبر، أبلغ باحثون أمنيون من طرف ثالث (Kajetan Grzybowski وMaciej Piechota)، كجزء من برنامج Bug Bounty، عن وجود ثغرة أمنية في مستودع NPM تسمح لك بنشر إصدار جديد من أي حزمة باستخدام حسابك. وهو غير مصرح له بإجراء مثل هذه التحديثات.

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

تم إصلاح المشكلة بعد 6 ساعات من الإبلاغ عن الثغرة الأمنية، ولكن الثغرة الأمنية كانت موجودة في NPM لفترة أطول من تغطية سجلات القياس عن بعد. يدعي GitHub أنه لا توجد آثار لهجمات باستخدام هذه الثغرة الأمنية منذ سبتمبر 2020، ولكن ليس هناك ما يضمن عدم استغلال المشكلة من قبل.

الحادث الثاني وقع في 26 أكتوبر. أثناء العمل الفني مع قاعدة بيانات خدمة Replicate.npmjs.com، تم الكشف عن وجود بيانات سرية في قاعدة البيانات يمكن الوصول إليها للطلبات الخارجية، مما يكشف معلومات حول أسماء الحزم الداخلية التي تم ذكرها في سجل التغيير. يمكن استخدام المعلومات المتعلقة بهذه الأسماء لتنفيذ هجمات التبعية على المشاريع الداخلية (في فبراير، سمح هجوم مماثل بتنفيذ تعليمات برمجية على خوادم PayPal وMicrosoft وApple وNetflix وUber و30 شركة أخرى).

بالإضافة إلى ذلك، نظرًا للعدد المتزايد من حالات اختطاف مستودعات المشاريع الكبيرة والترويج للتعليمات البرمجية الضارة من خلال اختراق حسابات المطورين، قررت GitHub تقديم المصادقة الثنائية الإلزامية. سيدخل التغيير حيز التنفيذ في الربع الأول من عام 2022 وسيتم تطبيقه على المشرفين والمسؤولين عن الحزم المدرجة في القائمة الأكثر شيوعًا. بالإضافة إلى ذلك، تم الإبلاغ عن تحديث البنية التحتية، حيث سيتم تقديم المراقبة والتحليل الآلي للإصدارات الجديدة من الحزم للكشف المبكر عن التغييرات الضارة.

دعونا نتذكر أنه وفقًا لدراسة أجريت عام 2020، فإن 9.27% ​​فقط من مشرفي الحزم يستخدمون المصادقة الثنائية لحماية الوصول، وفي 13.37% من الحالات، عند تسجيل حسابات جديدة، حاول المطورون إعادة استخدام كلمات المرور المخترقة التي ظهرت في تسرب كلمة المرور المعروفة. أثناء مراجعة أمان كلمة المرور، تم الوصول إلى 12% من حسابات NPM (13% من الحزم) بسبب استخدام كلمات مرور تافهة ويمكن التنبؤ بها مثل "123456". ومن بين الحسابات التي بها مشكلات، 4 حسابات مستخدمين من أفضل 20 حزمة شعبية، و13 حسابًا بها حزم تم تنزيلها أكثر من 50 مليون مرة شهريًا، و40 حسابًا بأكثر من 10 ملايين تنزيل شهريًا، و282 مع أكثر من مليون تنزيل شهريًا. مع الأخذ في الاعتبار تحميل الوحدات عبر سلسلة من التبعيات، قد يؤثر اختراق الحسابات غير الموثوق بها على ما يصل إلى 1% من جميع الوحدات في NPM.

المصدر: opennet.ru

إضافة تعليق