GRUB2:n haavoittuvuudet, jotka voivat ohittaa UEFI Secure Bootin

GRUB2-käynnistyslataimeen on korjattu 7 haavoittuvuutta, jotka mahdollistavat UEFI Secure Boot -mekanismin ohituksen ja vahvistamattoman koodin suorittamisen, esimerkiksi käynnistyslataimen tai ytimen tasolla toimivien haittaohjelmien lisäämisen. Lisäksi välilevykerroksessa on yksi haavoittuvuus, jonka avulla voit myös ohittaa UEFI Secure Bootin. Haavoittuvuuksien ryhmä sai koodinimen Boothole 3, joka on samanlainen kuin samanlaiset käynnistyslataimessa aiemmin tunnistetut ongelmat.

GRUB2:n ja shim:n ongelmien korjaamiseksi jakelut voivat käyttää SBAT (UEFI Secure Boot Advanced Targeting) -mekanismia, jota tuetaan GRUB2:lle, shim:lle ja fwupd:lle. SBAT on kehitetty yhteistyössä Microsoftin kanssa, ja se sisältää metatietojen lisäämisen UEFI-komponentin suoritettaviin tiedostoihin, jotka sisältävät tietoja valmistajasta, tuotteesta, komponentista ja versiosta. Määritetyt metatiedot on digitaalisesti allekirjoitettu, ja ne voidaan sisällyttää erikseen UEFI Secure Bootin sallittujen tai kiellettyjen komponenttien luetteloihin.

Useimmat Linux-jakelut varmennetussa käynnistyksessä UEFI Secure Boot -tilassa käyttävät pientä välilevyä, jonka Microsoft on allekirjoittanut digitaalisesti. Tämä kerros vahvistaa GRUB2:n omalla varmenteella, jonka ansiosta jakelun kehittäjät eivät voi varmentaa jokaista ydintä ja GRUB-päivitystä Microsoftille. GRUB2:n haavoittuvuuksien avulla voit suorittaa koodisi siinä vaiheessa, kun välilevy on varmistettu onnistuneesti, mutta ennen käyttöjärjestelmän lataamista kiilautui luottamusketjuun Secure Boot -tilan ollessa aktiivinen ja sai täyden hallinnan myöhempää käynnistysprosessia kohtaan. mukaan lukien toisen käyttöjärjestelmän käynnistäminen, käyttöjärjestelmän komponenttien järjestelmän muokkaaminen ja ohituslukitussuojaus.

Korjatakseen käynnistyslataimen ongelmat jakelujen on luotava uudet sisäiset digitaaliset allekirjoitukset ja päivitettävä asennusohjelmat, käynnistyslataimet, ydinpaketit, fwupd-firmware ja shim-layer. Ennen SBAT:n käyttöönottoa peruutettujen varmenteiden luettelon (dbx, UEFI Revocation List) päivittäminen oli edellytys haavoittuvuuden täydelliselle estämiselle, koska hyökkääjä saattoi käytetystä käyttöjärjestelmästä riippumatta käyttää käynnistysmediaa vanhan haavoittuvan version kanssa. GRUB2 on sertifioitu digitaalisella allekirjoituksella UEFI Secure Bootin vaarantamiseksi.

Allekirjoituksen kumoamisen sijaan SBAT antaa sinun estää sen käytön yksittäisille komponenttien versionumeroille ilman, että sinun tarvitsee peruuttaa suojatun käynnistyksen avaimia. Haavoittuvuuksien estäminen SBAT:n kautta ei vaadi UEFI CRL:n (dbx) käyttöä, mutta se suoritetaan sisäisen avaimen korvaamisen tasolla allekirjoitusten luomiseksi ja GRUB2:n, välilevyn ja muiden jakelujen toimittamien käynnistysartefaktien päivittämiseksi. SBAT-tuki on nyt lisätty suosituimpiin Linux-jakeluihin.

Tunnistetut haavoittuvuudet:

  • CVE-2021-3696, CVE-2021-3695 - Keon puskuri vuotaa yli, kun käsitellään erityisesti suunniteltuja PNG-kuvia, joita voidaan teoriassa käyttää hyökkäävän koodin suorittamisen järjestämiseen ja UEFI Secure Bootin ohittamiseen. On huomattava, että ongelmaa on vaikea hyödyntää, koska toimivan hyödyntämisen luominen vaatii useiden tekijöiden huomioon ottamista ja tiedon saatavuuden muistin asettelusta.
  • CVE-2021-3697 - Puskurin alivuoto JPEG-kuvankäsittelykoodissa. Ongelman hyödyntäminen edellyttää muistin asettelun tuntemusta ja on suunnilleen samalla monimutkainen kuin PNG-ongelma (CVSS 7.5).
  • CVE-2022-28733 - Kokonaisluvun ylivuoto funktiossa grub_net_recv_ip4_packets(), jonka avulla voit vaikuttaa rsm->total_len-parametriin lähettämällä erityisesti muodostetun IP-paketin. Ongelma on merkitty vaarallisimmaksi esitetyistä haavoittuvuuksista (CVSS 8.1). Jos sitä hyödynnetään onnistuneesti, haavoittuvuus mahdollistaa tietojen kirjoittamisen puskurin rajojen ulkopuolelle varaamalla tarkoituksella pienemmän muistikoon.
  • CVE-2022-28734 - Yksitavuinen puskurin ylivuoto käsiteltäessä jaettuja HTTP-otsikoita. Ongelma voi aiheuttaa GRUB2-metatietojen vioittumisen (kirjoita tyhjä tavu juuri puskurin lopun jälkeen) jäsennettäessä erityisesti muotoiltuja HTTP-pyyntöjä.
  • CVE-2022-28735 - Ongelma shim_lock-tarkistajassa, joka sallii muiden kuin ydintiedostojen lataamisen. Haavoittuvuutta voidaan hyödyntää allekirjoittamattomien ydinmoduulien tai vahvistamattoman koodin käynnistämiseen UEFI Secure Boot -tilaan.
  • CVE-2022-28736 - Jo vapautetun muistialueen käyttäminen funktiossa grub_cmd_chainloader() suorittamalla uudelleen ketjulatauskomento, jota käytetään lataamaan käyttöjärjestelmiä, joita GRUB2 ei tue. Hyökkääminen voi johtaa hyökkääjäkoodin suorittamiseen, jos hyökkääjä pystyy määrittämään muistin varauksen yksityiskohdat GRUB2:ssa
  • CVE-2022-28737 - Puskurin ylivuoto välilevyssä hand_image()-funktiossa ladattaessa ja suoritettaessa mukautettuja EFI-kuvia.

Lähde: opennet.ru

Lisää kommentti