Vulnerabilități greu de remediat în GRUB2, care permit ocolirea UEFI Secure Boot

Informații despre 8 vulnerabilități în încărcătorul GRUB2 care permit ocolirea mecanismului UEFI Secure Boot și inițierea codului nevalidat, cum ar fi introducerea unui malware care funcționează la nivel de încărcător sau kernel.

Amintim că, în majoritatea distribuțiilor Linux, pentru încărcarea verificată în modul UEFI Secure Boot se folosește un strat mic, shim, semnat digital de Microsoft. Acest strat verifică GRUB2 cu propriul certificat, permițând dezvoltatorilor de distribuții să nu semneze fiecare actualizare a kernelului și GRUB cu Microsoft. Vulnerabilitățile din GRUB2 permit executarea codului propriu în etapa de după verificarea cu succes a shim-ului, dar înainte de încărcarea sistemului de operare, interpunându-se în lanțul de încredere în modul Secure Boot activ și obținând control complet asupra procesului de încărcare, inclusiv încărcarea unei alte OS, modificarea componentelor sistemului de operare și ocolirea protecției Lockdown.

La fel ca în cazul vulnerabilității BootHole de anul trecut, actualizarea încărcătorului nu este suficientă pentru a bloca problema, deoarece atacatorul, indiferent de sistemul de operare utilizat, poate compromite UEFI Secure Boot folosind un suport de boot cu o versiune veche vulnerabilă a GRUB2, semnată digital. Problema se rezolvă doar prin actualizarea listei certificatelor revocate (dbx, UEFI Revocation List), dar în acest caz se va pierde posibilitatea de a utiliza vechile suporturi de instalare cu Linux.

Pe sistemele cu firmware-uri în care a fost actualizată lista certificatelor revocate, în modul UEFI Secure Boot se vor putea încărca doar versiunile actualizate ale distribuțiilor Linux. Distribuțiile vor trebui să își actualizeze instalatoarele, încărcătoarele, pachetele cu kernel, firmware-urile fwupd și stratul shim, generând pentru acestea noi semnături digitale. Utilizatorii vor trebui să își actualizeze imaginile de instalare și alte suporturi de boot, precum și să încarce lista certificatelor revocate (dbx) în firmware-ul UEFI. Până la actualizarea dbx în UEFI, sistemul rămâne vulnerabil, indiferent de actualizările instalate în OS. Starea remedierii vulnerabilităților poate fi evaluată pe aceste pagini: Ubuntu, SUSE, RHEL, Debian.

Pentru a rezolva problemele apărute din distribuirea certificatelor revocate, în viitor este planificată implicarea mecanismului SBAT (UEFI Secure Boot Advanced Targeting), suportul căruia este implementat pentru GRUB2, shim și fwupd, și începând de la următoarele actualizări va fi folosit în locul funcționalității oferite de pachetul dbxtool. SBAT a fost dezvoltat în colaborare cu Microsoft și implică adăugarea în fișierele executabile ale componentelor UEFI a unor metadate noi, care includ informații despre producător, produs, componentă și versiune. Aceste metadate sunt semnate digital și pot fi incluse suplimentar în listele componentelor permise sau blocate pentru UEFI Secure Boot. Astfel, SBAT va permite manipularea numerelor versiunilor componentelor la revocare, fără a necesita regenerarea cheilor pentru Secure Boot și fără a crea semnături noi pentru nucleu, shim, grub2 și fwupd.

Vulnerabilitățile identificate:

  • CVE-2020-14372 — prin comanda acpi din GRUB2, un utilizator privilegiat al sistemului local poate încărca tabele ACPI modificate, plasând SSDT (Secondary System Description Table) în directorul /boot/efi și modificând setările din grub.cfg. În ciuda activității modului Secure Boot, SSDT propus va fi executat de nucleu și poate fi folosit pentru a dezactiva protecția LockDown, care blochează căile de ocolire a UEFI Secure Boot. În consecință, atacatorul poate reuși să încarce modulul său de nucleu sau să execute cod prin mecanismul kexec, fără verificarea semnăturii digitale.
  • CVE-2020-25632 — accesarea unei zone de memorie deja eliberate (use-after-free) în implementarea comenzii rmmod, care apare atunci când se încearcă descărcarea oricărui modul fără a ține cont de dependențele asociate. Vulnerabilitatea nu exclude crearea unui exploit care poate conduce la executarea codului fără verificarea Secure Boot.
  • CVE-2020-25647 — scrierea în afara limitei buffer-ului în funcția grub_usb_device_initialize(), apelată la inițializarea dispozitivelor USB. Problema poate fi exploatată prin conectarea unui dispozitiv USB special pregătit, care furnizează parametrii al căror dimensiune nu se potrivește cu dimensiunea buffer-ului alocat pentru structurile USB. Atacatorul poate reuși să execute codul, neverificat în Secure Boot, prin manipularea dispozitivelor USB.
  • CVE-2020-27749 — o depășire a buffer-ului în funcția grub_parser_split_cmdline(), care poate fi provocată prin specificarea variabilelor de linie de comandă GRUB2 mai mari de 1 KB. Vulnerabilitatea permite executarea codului în bypass-ul Secure Boot.
  • CVE-2020-27779 — comanda cutmem permite unui atacator să elimine un interval de adrese din memorie pentru a ocoli Secure Boot.
  • CVE-2021-3418 — modificările din shim_lock au creat un vector suplimentar pentru exploatarea vulnerabilității din anul trecut, CVE-2020-15705. Atunci când un certificat utilizat pentru semnarea GRUB2 este instalat în dbx, GRUB2 permitea încărcarea oricărui nucleu direct, fără a verifica semnătura.
  • CVE-2021-20225 — posibilitatea de a scrie date în afara buffer-ului atunci când se execută comenzi cu un număr foarte mare de opțiuni.
  • CVE-2021-20233 — posibilitatea de a scrie date dincolo de limitarea buffer-ului din cauza unui calcul greșit al dimensiunii buffer-ului când se folosesc ghilimele. Când s-a calculat dimensiunea, s-a presupus că scăparea unei apostrof necesită trei caractere, deși în realitate sunt necesare patru.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster