تم العثور على ثغرة أمنية في نظام Linux kernel tty الفرعي

تم إطلاق سراح باحثين من فريق Google Project Zero مؤخرًا من خلال منشور مدونة طريقة جديدة لاستغلال نقاط الضعف (CVE-2020-29661) في تنفيذ معالج ioctl TIOCSPGRP الخاص بـ نظام Linux kernel tty الفرعي، بالإضافة إلى آليات الحماية التفصيلية التي يمكن أن تمنع هذه الثغرات الأمنية.

جاء في المنشور أن سبب المشكلة هو خطأ في إعدادات القفل، مما أدى إلى حالة سباق في كود /tty/tty_jobctrl.c ، والتي تم استخدامها لتهيئة الظروف للوصول إلى الذاكرة بعد الإطلاق (الاستخدام بعد الحر) ، والتي استغلتها مساحة المستخدم من خلال التلاعب بـ ioct- عن طريق استدعاء TIOCSPGRP.

بالإضافة إلى المعلومات المنشورة أيضًا تم إجراء عرض توضيحي لاستغلال وظيفي لتصعيد الامتياز في دبيان 10 مع kernel 4.19.0-13-amd64 والذي لا يستبعد أيضًا أنه قد يؤثر على توزيعات مختلفة ، من بينها بالطبع تلك القائمة على دبيان والمشتقة منها.

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

مقتطفات التعليمات البرمجية الموجودة في منشور المدونة هذا ذات الصلة بالاستغلال مأخوذة من الإصدار السابق 4.19.160 ، حيث أن هذا هو ما تقوم عليه نواة دبيان المستهدفة ؛ بعض مقتطفات التعليمات البرمجية الأخرى من Linux mainline.

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

الاستنتاج مخيب للآمال ، كما ذُكر أن طرقًا مثل تجزئة الذاكرة في الكومة والتحكم في الوصول إلى الذاكرة بعد تحريرها لا يتم تطبيقها عمليًا لأنها تؤدي إلى تدهور الأداء والحماية استنادًا إلى CFI (التحكم في تكامل التدفق) ، والذي يمنع عمليات الاستغلال في وقت لاحق مراحل الهجوم تتطلب تحسينات.

هناك نوع خاص من الأجهزة الطرفية هو المحطات الزائفة ، والتي تُستخدم ، على سبيل المثال ، عندما تفتح تطبيقًا طرفيًا في بيئة رسومية أو تتصل بجهاز بعيد عبر SSH. بينما يتم توصيل الأجهزة الطرفية الأخرى بنوع من الأجهزة ، يتم التحكم في طرفي الطرف الزائف من خلال مساحة المستخدم ، ويمكن إنشاء المحطات الزائفة بحرية بواسطة مساحة المستخدم (بدون امتيازات).

عندما يتم فتح / dev / ptmx (اختصار لـ "معدد إرسال طرفي زائف") ، يمثل واصف الملف الناتج جانب الجهاز (المشار إليه في التوثيق ومصادر النواة باسم "المحطة الزائفة الرئيسية") للجهاز. -طرفية.

 يتم إنشاء الجهاز الطرفي المقابل (الذي تتصل به القشرة عادةً) تلقائيًا بواسطة النواة تحت / dev / pts / .

عند النظر إلى ما يمكن أن يحدث فرقًا على المدى الطويل ، ينصب التركيز على استخدام محللات ثابتة متقدمة أو استخدام لغات آمنة للذاكرة مثل لهجات Rust و C مع التعليقات التوضيحية الممتدة (مثل C التي أثبتت جدواها) لبناء مدققات للحالة والأقفال و الأشياء والمؤشرات. تذكر طرق الحماية أيضًا تمكين وضع panic_on_oops ، وجعل هياكل النواة للقراءة فقط وتقييد الوصول إلى مكالمات النظام من خلال آليات مثل seccomp.

الخطأ المسبب للمشكلة تم إصلاحه في Linux kernel في 3 ديسمبر من العام الماضي. المشكلة تتجلى في نواة سابقة للإصدار 5.9.13 ، لكن معظم التوزيعات أصلحت المشكلة في تحديثات حزمة kernel التي تم تقديمها العام الماضي.

تم ذكر ثغرة أمنية مماثلة أيضًا (CVE-2020-29660) تم العثور عليها في وقت واحد في تنفيذ استدعاء TIOCGSID ioctl ، ولكن تمت إزالتها أيضًا في كل مكان.

أخيرا إذا كنت مهتمًا بمعرفة المزيد عنها ، يمكنك التحقق من التفاصيل في الرابط التالي.


اترك تعليقك

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

*

*

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