Sicherheitslücken in GRUB2, die es Ihnen ermöglichen, UEFI Secure Boot zu umgehen

Im GRUB2-Bootloader wurden 7 Schwachstellen behoben, die es Ihnen ermöglichen, den UEFI Secure Boot-Mechanismus zu umgehen und nicht überprüften Code auszuführen, um beispielsweise Malware einzuschleusen, die auf Bootloader- oder Kernel-Ebene ausgeführt wird. Darüber hinaus gibt es eine Schwachstelle in der Shim-Schicht, die es Ihnen auch ermöglicht, UEFI Secure Boot zu umgehen. Die Gruppe von Schwachstellen trug den Codenamen Boothole 3, ähnlich wie ähnliche Probleme, die zuvor im Bootloader identifiziert wurden.

Um Probleme in GRUB2 und Shim zu beheben, können Distributionen den SBAT-Mechanismus (UEFI Secure Boot Advanced Targeting) verwenden, der für GRUB2, Shim und fwupd unterstützt wird. SBAT wurde gemeinsam mit Microsoft entwickelt und beinhaltet das Hinzufügen zusätzlicher Metadaten zu den ausführbaren Dateien von UEFI-Komponenten, darunter Informationen zu Hersteller, Produkt, Komponente und Version. Die angegebenen Metadaten werden mit einer digitalen Signatur zertifiziert und können separat in die Listen der erlaubten oder verbotenen Komponenten für UEFI Secure Boot aufgenommen werden.

Die meisten Linux-Distributionen verwenden eine kleine, von Microsoft digital signierte Shim-Schicht für verifiziertes Booten im UEFI Secure Boot-Modus. Diese Ebene verifiziert GRUB2 mit einem eigenen Zertifikat, was es Distributionsentwicklern ermöglicht, nicht jeden Kernel und jedes GRUB-Update von Microsoft zertifizieren zu lassen. Schwachstellen in GRUB2 ermöglichen es Ihnen, die Ausführung Ihres Codes bereits in der Phase nach erfolgreicher Shim-Verifizierung, jedoch vor dem Laden des Betriebssystems, zu erreichen, sich bei aktivem Secure Boot-Modus in die Vertrauenskette einzuklinken und die volle Kontrolle über den weiteren Boot-Vorgang zu erlangen, einschließlich Laden eines anderen Betriebssystems, Ändern der Betriebssystemkomponenten und Umgehen des Sperrschutzes.

Um Probleme im Bootloader zu beheben, müssen Distributionen neue interne digitale Signaturen erstellen und Installationsprogramme, Bootloader, Kernelpakete, fwupd-Firmware und Shim-Layer aktualisieren. Vor der Einführung von SBAT war die Aktualisierung der Zertifikatssperrliste (dbx, UEFI Revocation List) eine Voraussetzung für die vollständige Blockierung der Schwachstelle, da ein Angreifer, unabhängig vom verwendeten Betriebssystem, bootfähige Medien mit einer alten anfälligen Version von GRUB2 verwenden konnte, durch eine digitale Signatur zertifiziert, um UEFI Secure Boot zu gefährden.

Anstatt eine Signatur zu widerrufen, können Sie mit SBAT deren Verwendung für einzelne Komponentenversionsnummern blockieren, ohne die Schlüssel für Secure Boot widerrufen zu müssen. Das Blockieren von Schwachstellen über SBAT erfordert nicht die Verwendung einer UEFI-Zertifikatsperrliste (dbx), sondern erfolgt auf der Ebene des Ersetzens des internen Schlüssels, um Signaturen zu generieren und GRUB2, Shim und andere von Distributionen bereitgestellte Boot-Artefakte zu aktualisieren. Derzeit ist die SBAT-Unterstützung bereits in den meisten gängigen Linux-Distributionen enthalten.

Identifizierte Schwachstellen:

  • CVE-2021-3696, CVE-2021-3695 sind Heap-basierte Pufferüberläufe bei der Verarbeitung speziell entwickelter PNG-Bilder, die theoretisch zur Ausführung von Angreifercode und zur Umgehung von UEFI Secure Boot verwendet werden können. Es wird darauf hingewiesen, dass das Problem schwer auszunutzen ist, da die Erstellung eines funktionierenden Exploits die Berücksichtigung einer Vielzahl von Faktoren und die Verfügbarkeit von Informationen über das Speicherlayout erfordert.
  • CVE-2021-3697 – Ein Pufferunterlauf im JPEG-Bildverarbeitungscode. Die Ausnutzung des Problems erfordert Kenntnisse über das Speicherlayout und ist ungefähr so ​​komplex wie das PNG-Problem (CVSS 7.5).
  • CVE-2022-28733 – Ein Ganzzahlüberlauf in der Funktion grub_net_recv_ip4_packets() ermöglicht, dass der Parameter rsm->total_len durch das Senden eines speziell gestalteten IP-Pakets beeinflusst wird. Das Problem wird als die gefährlichste der vorgestellten Schwachstellen eingestuft (CVSS 8.1). Bei erfolgreicher Ausnutzung ermöglicht die Schwachstelle das Schreiben von Daten über die Puffergrenze hinaus, indem bewusst eine kleinere Speichergröße zugewiesen wird.
  • CVE-2022-28734 – Einzelbyte-Pufferüberlauf bei der Verarbeitung entfernter HTTP-Header. Beim Parsen speziell gestalteter HTTP-Anfragen kann ein Problem zu einer Beschädigung der GRUB2-Metadaten führen (Schreiben eines Nullbytes direkt nach dem Ende des Puffers).
  • CVE-2022-28735 Ein Problem im shim_lock-Verifizierer ermöglicht das Laden von Nicht-Kernel-Dateien. Die Schwachstelle kann genutzt werden, um nicht signierte Kernel-Module oder nicht verifizierten Code im UEFI Secure Boot-Modus zu laden.
  • CVE-2022-28736 Ein bereits freigegebener Speicherzugriff in der Funktion grub_cmd_chainloader() durch eine erneute Ausführung des Chainloader-Befehls, der zum Booten von Betriebssystemen verwendet wird, die von GRUB2 nicht unterstützt werden. Die Ausnutzung könnte zur Ausführung von Angreifercode führen, wenn der Angreifer in der Lage ist, die Speicherzuordnung in GRUB2 zu bestimmen
  • CVE-2022-28737 – Beim Laden und Ausführen von manipulierten EFI-Bildern kommt es in der Funktion handle_image() zu einem Pufferüberlauf in der Shim-Schicht.

Source: opennet.ru

Kommentar hinzufügen