Svære at rette sårbarheder i GRUB2, der giver dig mulighed for at omgå UEFI Secure Boot

Der er blevet afsløret oplysninger om 8 sårbarheder i GRUB2-bootloaderen, som giver dig mulighed for at omgå UEFI Secure Boot-mekanismen og køre uverificeret kode, for eksempel implementere malware, der kører på bootloader- eller kerneniveau.

Lad os huske på, at i de fleste Linux-distributioner, til verificeret opstart i UEFI Secure Boot-tilstand, bruges et lille shim-lag, digitalt signeret af Microsoft. Dette lag verificerer GRUB2 med sit eget certifikat, som gør det muligt for distributionsudviklere ikke at få alle kerne- og GRUB-opdateringer certificeret af Microsoft. Sårbarheder i GRUB2 giver dig mulighed for at opnå eksekvering af din kode på stadiet efter vellykket shim-verifikation, men før du indlæser operativsystemet, kiler ind i tillidskæden, når Secure Boot-tilstanden er aktiv og får fuld kontrol over den videre opstartsproces, inkl. indlæsning af et andet OS, ændring af operativsystemets komponenter system og omgå Lockdown-beskyttelse.

Som med sidste års BootHole-sårbarhed er opdatering af bootloaderen ikke nok til at blokere problemet, da en angriber, uanset hvilket operativsystem der bruges, kan bruge opstartsmedier med en gammel, digitalt signeret, sårbar version af GRUB2 for at kompromittere UEFI Secure Boot. Problemet kan kun løses ved at opdatere certifikattilbagekaldelseslisten (dbx, UEFI-tilbagekaldelsesliste), men i dette tilfælde vil muligheden for at bruge gamle installationsmedier med Linux gå tabt.

På systemer med firmware, der har en opdateret certifikattilbagekaldelsesliste, kan kun opdaterede builds af Linux-distributioner indlæses i UEFI Secure Boot-tilstand. Distributionerne skal opdatere installationsprogrammer, bootloadere, kernepakker, fwupd-firmware og shim-lag og generere nye digitale signaturer til dem. Brugere skal opdatere installationsbilleder og andre opstartsmedier samt indlæse en certifikattilbagekaldelsesliste (dbx) i UEFI-firmwaren. Før du opdaterer dbx til UEFI, forbliver systemet sårbart uanset installationen af ​​opdateringer i OS. Status for sårbarheder kan vurderes på disse sider: Ubuntu, SUSE, RHEL, Debian.

For at løse problemer, der opstår ved distribution af tilbagekaldte certifikater, planlægges det i fremtiden at bruge SBAT-mekanismen (UEFI Secure Boot Advanced Targeting), som understøttes af GRUB2, shim og fwupd, og fra og med de næste opdateringer vil blive implementeret. bruges i stedet for den funktionalitet, der leveres af dbxtool-pakken. SBAT er udviklet i samarbejde med Microsoft og involverer tilføjelse af nye metadata til de eksekverbare filer af UEFI-komponenter, som omfatter information om producent, produkt, komponent og version. De angivne metadata er certificeret med en digital signatur og kan desuden inkluderes på listerne over tilladte eller forbudte komponenter til UEFI Secure Boot. Således vil SBAT give dig mulighed for at manipulere komponentversionsnumre under tilbagekaldelse uden behov for at genskabe nøgler til Secure Boot og uden at generere nye signaturer til kernen, shim, grub2 og fwupd.

Identificerede sårbarheder:

  • CVE-2020-14372 – Ved at bruge acpi-kommandoen i GRUB2 kan en privilegeret bruger på det lokale system indlæse modificerede ACPI-tabeller ved at placere en SSDT (Sekundær Systembeskrivelsestabel) i mappen /boot/efi og ændre indstillinger i grub.cfg. Selvom Secure Boot-tilstand er aktiv, vil den foreslåede SSDT blive eksekveret af kernen og kan bruges til at deaktivere LockDown-beskyttelse, der blokerer UEFI Secure Boot bypass-stier. Som et resultat kan en angriber opnå indlæsning af sit kernemodul eller kørende kode gennem kexec-mekanismen uden at tjekke den digitale signatur.
  • CVE-2020-25632 er en brug-efter-fri hukommelsesadgang i implementeringen af ​​rmmod-kommandoen, som opstår, når der gøres et forsøg på at aflæse ethvert modul uden at tage hensyn til de afhængigheder, der er forbundet med det. Sårbarheden udelukker ikke oprettelsen af ​​en udnyttelse, der kan føre til kodeeksekvering, der omgår sikker opstartsbekræftelse.
  • CVE-2020-25647 En out-of-bounds-skrivning i funktionen grub_usb_device_initialize() kaldet ved initialisering af USB-enheder. Problemet kan udnyttes ved at tilslutte en specielt forberedt USB-enhed, der producerer parametre, hvis størrelse ikke svarer til størrelsen af ​​bufferen, der er allokeret til USB-strukturer. En angriber kan opnå eksekvering af kode, der ikke er verificeret i Secure Boot ved at manipulere USB-enheder.
  • CVE-2020-27749 er et bufferoverløb i grub_parser_split_cmdline()-funktionen, som kan forårsages ved at specificere variabler større end 2 KB på GRUB1-kommandolinjen. Sårbarheden tillader kodeudførelse at omgå Secure Boot.
  • CVE-2020-27779 – Cutmem-kommandoen tillader en angriber at fjerne en række adresser fra hukommelsen for at omgå sikker opstart.
  • CVE-2021-3418 - Ændringer til shim_lock skabte en ekstra vektor til at udnytte sidste års sårbarhed CVE-2020-15705. Ved at installere det certifikat, der blev brugt til at signere GRUB2 i dbx, tillod GRUB2 at enhver kerne blev indlæst direkte uden at verificere signaturen.
  • CVE-2021-20225 - Mulighed for at skrive out-of-bounds data, når du kører kommandoer med et meget stort antal muligheder.
  • CVE-2021-20233 - Mulighed for at skrive data uden for grænserne på grund af forkert beregning af bufferstørrelse ved brug af anførselstegn. Ved beregning af størrelsen blev det antaget, at der krævedes tre tegn for at undslippe et enkelt citat, mens der faktisk krævedes fire.

Kilde: opennet.ru

Tilføj en kommentar