A GRUB2 biztonsági rései, amelyek lehetővé teszik az UEFI Secure Boot megkerülését

2 sérülékenységet javítottak ki a GRUB7 rendszerbetöltőben, amelyek lehetővé teszik az UEFI Secure Boot mechanizmusának megkerülését és ellenőrizetlen kód futtatását, például rendszerbetöltő vagy kernel szinten futó rosszindulatú programokat. Ezenkívül van egy sebezhetőség az alátétrétegben, amely szintén lehetővé teszi az UEFI Secure Boot megkerülését. A biztonsági rések csoportja a Boothole 3 kódnevet kapta, hasonlóan a rendszerbetöltőben korábban azonosított hasonló problémákhoz.

A GRUB2 és a shim problémáinak elhárításához a disztribúciók használhatják az SBAT (UEFI Secure Boot Advanced Targeting) mechanizmust, amelyet a GRUB2, shim és fwupd támogat. Az SBAT-ot a Microsofttal közösen fejlesztették ki, és további metaadatokat adnak hozzá az UEFI-összetevők futtatható fájljaihoz, amelyek információkat tartalmaznak a gyártóról, a termékről, az összetevőről és a verzióról. A megadott metaadatok digitális aláírással vannak hitelesítve, és külön-külön felvehetők az UEFI Secure Boot engedélyezett vagy tiltott összetevőinek listájába.

A legtöbb Linux-disztribúció egy kis, a Microsoft által digitálisan aláírt alátétréteget használ az UEFI Secure Boot módban történő igazolt rendszerindításhoz. Ez a réteg saját tanúsítvánnyal ellenőrzi a GRUB2-t, ami lehetővé teszi, hogy a disztribúciófejlesztők ne rendelkezzenek minden kernel- és GRUB-frissítéssel a Microsoft által tanúsított tanúsítvánnyal. A GRUB2 biztonsági rései lehetővé teszik a kód végrehajtását a sikeres alátétellenőrzést követő szakaszban, de az operációs rendszer betöltése előtt, a bizalmi láncba ékelődve, amikor a biztonságos rendszerindítási mód aktív, és teljes irányítást szerezhet a további rendszerindítási folyamat felett, beleértve másik operációs rendszer betöltése, az operációs rendszer összetevőinek rendszerének módosítása és a zárolás elleni védelem megkerülése.

A rendszerbetöltő problémáinak megoldásához a disztribúcióknak új belső digitális aláírásokat kell létrehozniuk, és frissíteniük kell a telepítőket, a rendszerbetöltőket, a kernelcsomagokat, az fwupd firmware-t és az alátétréteget. Az SBAT bevezetése előtt a tanúsítvány-visszavonási lista (dbx, UEFI visszavonási lista) frissítése előfeltétele volt a biztonsági rés teljes blokkolásának, mivel a támadó, függetlenül a használt operációs rendszertől, a GRUB2 régi, sebezhető verziójával használhatott rendszerindító adathordozót, digitális aláírással hitelesített, az UEFI Secure Boot kompromittálására.

Az aláírás visszavonása helyett az SBAT lehetővé teszi annak letiltását az egyes összetevők verziószámaihoz anélkül, hogy visszavonná a biztonságos rendszerindítás kulcsait. A sérülékenységek SBAT-on keresztüli blokkolásához nem szükséges UEFI-tanúsítvány-visszavonási lista (dbx) használata, hanem a belső kulcs cseréjének szintjén hajtják végre az aláírások generálásához, valamint a GRUB2, az alátét és a disztribúciók által biztosított egyéb rendszerindítási melléktermékek frissítéséhez. Jelenleg az SBAT támogatást már hozzáadták a legnépszerűbb Linux disztribúciókhoz.

Azonosított sebezhetőségek:

  • A CVE-2021-3696, CVE-2021-3695 halomalapú puffertúlcsordulás a speciálisan tervezett PNG-képek feldolgozásakor, amelyek elméletileg felhasználhatók támadókód végrehajtására és az UEFI Secure Boot megkerülésére. Megjegyzendő, hogy a problémát nehéz kihasználni, mivel egy működő exploit létrehozásához számos tényező figyelembe vétele és a memóriaelrendezéssel kapcsolatos információk elérhetősége szükséges.
  • CVE-2021-3697 – Puffer alulcsordulás a JPEG képfeldolgozó kódban. A probléma kihasználásához a memóriaelrendezés ismeretére van szükség, és körülbelül ugyanolyan bonyolultságú, mint a PNG probléma (CVSS 7.5).
  • CVE-2022-28733 – A grub_net_recv_ip4_packets() függvényben lévő egész szám túlcsordulása lehetővé teszi az rsm->total_len paraméter befolyásolását egy speciálisan kialakított IP-csomag küldésével. A problémát a bemutatott sebezhetőségek közül a legveszélyesebbnek tartják (CVSS 8.1). Sikeres kihasználás esetén a sérülékenység szándékosan kisebb memóriaméret lefoglalásával lehetővé teszi adatok írását a pufferhatáron túlra.
  • CVE-2022-28734 – Egybájtos puffertúlcsordulás a törölt HTTP-fejlécek feldolgozásakor. Egy probléma a GRUB2 metaadat-sérülését okozhatja (egy null byte írása közvetlenül a puffer vége után) a speciálisan kialakított HTTP-kérelmek elemzésekor.
  • CVE-2022-28735 A shim_lock ellenőrző hibája lehetővé teszi a nem kernel fájl betöltését. A biztonsági rés aláíratlan kernelmodulok vagy ellenőrizetlen kód betöltésére használható UEFI Secure Boot módban.
  • CVE-2022-28736 Egy már felszabadult memória-hozzáférés a grub_cmd_chainloader() függvényben a chainloader parancs ismételt futtatásával, amely a GRUB2 által nem támogatott operációs rendszerek indítására szolgál. A kihasználás támadókód futtatását eredményezheti, ha a támadó képes meghatározni a memóriafoglalást a GRUB2-ben
  • CVE-2022-28737 - Az illesztőrétegben puffertúlcsordulás lép fel a handle_image() függvényben kialakított EFI-képek betöltésekor és végrehajtásakor.

Forrás: opennet.ru

Hozzászólás