GRUB2-s raskuslikud haavatavused võimaldavad UEFI Secure Boot'i ületamist

Paljastatud informatsioon 8 GRUB2 alglaadija haavatavuse kohta, mis võimaldab UEFI Secure Boot'i mehhanismi ületada ja käivitada mitteverifitseeritud koodi, näiteks viiruste sisenemist alglaadija või tuumas.

Tuletame meelde, et enamikus Linuxi jaotustes kasutatakse UEFI Secure Boot'i verifitseeritud käivitamiseks väikest shim-i kihti, mille on digitaalselt allkirjastanud Microsoft. See kiht verifitseerib GRUB2 enda sertifikaadiga, mis võimaldab jaotuste arendajatel mitte allkirjastada iga tuuma ja GRUB uuendust Microsoftis. GRUB2-s leiduvad haavatavused võimaldavad oma koodi käituda pärast shim'i eduka verifitseerimise etappi, kuid enne operatsioonisüsteemi laadimist, sekkudes usaldusketti aktiivse Secure Boot'i režiimi ajal ning saades täieliku kontrolli edasise laadimisprotsessi üle, sealhulgas teise operatsioonisüsteemi laadimine, operatsioonisüsteemi komponentide muutmine ja Lockdown'i kaitse ületamine.

Nagu eelneva aasta BootHole haavatavuse puhul, ei piisa probleemi lahendamiseks lihtsalt laadija värskendamisest, kuna ründaja, sõltumata kasutatavast operatsioonisüsteemist, võib UEFI Secure Boot'i kompromiteerimiseks kasutada vanemat haavatavat GRUB2 versiooni, mille digitaalne allkiri on kehtiv. Probleem lahendatakse ainult sertifikaatide tühistamise loendi (dbx, UEFI Revocation List) värskendamisega, kuid sel juhul kaob võimalus kasutada vanu Linuxi installikandjaid.

UEFI Secure Boot režiimis saavad süsteemid, millel on värskendatud tagasilükatud sertifikaatide nimekiri, laadida ainult värskendatud Linuxi levituste kompaktsioone. Levituselt on vajalik värskendada installijad, alglaadijad, tuumarakenduste paketid, fwupd-firmad ja shim-kiht, genereerides neile uued digitaalsed allkirjad. Kasutajad peavad värskendama installipilte ja muid alglaadimisvahendeid, samuti laadima UEFI püsivara sertifikaatide tagasilükkamise nimekirja (dbx). Enne dbx-i värskendamist UEFIs jääb süsteem haavatavaks, olenemata OS-i värskenduste installimisest. Haavatavuste kõrvaldamise staatust saab hinnata järgmistelt lehtedelt: Ubuntu, SUSE, RHEL, Debian.

Tulevikus kavatsetakse probleemide lahendamiseks, mis on seotud tagasivõetud sertifikaatide levitamisega, rakendada SBAT (UEFI Secure Boot Advanced Targeting) mehhanismi, mille toetus on rakendatud GRUB2, shim'i ja fwupd'i jaoks ning mida hakatakse kasutama alates järgmistest uuendustest, asendades dbxtool'i paketi pakutud funktsionaalsuse. SBAT on välja töötatud koostöös Microsoftiga ja tähendab täiendavate metateabe lisamist UEFI komponentide täidesaatvatesse failidesse, mis sisaldavad teavet tootja, toote, komponendi ja versiooni kohta. Need metaadressid allkirjastatakse digitaalselt ja neid saab lisada ka UEFI Secure Boot'i lubatud või keelatud komponentide loeteludesse. Seega võimaldab SBAT versiooninumbreid tagasivõetud komponentide puhul manipuleerida ilma, et oleks vaja Secure Boot'i võtmeid uuesti genereerida ja ilma vajaduseta koostada uusi allkirju kernel'i, shim'i, grub2 ja fwupd'i jaoks.

Tuvastatud haavatavused:

  • CVE-2020-14372 — GRUB2-s töötava acpi käsu abil võib privileege omav kohaliku süsteemi kasutaja laadida modifitseeritud ACPI tabelid, paigaldades SSDT (Secondary System Description Table) katalooge /boot/efi ning muutes seadistusi grub.cfg failis. Isegi Secure Boot'i režiimi aktiivsuse korral täidab tuum pakutud SSDT-d ja seda saab kasutada LockDown kaitse keelamiseks, mis takistab UEFI Secure Boot'i ringläbimist. Selle tulemusena võib ründaja laadida oma tuumamooduli või käivitada koodi kexec mehhanismi kaudu, ilma digitaalse allkirja kontrollimiseta.
  • CVE-2020-25632 — juba vabastatud mälu alale (use-after-free) viitamine rmmod käsu rakenduses, mis ilmneb katses laadida välja mistahes moodul, arvestamata sellega seotud sõltuvusi. Haavatavus ei välista eksploidi loomist, mis võib viia koodi täitmiseni, mööda Secure Boot'i kontrollimist.
  • CVE-2020-25647 — буfeerite piiri üles kirjutamise viga funktsioonis grub_usb_device_initialize(), mida kutsutakse välja USB-seadmete seadistamisel. Probleemi saab ära kasutada, kui ühendada spetsiaalselt valmistatud USB-seade, mis edastab parameetreid, mille suurus ei vasta USB-struktuuride jaoks eraldatud bufeeri suurusele. Ründaja võib saavutada koodi täitmise, mis ei ole Secure Boot'i poolt kontrollitud, manipuleerides USB-seadmetega.
  • CVE-2020-27749 — bufeeri ületäitumine funktsioonis grub_parser_split_cmdline(), mida võib esile kutsuda GRUB2 käsureal üle 1 KB suuruste muutujate määramine. See haavatavus võimaldab koodi täitmist, mööda minnes Secure Boot'ist.
  • CVE-2020-27779 — käsk cutmem annab ründajale võimaluse eemaldada aadresside vahemik mälust Secure Boot'ist mööda minekuks.
  • CVE-2021-3418 — muudatused shim_lock'is on loonud täiendava kanali eelmisel aastal avastatud haavatavuse CVE-2020-15705 ära kasutamiseks. dbx-i sertifikaadi paigaldamisel, mida kasutatakse GRUB2 allkirjastamiseks, võimaldas GRUB2 laadida mis tahes kernelit otse ilma allkirja kontrollimiseta.
  • CVE-2021-20225 — võimalus kirjutada andmeid bufeeri piiridest kaugemale, kui käivitatakse käske, millel on väga palju valikuid.
  • CVE-2021-20233 — andmete kirjutamise võimalus mälupiiri ületamiseks vale puhveri suuruse arvutamise tõttu tsiteerituna. Suuruse arvutamiseks arvati, et ühe jutumärgi eemaldamiseks on vaja kolme sümbolit, kuigi tegelikult on vaja nelja.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster