Vulnerabilități în GRUB2 care vă permit să ocoliți UEFI Secure Boot

Au fost remediate 2 vulnerabilități în bootloader-ul GRUB7 care vă permit să ocoliți mecanismul UEFI Secure Boot și să rulați cod neverificat, de exemplu, introduceți malware care rulează la nivel de bootloader sau kernel. În plus, există o vulnerabilitate în stratul shim, care vă permite, de asemenea, să ocoliți UEFI Secure Boot. Grupul de vulnerabilități a primit numele de cod Boothole 3, similar cu probleme similare identificate anterior în bootloader.

Pentru a depana problemele din GRUB2 și shim, distribuțiile vor putea folosi mecanismul SBAT (UEFI Secure Boot Advanced Targeting), care este acceptat pentru GRUB2, shim și fwupd. SBAT a fost dezvoltat împreună cu Microsoft și implică adăugarea de metadate suplimentare la fișierele executabile ale componentelor UEFI, care includ informații despre producător, produs, componentă și versiune. Metadatele specificate sunt certificate cu o semnătură digitală și pot fi incluse separat în listele de componente permise sau interzise pentru UEFI Secure Boot.

Cele mai multe distribuții Linux folosesc un strat mic shim semnat digital de Microsoft pentru pornirea verificată în modul UEFI Secure Boot. Acest strat verifică GRUB2 cu propriul certificat, ceea ce permite dezvoltatorilor de distribuție să nu aibă fiecare kernel și actualizare GRUB certificat de Microsoft. Vulnerabilitățile din GRUB2 vă permit să realizați execuția codului în etapa după verificarea reușită a shim-ului, dar înainte de a încărca sistemul de operare, să vă conectați în lanțul de încredere atunci când modul Secure Boot este activ și să obțineți control deplin asupra procesului de pornire ulterioară, inclusiv încărcarea unui alt sistem de operare, modificarea sistemului de componente ale sistemului de operare și ocolirea protecției Lockdown.

Pentru a remedia problemele din bootloader, distribuțiile vor trebui să creeze noi semnături digitale interne și să actualizeze instalatorii, bootloaderele, pachetele kernelului, firmware-ul fwupd și stratul shim. Înainte de introducerea SBAT, actualizarea listei de revocare a certificatelor (dbx, UEFI Revocation List) era o condiție prealabilă pentru blocarea completă a vulnerabilității, deoarece un atacator, indiferent de sistemul de operare utilizat, putea folosi medii de pornire cu o veche versiune vulnerabilă a GRUB2, certificat printr-o semnătură digitală, pentru a compromite UEFI Secure Boot .

În loc să revoce o semnătură, SBAT vă permite să blocați utilizarea acesteia pentru numerele de versiuni ale componentelor individuale fără a fi nevoie să revocați cheile pentru Secure Boot. Blocarea vulnerabilităților prin SBAT nu necesită utilizarea unei liste de revocare a certificatelor UEFI (dbx), dar se realizează la nivelul înlocuirii cheii interne pentru a genera semnături și a actualiza GRUB2, shim și alte artefacte de boot furnizate de distribuții. În prezent, suportul SBAT a fost deja adăugat la cele mai populare distribuții Linux.

Vulnerabilitati identificate:

  • CVE-2021-3696, CVE-2021-3695 sunt depășiri de buffer bazate pe heap atunci când procesează imagini PNG special concepute, care teoretic pot fi folosite pentru a executa codul atacatorului și a ocoli UEFI Secure Boot. Se observă că problema este dificil de exploatat, deoarece crearea unui exploit de lucru necesită luarea în considerare a unui număr mare de factori și disponibilitatea informațiilor despre aspectul memoriei.
  • CVE-2021-3697 - Un buffer underflow în codul de procesare a imaginii JPEG. Exploatarea problemei necesită cunoașterea aspectului memoriei și este aproximativ la același nivel de complexitate ca problema PNG (CVSS 7.5).
  • CVE-2022-28733 - O depășire a numărului întreg în funcția grub_net_recv_ip4_packets() permite ca parametrul rsm->total_len să fie afectat prin trimiterea unui pachet IP special conceput. Problema este marcată ca fiind cea mai periculoasă dintre vulnerabilitățile prezentate (CVSS 8.1). Dacă este exploatată cu succes, vulnerabilitatea permite ca datele să fie scrise dincolo de limita tamponului prin alocarea unei dimensiuni de memorie deliberat mai mici.
  • CVE-2022-28734 - Depășirea tamponului pe un singur octet la procesarea antetelor HTTP eliminate. O problemă poate cauza coruperea metadatelor GRUB2 (scrierea unui octet nul imediat după sfârșitul bufferului) atunci când se analizează solicitările HTTP special concepute.
  • CVE-2022-28735 O problemă a verificatorului shim_lock permite încărcarea fișierelor non-kernel. Vulnerabilitatea poate fi folosită pentru a încărca module kernel nesemnate sau cod neverificat în modul UEFI Secure Boot.
  • CVE-2022-28736 Un acces la memorie deja eliberat în funcția grub_cmd_chainloader() printr-o reluare a comenzii chainloader, folosită pentru a porni sistemele de operare neacceptate de GRUB2. Exploatarea ar putea duce la executarea codului atacatorului dacă atacatorul este capabil să determine alocarea memoriei în GRUB2
  • CVE-2022-28737 - O depășire a tamponului în stratul shim are loc în funcția handle_image() când se încarcă și se execută imagini EFI create.

Sursa: opennet.ru

Adauga un comentariu