BHI ist eine neue Schwachstelle der Spectre-Klasse in Intel- und ARM-Prozessoren

Eine Gruppe von Forschern der Freien Universität Amsterdam hat eine neue Schwachstelle in der Mikroarchitektur von Intel- und ARM-Prozessoren entdeckt. Es handelt sich um eine erweiterte Variante der Spectre-v2-Schwachstelle, die es ermöglicht, die in Prozessoren integrierten Schutzmechanismen eIBRS und CSV2 zu umgehen. Die Schwachstelle hat mehrere Namen: BHI (Branch History Injection, CVE-2022-0001), BHB (Branch History Buffer, CVE-2022-0002) und Spectre-BHB (CVE-2022-23960), die unterschiedliche Ausprägungen desselben Problems beschreiben (BHI ist ein Angriff auf verschiedene Berechtigungsstufen, z. B. den Benutzerprozess und den Kernel; BHB ist ein Angriff auf eine Berechtigungsstufe, z. B. eBPF JIT und den Kernel).

Die Forscher demonstrierten einen funktionierenden Exploit, der es ermöglicht, beliebige Daten aus dem Kernelspeicher aus dem Benutzerbereich zu extrahieren. Beispielsweise wird gezeigt, wie man mithilfe eines vorbereiteten Exploits eine Zeichenfolge mit dem Hash des Root-Benutzerpassworts aus Kernelpuffern extrahieren kann, die aus der Datei /etc/shadow geladen wurden. Der Exploit demonstriert die Möglichkeit, eine Schwachstelle innerhalb einer Berechtigungsebene (einen Angriff von Kernelebene auf den Kernel) mithilfe eines vom Benutzer geladenen eBPF-Programms auszunutzen. Alternativ zu eBPF können auch Spectre-Gadgets verwendet werden, Befehlssequenzen, die zur spekulativen Ausführung von Anweisungen führen.

Video ansehen

Die Sicherheitslücke betrifft die meisten aktuellen Intel-Prozessoren mit Ausnahme der Atom-Prozessorfamilie. Von den ARM-Prozessoren betrifft das Problem Cortex-A15, Cortex-A57, Cortex-A7*, Cortex-X1, Cortex-X2, Cortex-A710, Neoverse N1, Neoverse N2, Neoverse V1 und möglicherweise einige Cortex-R-Chips. Untersuchungen zufolge tritt die Sicherheitslücke bei AMD-Prozessoren nicht auf. Zur Lösung des Problems wurden mehrere Softwaremethoden zum Blockieren der Sicherheitslücke vorgeschlagen, die verwendet werden können, bis in zukünftigen CPU-Modellen ein Hardwareschutz eingeführt wird.

Um Angriffe über das eBPF-Subsystem zu blockieren, wird empfohlen, das Laden von eBPF-Programmen für Benutzer ohne Administratorrechte standardmäßig zu deaktivieren. Dies kann durch Schreiben des Werts 1 in die Datei „/proc/sys/kernel/unprivileged_bpf_disabled“ oder durch Ausführen des Befehls „sysctl -w kernel.unprivileged_bpf_disabled=1“ erreicht werden. Um Angriffe über Gadgets zu blockieren, wird die Verwendung der LFENCE-Anweisung in Codeabschnitten empfohlen, die potenziell zu spekulativer Ausführung führen. Es ist anzumerken, dass die Standardkonfiguration der meisten Distributionen … Linux Die notwendigen Sicherheitsmaßnahmen sind bereits implementiert und reichen aus, um den von den Forschern demonstrierten eBPF-Angriff zu blockieren. Intels Empfehlungen zur Deaktivierung des unprivilegierten Zugriffs auf eBPF werden standardmäßig ab dem Kernel angewendet. Linux 5.16 und wird auf frühere Zweige zurückportiert.

Konzeptionell ist BHI eine erweiterte Version des Spectre-v2-Angriffs. Dieser nutzt die Substitution von Werten im globalen Verzweigungsverlaufspuffer (Branch History Buffer), der in der CPU verwendet wird, um die Genauigkeit der Verzweigungsvorhersage unter Berücksichtigung des Verlaufs vergangener Verzweigungen zu verbessern, zusätzliche Schutzmechanismen (Intel eIBRS und Arm CSV2) zu umgehen und ein Datenleck zu verursachen. Während des Angriffs werden durch Manipulationen des Verzweigungsverlaufs Bedingungen für eine falsche Verzweigungsvorhersage und die spekulative Ausführung der erforderlichen Anweisungen geschaffen, deren Ergebnis im Cache abgelegt wird.

Abgesehen von der Verwendung eines Branch History Buffer anstelle eines Branch Target Buffer ist der neue Angriff identisch mit Spectre-v2. Die Aufgabe des Angreifers besteht darin, Bedingungen zu schaffen, damit die Adresse beim Ausführen einer spekulativen Operation aus dem Bereich der definierten Daten entnommen wird. Nach der Ausführung eines spekulativen indirekten Sprungs verbleibt die aus dem Speicher gelesene Sprungadresse im Cache. Anschließend kann sie mithilfe einer der Methoden zur Bestimmung des Cache-Inhalts, die auf einer Analyse der Änderung der Zugriffszeit auf zwischengespeicherte und nicht zwischengespeicherte Daten basieren, abgerufen werden.

Source: opennet.ru

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz und VPS-VDS-Servern 🔥 Kaufen Sie zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server | ProHoster