تم تقديم التصحيحات لتوزيع عناوين مكدس kernel Linux بشكل عشوائي لاستدعاءات النظام

قام Kees Cook، مدير النظام الرئيسي السابق لـ kernel.org وزعيم فريق Ubuntu Security Team، الذي يعمل الآن في Google على تأمين Android وChromeOS، بنشر مجموعة من التصحيحات لترتيب الإزاحات بشكل عشوائي في حزمة kernel عند معالجة مكالمات النظام. تعمل التصحيحات على تحسين أمان kernel عن طريق تغيير موضع المكدس، مما يجعل الهجمات على المكدس أكثر صعوبة وأقل نجاحًا. يدعم التنفيذ الأولي معالجات ARM64 وx86/x86_64.

تنتمي الفكرة الأصلية للتصحيح إلى مشروع PaX RANDKSTACK. في عام 2019، حاولت إيلينا ريشيتوفا، وهي مهندسة من شركة إنتل، إنشاء تطبيق لهذه الفكرة مناسب لإدراجها في نواة لينكس الرئيسية. لاحقًا، تم تبني المبادرة بواسطة Kees Cook، الذي قدم تطبيقًا مناسبًا للإصدار الرئيسي للنواة. ومن المقرر أن يتم تضمين التصحيحات كجزء من الإصدار 5.13. سيتم تعطيل الوضع بشكل افتراضي. لتمكينه، يتم اقتراح معلمة سطر أوامر kernel "randomize_kstack_offset=on/off" والإعداد CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT. يتم تقدير الحمل الزائد لتمكين الوضع بحوالي 1% من فقدان الأداء.

جوهر الحماية المقترحة هو اختيار إزاحة مكدس عشوائي لكل استدعاء نظام، مما يجعل من الصعب تحديد تخطيط المكدس في الذاكرة، حتى بعد تلقي بيانات العنوان، لأن استدعاء النظام التالي سيغير العنوان الأساسي للمكدس. على عكس تطبيق PaX RANDKSTACK، في التصحيحات المقترحة لإدراجها في kernel، لا يتم تنفيذ التوزيع العشوائي في المرحلة الأولية (cpu_current_top_of_stack)، ولكن بعد تعيين بنية pt_regs، مما يجعل من المستحيل استخدام الأساليب المستندة إلى ptrace لتحديد الإزاحة العشوائية أثناء مكالمة نظام طويلة الأمد.

المصدر: opennet.ru

إضافة تعليق