طرق تعطيل تأمين التأمين في Ubuntu لتجاوز التمهيد الآمن لـ UEFI عن بُعد

أندري كونوفالوف من Google نشرت طريقة لتعطيل الحماية عن بعد تأمينمتوفرة في حزمة Linux kernel المزودة بـ Ubuntu (نظريًا ، الطرق المقترحة يجب العمل مع نواة Fedora والتوزيعات الأخرى ، لكن لم يتم اختبارها).

يقيد التأمين وصول المستخدم الجذر إلى kernel ويمنع مسارات تجاوز التمهيد الآمن لـ UEFI. على سبيل المثال ، يقيد وضع التأمين الوصول إلى / dev / mem و / dev / kmem و / dev / port و / proc / kcore و debugfs و kprobes debug mode و mmiotrace و tracefs و BPF و PCMCIA CIS (بنية معلومات البطاقة) وبعض الواجهات يتم حظر سجلات ACPI و MSR لوحدة المعالجة المركزية ، والمكالمات إلى kexec_file و kexec_load ، والانتقال إلى وضع السكون محظور ، واستخدام DMA لأجهزة PCI محدود ، واستيراد رمز ACPI من متغيرات EFI محظور ، والتلاعب باستخدام I / O المنافذ غير مسموح بها ، بما في ذلك تغيير رقم المقاطعة ومنفذ الإدخال / الإخراج للمنفذ التسلسلي.

تمت إضافة آلية Lockdown مؤخرًا إلى جوهر Linux kernel. 5.4، ولكن لا يزال يتم تنفيذه على شكل رقع أو تكميله برقع في الحبات المزودة بالتوزيعات. أحد الاختلافات بين الوظائف الإضافية المتوفرة في التوزيعات والتطبيق المدمج في النواة هو القدرة على تعطيل القفل المقدم عندما يكون هناك وصول مادي إلى النظام.

في Ubuntu و Fedora ، يتم توفير مجموعة المفاتيح Alt + SysRq + X لتعطيل Lockdown. من المفهوم أنه لا يمكن استخدام تركيبة Alt + SysRq + X إلا ​​من خلال الوصول المادي إلى الجهاز ، وفي حالة الاختراق عن بُعد والحصول على الوصول إلى الجذر ، لن يتمكن المهاجم من تعطيل Lockdown ، وعلى سبيل المثال ، تحميل وحدة غير موقعة مع rootkit في النواة.

أظهر أندري كونوفالوف أن الأساليب المعتمدة على لوحة المفاتيح لتأكيد التواجد المادي للمستخدم غير فعالة. أسهل طريقة لتعطيل Lockdown ستكون برمجيًا محاكاة الضغط على Alt + SysRq + X عبر / dev / uinput ، لكن هذا الخيار معطل افتراضيًا. في الوقت نفسه ، تمكنا من تحديد طريقتين أخريين على الأقل لاستبدال Alt + SysRq + X.

تتضمن الطريقة الأولى استخدام واجهة "sysrq-Trigger" - للمحاكاة ، يكفي تمكين هذه الواجهة بكتابة "1" إلى / proc / sys / kernel / sysrq ، ثم كتابة "x" إلى / proc / sysrq- مشغل. ثغرة محددة مستبعد في تحديث شهر ديسمبر لنواة Ubuntu وفي Fedora 31. وتجدر الإشارة إلى أن المطورين ، كما في حالة / dev / uinput ، في البداية حاول أن حظر طريقة معينة ، لكن الحظر لم ينجح بسبب أخطاء في الرمز.

الطريقة الثانية تتعلق بمحاكاة لوحة المفاتيح من خلال يو اس بي/اي بي ثم إرسال تسلسل Alt + SysRq + X من لوحة المفاتيح الافتراضية. يتم تمكين نواة USB / IP التي يتم شحنها مع Ubuntu افتراضيًا (CONFIG_USBIP_VHCI_HCD = m و CONFIG_USBIP_CORE = m) وتوفر وحدات usbip_core و vhci_hcd الموقعة رقميًا المطلوبة للتشغيل. يمكن للمهاجم خلق جهاز USB افتراضي ادارة معالج الشبكة على واجهة الاسترجاع وتوصيله كجهاز USB بعيد باستخدام USB / IP. عن الطريقة المذكورة ذكرت مطورو Ubuntu ، ولكن لم يتم إصدار أي إصلاح حتى الآن.

المصدر: opennet.ru

إضافة تعليق