Ranljivosti v GRUB2, ki vam omogočajo, da obidete UEFI Secure Boot

V zagonskem nalagalniku GRUB2 je bilo odpravljenih 7 ranljivosti, ki vam omogočajo, da obidete mehanizem varnega zagona UEFI in zaženete nepreverjeno kodo, na primer implementirate zlonamerno programsko opremo, ki se izvaja na ravni zagonskega nalagalnika ali jedra. Poleg tega obstaja ena ranljivost v sloju podložke, ki vam prav tako omogoča, da obidete UEFI Secure Boot. Skupina ranljivosti je bila poimenovana Boothole 3, podobno podobnim težavam, ki so bile prej ugotovljene v zagonskem nalagalniku.

Za odpravljanje težav v GRUB2 in shim bodo distribucije lahko uporabljale mehanizem SBAT (UEFI Secure Boot Advanced Targeting), ki je podprt za GRUB2, shim in fwupd. SBAT je bil razvit skupaj z Microsoftom in vključuje dodajanje dodatnih metapodatkov v izvedljive datoteke komponent UEFI, ki vključujejo podatke o proizvajalcu, izdelku, komponenti in različici. Navedeni metapodatki so potrjeni z digitalnim podpisom in jih je mogoče ločeno vključiti na sezname dovoljenih ali prepovedanih komponent za UEFI Secure Boot.

Večina distribucij Linuxa za preverjen zagon v načinu UEFI Secure Boot uporablja majhno podložno plast, ki jo digitalno podpiše Microsoft. Ta plast preverja GRUB2 z lastnim potrdilom, ki razvijalcem distribucij omogoča, da Microsoft ne potrdi vsakega jedra in posodobitve GRUB. Ranljivosti v GRUB2 vam omogočajo, da dosežete izvedbo vaše kode na stopnji po uspešnem preverjanju shim, vendar pred nalaganjem operacijskega sistema, zagozditvijo v verigo zaupanja, ko je način varnega zagona aktiven, in pridobitvijo popolnega nadzora nad nadaljnjim postopkom zagona, vključno z nalaganje drugega operacijskega sistema, spreminjanje sistemskih komponent operacijskega sistema in obhod zaščite pred zaklepanjem.

Da bi odpravili težave v zagonskem nalagalniku, bodo morale distribucije ustvariti nove notranje digitalne podpise in posodobiti namestitvene programe, zagonske nalagalnike, pakete jedra, vdelano programsko opremo fwupd in plast podložke. Pred uvedbo SBAT je bila posodobitev seznama preklicanih potrdil (dbx, UEFI Revocation List) pogoj za popolno blokado ranljivosti, saj je lahko napadalec, ne glede na uporabljeni operacijski sistem, uporabil zagonski medij s staro ranljivo različico GRUB2, potrjeno z digitalnim podpisom, da ogrozijo UEFI Secure Boot.

Namesto preklica podpisa vam SBAT omogoča, da blokirate njegovo uporabo za posamezne številke različic komponent, ne da bi morali preklicati ključe za varen zagon. Blokiranje ranljivosti prek SBAT ne zahteva uporabe seznama preklicanih potrdil UEFI (dbx), ampak se izvaja na ravni zamenjave notranjega ključa za ustvarjanje podpisov in posodobitev GRUB2, shim in drugih zagonskih artefaktov, ki jih zagotavljajo distribucije. Trenutno je podpora za SBAT že dodana večini priljubljenih distribucij Linuxa.

Ugotovljene ranljivosti:

  • CVE-2021-3696, CVE-2021-3695 so prekoračitve medpomnilnika na osnovi kopice pri obdelavi posebej zasnovanih slik PNG, ki jih je teoretično mogoče uporabiti za izvajanje napadalčeve kode in obhod UEFI Secure Boot. Opozoriti je treba, da je težavo težko izkoristiti, saj ustvarjanje delujočega izkoriščanja zahteva upoštevanje velikega števila dejavnikov in razpoložljivosti informacij o postavitvi pomnilnika.
  • CVE-2021-3697 – Prenizek medpomnilnik v kodi za obdelavo slik JPEG. Izkoriščanje težave zahteva poznavanje postavitve pomnilnika in je na približno enaki ravni zapletenosti kot težava PNG (CVSS 7.5).
  • CVE-2022-28733 – Celoštevilski preliv v funkciji grub_net_recv_ip4_packets() omogoča, da na parameter rsm->total_len vpliva pošiljanje posebej oblikovanega paketa IP. Težava je označena kot najnevarnejša od predstavljenih ranljivosti (CVSS 8.1). Če je ranljivost uspešno izkoriščena, omogoča zapisovanje podatkov prek meje vmesnega pomnilnika z namerno dodelitvijo manjše velikosti pomnilnika.
  • CVE-2022-28734 – Enobajtna prekoračitev medpomnilnika pri obdelavi odstranjenih glav HTTP. Težava lahko povzroči poškodbo metapodatkov GRUB2 (zapisovanje ničelnega bajta takoj po koncu medpomnilnika) pri razčlenjevanju posebej oblikovanih zahtev HTTP.
  • CVE-2022-28735 Težava v preverjalniku shim_lock dovoljuje nalaganje datotek brez jedra. Ranljivost je mogoče uporabiti za nalaganje nepodpisanih modulov jedra ali nepreverjene kode v načinu varnega zagona UEFI.
  • CVE-2022-28736 Že sproščen dostop do pomnilnika v funkciji grub_cmd_chainloader() s ponovnim zagonom ukaza chainloader, ki se uporablja za zagon operacijskih sistemov, ki jih GRUB2 ne podpira. Izkoriščanje bi lahko povzročilo izvedbo kode napadalca, če lahko napadalec določi dodelitev pomnilnika v GRUB2
  • CVE-2022-28737 – Do prekoračitve medpomnilnika v sloju shim pride v funkciji handle_image() pri nalaganju in izvajanju oblikovanih slik EFI.

Vir: opennet.ru

Dodaj komentar