GRUB2 ievainojamības, kas ļauj apiet UEFI Secure Boot

GRUB2 sāknÄ“Å”anas ielādētājā ir novērstas 7 ievainojamÄ«bas, kas ļauj apiet UEFI Secure Boot mehānismu un palaist nepārbaudÄ«tu kodu, piemēram, ieviest ļaunprātÄ«gu programmatÅ«ru, kas darbojas sāknÄ“Å”anas ielādētāja vai kodola lÄ«menÄ«. Turklāt starplikas slānÄ« ir viena ievainojamÄ«ba, kas arÄ« ļauj apiet UEFI Secure Boot. IevainojamÄ«bu grupai tika dots kodētais nosaukums Boothole 3, lÄ«dzÄ«gi kā lÄ«dzÄ«gām problēmām, kas iepriekÅ” tika identificētas sāknÄ“Å”anas ielādētājā.

Lai novērstu problēmas GRUB2 un shim, izplatÄ«jumi varēs izmantot SBAT (UEFI Secure Boot Advanced Targeting) mehānismu, kas tiek atbalstÄ«ts GRUB2, shim un fwupd. SBAT tika izstrādāts kopÄ«gi ar Microsoft, un tas ietver papildu metadatu pievienoÅ”anu UEFI komponentu izpildāmajiem failiem, kas ietver informāciju par ražotāju, produktu, komponentu un versiju. NorādÄ«tie metadati ir sertificēti ar ciparparakstu, un tos var atseviŔķi iekļaut UEFI Secure Boot atļauto vai aizliegto komponentu sarakstos.

Lielākajā daļā Linux izplatÄ«jumu tiek izmantots mazs starplikas slānis, ko Microsoft ir digitāli parakstÄ«jis, lai pārbaudÄ«tu sāknÄ“Å”anu UEFI droŔās sāknÄ“Å”anas režīmā. Å is slānis pārbauda GRUB2 ar savu sertifikātu, kas ļauj izplatÄ«Å”anas izstrādātājiem neļaut katram kodolam un GRUB atjauninājumam Microsoft sertificēt. GRUB2 ievainojamÄ«bas ļauj sasniegt jÅ«su koda izpildi stadijā pēc veiksmÄ«gas shim verifikācijas, bet pirms operētājsistēmas ielādes, ieslēdzoties uzticÄ«bas ķēdē, kad droŔās sāknÄ“Å”anas režīms ir aktÄ«vs un iegÅ«stot pilnÄ«gu kontroli pār turpmāko sāknÄ“Å”anas procesu, t.sk. citas operētājsistēmas ielāde, operētājsistēmas komponentu sistēmas modificÄ“Å”ana un bloÄ·Ä“Å”anas aizsardzÄ«bas apieÅ”ana.

Lai novērstu problēmas sāknÄ“Å”anas ielādētājā, izplatÄ«Å”anām bÅ«s jāizveido jauni iekŔējie ciparparaksti un jāatjaunina instalētāji, sāknÄ“Å”anas ielādētāji, kodola pakotnes, fwupd programmaparatÅ«ra un shim slānis. Pirms SBAT ievieÅ”anas sertifikātu atsaukÅ”anas saraksta (dbx, UEFI atsaukÅ”anas saraksta) atjaunināŔana bija priekÅ”noteikums, lai pilnÄ«bā bloķētu ievainojamÄ«bu, jo uzbrucējs neatkarÄ«gi no izmantotās operētājsistēmas varēja izmantot sāknÄ“Å”anas datu nesēju ar vecu, ievainojamu GRUB2 versiju, sertificēts ar ciparparakstu, lai apdraudētu UEFI Secure Boot .

Tā vietā, lai atsauktu parakstu, SBAT ļauj bloķēt tā izmantoÅ”anu atseviŔķiem komponentu versiju numuriem, neatsaucot droŔās sāknÄ“Å”anas atslēgas. Lai bloķētu ievainojamÄ«bas, izmantojot SBAT, nav jāizmanto UEFI sertifikātu atsaukÅ”anas saraksts (dbx), bet tas tiek veikts iekŔējās atslēgas aizstāŔanas lÄ«menÄ«, lai Ä£enerētu parakstus un atjauninātu GRUB2, shim un citus izplatÄ«jumu nodroÅ”inātos sāknÄ“Å”anas artefaktus. PaÅ”laik SBAT atbalsts jau ir pievienots populārākajiem Linux izplatÄ«jumiem.

Identificētās ievainojamības:

  • CVE-2021-3696, CVE-2021-3695 ir kaudzes bufera pārpildes, apstrādājot Ä«paÅ”i izstrādātus PNG attēlus, kurus teorētiski var izmantot, lai izpildÄ«tu uzbrucēja kodu un apietu UEFI Secure Boot. Tiek atzÄ«mēts, ka problēmu ir grÅ«ti izmantot, jo, lai izveidotu funkcionālu izmantoÅ”anu, ir jāņem vērā liels skaits faktoru un informācijas pieejamÄ«ba par atmiņas izkārtojumu.
  • CVE-2021-3697 ā€” bufera nepietiekamÄ«ba JPEG attēla apstrādes kodā. Problēmas izmantoÅ”anai ir nepiecieÅ”amas zināŔanas par atmiņas izkārtojumu, un tā ir aptuveni tādā paŔā sarežģītÄ«bas lÄ«menÄ« kā PNG problēma (CVSS 7.5).
  • CVE-2022-28733 ā€” vesela skaitļa pārpilde funkcijā grub_net_recv_ip4_packets() ļauj ietekmēt parametru rsm->total_len, nosÅ«tot Ä«paÅ”i izveidotu IP paketi. Problēma ir atzÄ«mēta kā visbÄ«stamākā no piedāvātajām ievainojamÄ«bām (CVSS 8.1). Ja tā tiek veiksmÄ«gi izmantota, ievainojamÄ«ba ļauj rakstÄ«t datus ārpus bufera robežas, pieŔķirot apzināti mazāku atmiņas apjomu.
  • CVE-2022-28734 ā€” viena baita bufera pārpilde, apstrādājot noņemtās HTTP galvenes. Parsējot Ä«paÅ”i izstrādātus HTTP pieprasÄ«jumus, problēma var izraisÄ«t GRUB2 metadatu bojājumus (nulles baita ierakstÄ«Å”ana tÅ«lÄ«t pēc bufera beigām).
  • CVE-2022-28735 Problēma shim_lock pārbaudÄ«tājā ļauj ielādēt failu bez kodola. IevainojamÄ«bu var izmantot, lai ielādētu neparakstÄ«tus kodola moduļus vai nepārbaudÄ«tu kodu UEFI droŔās sāknÄ“Å”anas režīmā.
  • CVE-2022-28736 Jau atbrÄ«vota piekļuve atmiņai funkcijā grub_cmd_chainloader(), izmantojot ķēdes ielādes komandas atkārtotu izpildi, ko izmanto, lai palaistu operētājsistēmas, kuras neatbalsta GRUB2. IzmantoÅ”ana var izraisÄ«t uzbrucēja koda izpildi, ja uzbrucējs spēj noteikt atmiņas sadalÄ«jumu GRUB2.
  • CVE-2022-28737 ā€” bufera pārpilde starplikas slānÄ« notiek funkcijā handle_image(), ielādējot un izpildot izstrādātus EFI attēlus.

Avots: opennet.ru

Pievieno komentāru