روش‌هایی برای غیرفعال کردن امنیت قفل در اوبونتو برای دور زدن راه‌اندازی امن UEFI از راه دور

آندری کونوالوف از گوگل منتشر شده روشی برای غیرفعال کردن حفاظت از راه دور قفل کردنارائه شده در بسته هسته لینوکس که با اوبونتو ارسال شده است (تکنیک هایی که از نظر تئوری پیشنهاد شده است باید با هسته فدورا و سایر توزیع ها کار کنید، اما آنها آزمایش نمی شوند).

Lockdown دسترسی کاربر ریشه به هسته را محدود می‌کند و مسیرهای دور زدن راه‌اندازی امن UEFI را مسدود می‌کند. به عنوان مثال، در حالت قفل، دسترسی به /dev/mem، /dev/kmem، /dev/port، /proc/kcore، اشکال زدایی، حالت اشکال زدایی kprobes، mmiotrace، tracefs، BPF، PCMCIA CIS (ساختار اطلاعات کارت)، برخی اینترفیس‌ها محدود است رجیسترهای ACPI و MSR CPU، تماس‌ها به kexec_file و kexec_load مسدود هستند، حالت خواب ممنوع است، استفاده از DMA برای دستگاه‌های PCI محدود است، وارد کردن کد ACPI از متغیرهای EFI ممنوع است، دستکاری با پورت‌های I/O ممنوع است. مجاز است، از جمله تغییر شماره وقفه و پورت I/O برای پورت سریال.

مکانیسم Lockdown اخیراً به هسته اصلی لینوکس اضافه شده است 5.4، اما در هسته های عرضه شده در توزیع ها همچنان به صورت پچ یا تکمیل شده با وصله اجرا می شود. یکی از تفاوت های افزونه های ارائه شده در کیت های توزیع و پیاده سازی تعبیه شده در هسته، امکان غیرفعال کردن قفل ارائه شده در صورت دسترسی فیزیکی به سیستم است.

در اوبونتو و فدورا، کلید ترکیبی Alt+SysRq+X برای غیرفعال کردن Lockdown ارائه شده است. قابل درک است که ترکیب Alt+SysRq+X فقط با دسترسی فیزیکی به دستگاه قابل استفاده است و در صورت هک از راه دور و دستیابی به دسترسی روت، مهاجم قادر نخواهد بود Lockdown را غیرفعال کند و به عنوان مثال، یک را بارگذاری کند. ماژول با روت کیت که به صورت دیجیتالی در هسته ثبت نشده است.

آندری کونوالوف نشان داد که روش های مبتنی بر صفحه کلید برای تأیید حضور فیزیکی کاربر بی اثر هستند. ساده ترین راه برای غیرفعال کردن Lockdown، برنامه نویسی است شبیه سازی با فشار دادن Alt+SysRq+X از طریق /dev/uinput، اما این گزینه در ابتدا مسدود شده است. در همان زمان، امکان شناسایی حداقل دو روش دیگر برای جایگزینی Alt+SysRq+X وجود داشت.

روش اول شامل استفاده از رابط "sysrq-trigger" است - برای شبیه سازی آن، فقط این رابط را با نوشتن "1" در /proc/sys/kernel/sysrq فعال کنید، و سپس "x" را در /proc/sysrq-trigger بنویسید. گفت خلاء حذف شده است در به روز رسانی هسته اوبونتو در دسامبر و در فدورا 31. قابل توجه است که توسعه دهندگان، مانند مورد /dev/uinput، در ابتدا سعی کردم مسدود کردن این روش، اما مسدود کردن کار نمی کند به دلیل خطاها در کد

روش دوم شامل شبیه سازی صفحه کلید از طریق USB/IP و سپس دنباله Alt+SysRq+X را از صفحه کلید مجازی ارسال کنید. هسته USB/IP ارسال شده با اوبونتو به‌طور پیش‌فرض فعال است (CONFIG_USBIP_VHCI_HCD=m و CONFIG_USBIP_CORE=m) و ماژول‌های usbip_core و vhci_hcd با امضای دیجیتالی مورد نیاز برای عملکرد را فراهم می‌کند. مهاجم می تواند ایجاد کنید دستگاه USB مجازی، در حال اجرا کنترل کننده شبکه در رابط حلقه بک و اتصال آن به عنوان یک دستگاه USB راه دور با استفاده از USB/IP. در مورد روش مشخص شده گزارش شده است به توسعه دهندگان اوبونتو، اما هنوز راه حلی برای آن منتشر نشده است.

منبع: opennet.ru

اضافه کردن نظر