Nehezen orvosolható sebezhetőségek a GRUB2-ben, amelyek lehetővé teszik az UEFI Secure Boot megkerülését

Nyilvánosságra kerültek információk nyolc sebezhetőségről a GRUB2 betöltőben, amelyek lehetővé teszik az UEFI Secure Boot mechanizmus megkerülését és a nem ellenőrzött kód futtatását, például kártékony szoftver telepítését a betöltő vagy a kernel szintjén.

Emlékeztetünk arra, hogy a legtöbb Linux disztribúcióban az UEFI Secure Boot módú, ellenőrzött indításhoz egy kis shim réteg szükséges, amelyet a Microsoft digitális aláírása hitelesít. Ez a réteg a GRUB2-t a saját tanúsítványával hitelesíti, lehetővé téve a disztribúciók fejlesztői számára, hogy ne kelljen minden kernel és GRUB frissítést a Microsoftnál hitelesíteniük. A GRUB2-ben lévő sebezhetőségek lehetővé teszik, hogy a kódunk végrehajtása a shim sikeres hitelesítése után, de a operációs rendszer betöltése előtt történjen, beavatkozva a bizalmi láncba az aktív Secure Boot mód során, és teljes kontrollt kapva a további betöltési folyamat felett, beleértve más operációs rendszerek betöltését, az operációs rendszer összetevőinek módosítását és a Lockdown védelem megkerülését.

Ahogyan a tavalyi BootHole sebezhetőségnél is, a probléma megoldásához nem elegendő a betöltő frissítése, mivel a támadó, függetlenül az operációs rendszer használatától, felhasználhat egy régi sebezhető GRUB2 verzióval rendelkező indító médiát, amely digitális aláírással van hitelesítve az UEFI Secure Boot kompromittálására. A probléma csak a visszavont tanúsítványok listájának (dbx, UEFI Revocation List) frissítésével oldható meg, de ebben az esetben elveszik a lehetőség a régi Linux telepítő médiák használatára.

Azokban a rendszerekben, ahol a visszavont tanúsítványok listája frissítve lett, az UEFI Secure Boot módban csak a frissített Linux disztribúciók építményei tölthetők be. A disztribúcióknak frissíteniük kell az installálókat, a betöltőket, a kernel csomagokat, az fwupd firmware-t és a shim réteget, új digitális aláírásokat generálva számukra. A felhasználóknak frissíteniük kell az installáló képeket és egyéb betöltő médiákat, valamint be kell tölteniük a visszavont tanúsítványok listáját (dbx) az UEFI firmware-be. A dbx frissítése előtt az UEFI rendszer sebezhető marad, függetlenül az operációs rendszer frissítéseitől. A sebezhetőségek kijavításának státuszát az alábbi oldalakon lehet ellenőrizni: Ubuntu, SUSE, RHEL, Debian.

A jövőben a visszavont tanúsítványok elosztásából adódó problémák megoldására a SBAT (UEFI Secure Boot Advanced Targeting) mechanizmusként való alkalmazását tervezik, amelynek támogatása a GRUB2, shim és fwupd rendszerekben megvalósult, és a következő frissítések során a dbxtool csomag által biztosított funkciók helyett fogják használni. A SBAT-ot a Microsofttal közösen fejlesztették ki, és az UEFI komponensek végrehajtható fájljaiba új metaadatok hozzáadását jelenti, amelyek tartalmazzák a gyártó, termék, komponens és verzió információit. A megadott metaadatokat digitális aláírás igazolja, és továbbiakban be lehet őket vonni az UEFI Secure Boot engedélyezett vagy letiltott komponenseinek listájába. Így a SBAT lehetővé teszi a komponensverziók visszavonását anélkül, hogy új kulcsokat kellene generálni a Secure Boothoz, valamint új aláírásokat kellene létrehozni a kernel, shim, grub2 és fwupd számára.

Feltárt sebezhetőségek:

  • CVE-2020-14372 — a GRUB2-ben az acpi parancs segítségével a helyi rendszer privilegizált felhasználója módosított ACPI táblákat tölthet be, ha az SSDT-t (Secondary System Description Table) a /boot/efi könyvtárba helyezi, és megváltoztatja a grub.cfg beállításait. A Secure Boot üzemmód aktiválása ellenére a javasolt SSDT-t a kernel végrehajtja, és használható a LockDown védelem letiltására, amely megakadályozza az UEFI Secure Boot megkerülését. Ennek következtében a támadó képes lehet saját kernel modulját betölteni, vagy kódot futtatni a kexec mechanizmusán keresztül, anélkül, hogy a digitális aláírás ellenőrzésén kellene átesnie.
  • CVE-2020-25632 — a rmmod parancs megvalósításában a már felszabadított memória területhez való hozzáférés (use-after-free) lép fel, amikor bármilyen modult próbálnak meg eltávolítani anélkül, hogy figyelembe vennék a kapcsolódó függőségeket. Ez a sebezhetőség nem zárja ki egy exploit létrehozását, amely a Secure Boot ellenőrzésének megkerüléséhez vezethet.
  • CVE-2020-25647 — túllépés a pufferen a grub_usb_device_initialize() függvényben, amelyet USB-eszközök inicializálásakor hívnak meg. A probléma kihasználható, ha egy különlegesen előkészített USB-eszközt csatlakoztatnak, amely olyan paramétereket ad meg, amelyek mérete nem felel meg a USB struktúrákhoz kiutalt pufferméretnek. A támadó a Secure Boot általi ellenőrzés nélküli kódfuttatásra is képes lesz, ha manipulálja az USB-eszközöket.
  • CVE-2020-27749 — puffer túlfutás a grub_parser_split_cmdline() funkcióban, amelyet a GRUB2 parancssorában több mint 1 KB méretű változók megadásával lehet kiváltani. A sebezhetőség lehetővé teszi a kód végrehajtását a Secure Boot megkerülésével.
  • CVE-2020-27779 — a cutmem parancs lehetőséget ad a támadónak, hogy egy memória címtartományt töröljön a Secure Boot megkerüléséhez.
  • CVE-2021-3418 — a shim_lockban végrehajtott módosítások további kihasználási vektort hoztak létre a tavalyi CVE-2020-15705 sebezhetőséghez. A GRUB2 aláírásához használt tanúsítvány dbx-be való telepítésekor a GRUB2 lehetővé tette, hogy bármilyen kernelt közvetlenül betöltsenek ellenőrzés nélkül.
  • CVE-2021-20225 — a parancsok indítása során adatok írásának lehetősége a pufferen kívül, ha nagyon nagy számú opcióval indítják őket.
  • CVE-2021-20233 — adatok írásának lehetősége a puffer határán kívül a puffer méretének helytelen kiszámítása miatt idézőjelek használatakor. A méret kiszámításakor feltételezték, hogy egyetlen idézőjel escape-eléséhez három karakter szükséges, miközben valójában négy szükséges.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster