CPU-Sicherheitslücke: Spectre V2 ist auch bei Intel und ARM zurück
Bisherige Schutzmechanismen von Intel-Prozessoren und ARM-Kernen gegen Seitenkanalangriffe vom Typ Spectre V2 reichen nicht aus.
Eine neue Form der Branch Target Injection (BTI) alias Spectre V2 betrifft alle Intel-Prozessoren einschließlich der jüngsten Core i-12000 (Alder Lake) sowie alle Systems-on-Chip (SoCs) mit High-Performance-Standardkernen von ARM inklusive Cortex-X2, Cortex-A710 sowie Cortex-A78. Diese ARM-Kerne stecken in den meisten Smartphones.
Fünf Forscher der Vrije Universiteit Amsterdam haben einen neuen Dreh gefunden (PDF), um Schutzmechanismen zu umgehen, die ARM und Intel bisher in die Hardware eingebaut haben. Branch History Injection (BHI), auch Spectre Branch History Buffer (Spectre-BHB) genannt, zielt auf den Branch Target Buffer (BTB) ab: ein kleiner Cache, der die letzten Zieladressen für verschiedene Verzweigungen und Verzweigungskontexte speichert.
Da entsprechende Angriffe unter anderem aufgrund des notwendigen Timings kompliziert sind, stuft SuSE die beiden zu Intel gehörigen CVE-Nummern CVE-2022-0001 und CVE-2022-0002 mit CVSS-Score von 5,6 als "moderat gefährlich" ein, Intel selbst und AWS mit 4,7 noch etwas niedriger.
Für typisch genutzte Desktop-PCs und Notebooks stellen die neuen Sicherheitslücken keine wesentliche Bedrohung dar, weil sie viel schwieriger zu nutzen sind als andere gängige Sicherheitslücken.
AMD-Prozessoren sind nicht betroffen, haben aber mit anderen neuen Sicherheitslücken zu kämpfen.
Angriff auf den Cache
Die Sprungvorhersageeinheiten beziehen sich bei der spekulativen Ausführung auf den Branch Target Buffer. Der Clou: Der Cache arbeitet global, sodass Schadcode für den Branch Target Buffer auch Adressbereiche beeinflussen kann, die eigentlich höhere Zugriffsrechte verlangen, und so falsche Sprungvorhersagen verursachen kann. ARM schreibt dazu in der eigenen Dokumentation: "Bei solchen Implementierungen könnte Schadcode die Verzweigungshistorie aus einem Kontext manipulieren und falsche Vorhersagen in einem anderen Kontext erzwingen, was zur spekulativen Ausführung falscher Befehlsströme führt."
Die Zeitanalyse von Speicherzugriffen lässt sich dann dazu verwenden, an eigentlich geheime Daten zu kommen. In einem Machbarkeitsnachweis lasen die Forscher 160 Byte pro Sekunde aus und konnten so Passwörter ausfindig machen.
Spectre-BHB umgeht dabei bisherige Hardware-Schutzmechanismen wie Intels extended Indirect Branch Restricted Speculation (eIBRS) und ARMs CSV2, welche die Branch-Target-Buffer-Einträge innerhalb der Sprungvorhersageeinheiten über Privileg-Domänen hinweg isolieren, nicht aber den Cache einschließen.
Abhilfe per Software
Intel empfiehlt nun, den Zugriff auf verwaltete Laufzeitumgebungen in privilegierten Modi zu deaktivieren, um zu verhindern, dass verwaltete Laufzeiten wie der unprivilegierte Extended Berkeley Packet Filter (eBPF) im Kernel-Modus als Einfallstore genutzt werden. Die dafür notwendigen Werkzeuge sind im Linux-Kernel 5.16 enthalten.
ARM empfiehlt, Instruktionsschleifen zu verwenden, um die Historie im Branch Target Buffer zu verfälschen, oder den Cache regelmäßig komplett zu leeren (Cache-Flushes). Vor allem letztere Methode kostet potenziell jedoch Performance.
(mma)