تم اكتشاف خطأ في تجاوز سعة الكومة مؤخرًا في Linux kernel. التصحيح متاح الآن في معظم توزيعات Linux الرئيسية.
معظم أخطاء Linux "الأمنية" المبلغ عنها ليست في الواقع أخطاء Linux. على سبيل المثال ، كان تقرير شركة خدمات الأمن CrowdStrike عن أكبر عائلات البرامج الضارة المستندة إلى نظام Linux يتعلق بالفعل بأخطاء أمان إدارة النظام باستخدام telnet و SSH و Docker ، وليس Linux على الإطلاق. لكن هذا لا يعني أن Linux ليس به ثغرات أمنية. على سبيل المثال ، ظهرت مشكلة نواة لينكس سيئة جديدة .
في هذا الملف ، يوجد خطأ تجاوز في كومة الذاكرة المؤقتة في legacy_parse_param في برنامج fs / fs_context.c الخاص بـ Linux kernel. تُستخدم هذه المعلمة في أنظمة ملفات Linux أثناء إنشاء superblock لإعادة تكوين mount و superblock لإعادة التحميل. يسجل superblock جميع خصائص نظام الملفات مثل حجم الملف وحجم الكتلة وكتل التخزين الفارغة والمملوءة. لذا ، نعم ، هذا مهم.
تم إجراء حساب legacy_parse_param () "PAGE_SIZE - 2 - size" عن طريق الخطأ من نوع غير موقع . وهذا يعني أن القيمة الكبيرة لـ "الحجم" ينتج عنها قيمة موجبة عالية بدلاً من قيمة سلبية كما هو متوقع. عذرًا.
وهذا بدوره يعني أنك تنسخ البيانات خارج لوح الذاكرة المخصص لها. وكما يعلم جميع المبرمجين ، فإن الكتابة خارج الذاكرة التي من المفترض أن يتمكن برنامجك من الوصول إليها أمر فظيع.
أحد الأسباب الرئيسية وراء دمج Rust في Linux هو أن Rust يجعل هذا النوع من أخطاء الذاكرة أصعب بكثير. كما يعرف كل مطور سي ، من السهل جدًا تجاوز تخصيص الذاكرة في برنامج سي.
إذا كم هو سيء؟ من خلال اختبار تسجيل نقاط الضعف المشترك (CVSS) v3.1 ، إنها 7.7 صلبة. يعتبر هذا ثغرة أمنية عالية.
يمكن للمهاجم المحلي استخدامه لتصعيد امتيازات المستخدم الخاصة به أو تعطل النظام. يمكن القيام بذلك باستخدام برنامج معد خصيصًا يعمل على تشغيل تجاوز هذا العدد الصحيح. بعد القيام بذلك ، من السهل تنفيذ تعليمات برمجية عشوائية وإعطاء امتيازات الجذر للمهاجم.
لاستغلاله يتطلب تفعيل امتياز CAP_SYS_ADMIN. إذا كان الأمر كذلك ، يمكن لمستخدم محلي لا يتمتع بامتيازات فتح نظام ملفات لا يدعم واجهة برمجة تطبيق File System Context (API). في هذه الحالة ، يعود إلى المعالجة القديمة ، ومن هناك ، يمكن أن يؤدي الخلل إلى تصعيد امتيازات نظام المهاجم.
الاستغلال ليس بالأمر الصعب الذي قد تعتقده. أعلن مكتشفها ، مطور Linux kernel William Liu ، أنه ابتكر ثغرات ضد Ubuntu 20.04 ومآثر هروب الحاوية ضد Google Container-Optimized (COS) .
تم تقديم هذا الثقب الأمني مرة أخرى في 28 فبراير 2019 ، في Linux 5.1-rc1 kernel . إنه موجود الآن في جميع نوى Linux. نعم، جميعهم. لحسن الحظ ، التصحيح موجود .
يمكنك أيضًا تعطيله عن طريق تعطيل مساحات أسماء المستخدمين عن طريق تعيين user.max_user_namespaces على كود shell التالي في عائلة Red Hat Linux.
صدى "user.max_user_namespaces = 0"> /etc/sysctl.d/userns.conf
sysctl -p /etc/sysctl.d/userns.conf
في Ubuntu والتوزيعات ذات الصلة ، يمكنك حماية نظامك باستخدام كود القشرة هذا:
sysctl -w kernel.unprivileged_userns_clone = 0
ومع ذلك ، ضع في اعتبارك أنه يجب أن يكون لديك مساحة اسم متاحة في توزيعات Linux المعبأة في حاويات ، مثل Red Hat OpenShift Container Platform نظرًا لأنه يحتاج إلى تمكين هذه الوظيفة. في هذه الظروف ، ستحتاج إلى تصحيح توزيعة Linux الخاصة بك بمجرد أن يقوم الموزع بإتاحة التصحيح.
ابق آمنا ، ابق رقعًا.