Kwetsbaarheden in GRUB2 waardoor u UEFI Secure Boot kunt omzeilen

Er zijn 2 kwetsbaarheden opgelost in de GRUB7-bootloader waarmee je het UEFI Secure Boot-mechanisme kunt omzeilen en niet-geverifieerde code kunt uitvoeren, bijvoorbeeld door malware te introduceren die op bootloader- of kernelniveau draait. Bovendien zit er één kwetsbaarheid in de shim-laag, waardoor u UEFI Secure Boot ook kunt omzeilen. De groep kwetsbaarheden kreeg de codenaam Boothole 3, vergelijkbaar met vergelijkbare problemen die eerder in de bootloader werden geïdentificeerd.

Om problemen in GRUB2 en shim op te lossen, kunnen distributies het SBAT-mechanisme (UEFI Secure Boot Advanced Targeting) gebruiken, dat wordt ondersteund voor GRUB2, shim en fwupd. SBAT is samen met Microsoft ontwikkeld en omvat het toevoegen van aanvullende metadata aan de uitvoerbare bestanden van UEFI-componenten, waaronder informatie over de fabrikant, het product, het onderdeel en de versie. De opgegeven metadata zijn gecertificeerd met een digitale handtekening en kunnen afzonderlijk worden opgenomen in de lijsten met toegestane of verboden componenten voor UEFI Secure Boot.

De meeste Linux-distributies gebruiken een kleine shim-laag die digitaal is ondertekend door Microsoft voor geverifieerd opstarten in de UEFI Secure Boot-modus. Deze laag verifieert GRUB2 met zijn eigen certificaat, waardoor distributieontwikkelaars niet elke kernel- en GRUB-update door Microsoft kunnen laten certificeren. Kwetsbaarheden in GRUB2 stellen je in staat om de uitvoering van je code te bewerkstelligen in de fase na succesvolle shim-verificatie, maar voordat het besturingssysteem wordt geladen, waardoor je in de vertrouwensketen terechtkomt wanneer de Secure Boot-modus actief is en volledige controle krijgt over het verdere opstartproces, inclusief een ander besturingssysteem laden, de componenten van het besturingssysteem wijzigen en de Lockdown-beveiliging omzeilen.

Om problemen in de bootloader op te lossen, zullen distributies nieuwe interne digitale handtekeningen moeten creëren en update-installatieprogramma's, bootloaders, kernelpakketten, fwupd-firmware en shim-laag moeten toevoegen. Vóór de introductie van SBAT was het bijwerken van de certificaatintrekkingslijst (dbx, UEFI Revocation List) een voorwaarde voor het volledig blokkeren van de kwetsbaarheid, aangezien een aanvaller, ongeacht het gebruikte besturingssysteem, opstartbare media met een oude kwetsbare versie van GRUB2 kon gebruiken. gecertificeerd door een digitale handtekening, om UEFI Secure Boot in gevaar te brengen.

In plaats van een handtekening in te trekken, kunt u met SBAT het gebruik ervan voor individuele componentversienummers blokkeren zonder dat u de sleutels voor Secure Boot hoeft in te trekken. Het blokkeren van kwetsbaarheden via SBAT vereist niet het gebruik van een UEFI-certificaatintrekkingslijst (dbx), maar wordt uitgevoerd op het niveau van het vervangen van de interne sleutel om handtekeningen te genereren en GRUB2, shim en andere door distributies geleverde opstartartefacten bij te werken. Momenteel is SBAT-ondersteuning al toegevoegd aan de meeste populaire Linux-distributies.

Geïdentificeerde kwetsbaarheden:

  • CVE-2021-3696 en CVE-2021-3695 zijn heap-gebaseerde bufferoverflows bij het verwerken van speciaal ontworpen PNG-afbeeldingen, die theoretisch kunnen worden gebruikt om aanvallercode uit te voeren en UEFI Secure Boot te omzeilen. Opgemerkt wordt dat het probleem moeilijk te exploiteren is, omdat voor het creëren van een werkende exploit rekening moet worden gehouden met een groot aantal factoren en de beschikbaarheid van informatie over de geheugenindeling.
  • CVE-2021-3697 - Een buffer-underflow in de JPEG-beeldverwerkingscode. Het exploiteren van dit probleem vereist kennis van de geheugenindeling en ligt op ongeveer hetzelfde niveau van complexiteit als het PNG-probleem (CVSS 7.5).
  • CVE-2022-28733 - Een overflow van gehele getallen in de functie grub_net_recv_ip4_packets() maakt het mogelijk dat de parameter rsm->total_len wordt beïnvloed door het verzenden van een speciaal vervaardigd IP-pakket. Het probleem wordt gemarkeerd als de gevaarlijkste van de gepresenteerde kwetsbaarheden (CVSS 8.1). Als de kwetsbaarheid met succes wordt misbruikt, kunnen gegevens buiten de buffergrens worden geschreven door een opzettelijk kleinere geheugengrootte toe te wijzen.
  • CVE-2022-28734 - Bufferoverloop van één byte bij het verwerken van gestripte HTTP-headers. Een probleem kan corruptie van GRUB2-metagegevens veroorzaken (het schrijven van een null-byte net na het einde van de buffer) bij het parseren van speciaal vervaardigde HTTP-verzoeken.
  • CVE-2022-28735 Een probleem in de shim_lock verifier maakt het laden van niet-kernelbestanden mogelijk. Het beveiligingslek kan worden gebruikt om niet-ondertekende kernelmodules of niet-geverifieerde code in de UEFI Secure Boot-modus te laden.
  • CVE-2022-28736 Een reeds vrijgemaakte geheugentoegang in de grub_cmd_chainloader() functie via een herhaling van de chainloader opdracht, gebruikt om besturingssystemen op te starten die niet ondersteund worden door GRUB2. Exploitatie kan resulteren in het uitvoeren van code van de aanvaller als de aanvaller in staat is de geheugentoewijzing in GRUB2 te bepalen
  • CVE-2022-28737 - Er treedt een bufferoverloop in de shim-laag op in de handle_image() functie bij het laden en uitvoeren van vervaardigde EFI-images.

Bron: opennet.ru

Voeg een reactie