Kerentanan yang sukar diperbaiki dalam GRUB2 yang membolehkan anda memintas UEFI Secure Boot

Maklumat telah didedahkan tentang 8 kelemahan dalam pemuat but GRUB2, yang membolehkan anda memintas mekanisme UEFI Secure Boot dan menjalankan kod yang tidak disahkan, contohnya, melaksanakan perisian hasad yang dijalankan pada peringkat pemuat but atau kernel.

Mari kita ingat bahawa dalam kebanyakan pengedaran Linux, untuk but yang disahkan dalam mod UEFI Secure Boot, lapisan shim kecil digunakan, ditandatangani secara digital oleh Microsoft. Lapisan ini mengesahkan GRUB2 dengan sijilnya sendiri, yang membenarkan pembangun pengedaran tidak mempunyai setiap kernel dan kemas kini GRUB yang diperakui oleh Microsoft. Kerentanan dalam GRUB2 membolehkan anda mencapai pelaksanaan kod anda pada peringkat selepas pengesahan shim yang berjaya, tetapi sebelum memuatkan sistem pengendalian, terikat ke dalam rantaian kepercayaan apabila mod But Secure aktif dan mendapat kawalan penuh ke atas proses but selanjutnya, termasuk memuatkan OS lain, mengubah suai sistem komponen sistem pengendalian dan memintas perlindungan Lockdown.

Seperti kerentanan BootHole tahun lepas, mengemas kini pemuat but tidak mencukupi untuk menyekat masalah, kerana penyerang, tanpa mengira sistem pengendalian yang digunakan, boleh menggunakan media boleh boot dengan versi GRUB2 yang lama, ditandatangani secara digital, terdedah untuk menjejaskan UEFI Secure Boot. Masalahnya hanya boleh diselesaikan dengan mengemas kini senarai pembatalan sijil (dbx, Senarai Pembatalan UEFI), tetapi dalam kes ini keupayaan untuk menggunakan media pemasangan lama dengan Linux akan hilang.

Pada sistem dengan perisian tegar yang mempunyai senarai pembatalan sijil yang dikemas kini, hanya binaan pengedaran Linux yang dikemas kini boleh dimuatkan dalam mod UEFI Secure Boot. Pengedaran perlu mengemas kini pemasang, pemuat but, pakej kernel, perisian tegar fwupd dan lapisan shim, menjana tandatangan digital baharu untuk mereka. Pengguna akan dikehendaki mengemas kini imej pemasangan dan media boleh boot lain, serta memuatkan senarai pembatalan sijil (dbx) ke dalam perisian tegar UEFI. Sebelum mengemas kini dbx kepada UEFI, sistem kekal terdedah tanpa mengira pemasangan kemas kini dalam OS. Status kelemahan boleh dinilai pada halaman ini: Ubuntu, SUSE, RHEL, Debian.

Untuk menyelesaikan masalah yang timbul apabila mengedarkan sijil yang dibatalkan, pada masa hadapan ia dirancang untuk menggunakan mekanisme SBAT (UEFI Secure Boot Advanced Targeting), sokongan yang telah dilaksanakan untuk GRUB2, shim dan fwupd, dan bermula dari kemas kini seterusnya akan digunakan dan bukannya fungsi yang disediakan oleh pakej dbxtool. SBAT dibangunkan bersama Microsoft dan melibatkan penambahan metadata baharu pada fail boleh laku komponen UEFI, yang merangkumi maklumat tentang pengilang, produk, komponen dan versi. Metadata yang ditentukan diperakui dengan tandatangan digital dan juga boleh disertakan dalam senarai komponen yang dibenarkan atau dilarang untuk UEFI Secure Boot. Oleh itu, SBAT akan membolehkan anda memanipulasi nombor versi komponen semasa pembatalan tanpa perlu menjana semula kunci untuk Secure Boot dan tanpa menjana tandatangan baharu untuk kernel, shim, grub2 dan fwupd.

Kelemahan yang dikenal pasti:

  • CVE-2020-14372 – Menggunakan arahan acpi dalam GRUB2, pengguna istimewa pada sistem setempat boleh memuatkan jadual ACPI yang diubah suai dengan meletakkan SSDT (Jadual Penerangan Sistem Menengah) dalam direktori /boot/efi dan menukar tetapan dalam grub.cfg. Walaupun mod Secure Boot aktif, SSDT yang dicadangkan akan dilaksanakan oleh kernel dan boleh digunakan untuk melumpuhkan perlindungan LockDown yang menyekat laluan pintasan UEFI Secure Boot. Akibatnya, penyerang boleh mencapai pemuatan modul kernelnya atau menjalankan kod melalui mekanisme kexec, tanpa menyemak tandatangan digital.
  • CVE-2020-25632 ialah akses memori bebas penggunaan dalam pelaksanaan perintah rmmod, yang berlaku apabila percubaan dibuat untuk memunggah sebarang modul tanpa mengambil kira kebergantungan yang berkaitan dengannya. Kerentanan tidak mengecualikan penciptaan eksploitasi yang boleh membawa kepada pelaksanaan kod memintas pengesahan Boot Selamat.
  • CVE-2020-25647 Tulisan di luar sempadan dalam fungsi grub_usb_device_initialize() dipanggil semasa memulakan peranti USB. Masalahnya boleh dieksploitasi dengan menyambungkan peranti USB yang disediakan khas yang menghasilkan parameter yang saiznya tidak sepadan dengan saiz penimbal yang diperuntukkan untuk struktur USB. Penyerang boleh mencapai pelaksanaan kod yang tidak disahkan dalam Secure Boot dengan memanipulasi peranti USB.
  • CVE-2020-27749 ialah limpahan penimbal dalam fungsi grub_parser_split_cmdline(), yang boleh disebabkan oleh menentukan pembolehubah yang lebih besar daripada 2 KB pada baris arahan GRUB1. Kerentanan membenarkan pelaksanaan kod untuk memintas Secure Boot.
  • CVE-2020-27779 – Perintah cutmem membenarkan penyerang mengalih keluar julat alamat dari memori untuk memintas Boot Selamat.
  • CVE-2021-3418 - Perubahan kepada shim_lock mencipta vektor tambahan untuk mengeksploitasi kerentanan tahun lepas CVE-2020-15705. Dengan memasang sijil yang digunakan untuk menandatangani GRUB2 dalam dbx, GRUB2 membenarkan sebarang kernel dimuatkan secara langsung tanpa mengesahkan tandatangan.
  • CVE-2021-20225 - Kemungkinan menulis data di luar sempadan apabila menjalankan arahan dengan bilangan pilihan yang sangat besar.
  • CVE-2021-20233 - Kemungkinan menulis data di luar had disebabkan pengiraan saiz penimbal yang salah apabila menggunakan petikan. Apabila mengira saiz, diandaikan bahawa tiga aksara diperlukan untuk melepaskan petikan tunggal, sedangkan sebenarnya empat diperlukan.

Sumber: opennet.ru

Tambah komen