AMD, Intel & ARM: Spectre geht weiter um

Zwei neue Spectre-Schwachstellen betreffen AMDs Prozessoren mit Zen-1- und Zen-2-Architektur. Gegenmaßnahmen von Intel und ARM sind wirkungslos.

Artikel veröffentlicht am , Johannes Hiltscher
Vereinfachte Darstellung: Sprungvorhersage in modernen CPUs
Vereinfachte Darstellung: Sprungvorhersage in modernen CPUs (Bild: Wikimedia Commons/CC0 1.0)

In regelmäßigen Abständen tauchen weitere Varianten der Schwachstelle Spectre auf. Aktuell wurden zwei neue bekannt. Eine fand Sicherheitsforscher Pawel Wieczorkiewicz von Open Source Security, die zweite veröffentlichte (PDF) eine Forschergruppe aus den Niederlanden. Der Grund ist auch diesmal die spekulative Befehlsausführung von Prozessoren.

Stellenmarkt
  1. Automation Expert (d/m/w)
    OSRAM Opto Semiconductors Gesellschaft mit beschränkter Haftung, Regensburg
  2. IT-Projektleiter (m/w/d)
    TechniSat Digital GmbH, Daun
Detailsuche

Wieczorkiewicz entdeckte eine Spectre-v1-Variante in der Sprungvorhersage von AMDs Prozessoren mit Zen-1- und Zen-2-Mikroarchitektur. Die Details sind in zwei sehr ausführlichen Blogartikeln dokumentiert. Die niederländische Gruppe stellte fest, dass sich in aktuellen Intel- und ARM-Prozessoren integrierte Maßnahmen gegen Spectre-v2 umgehen lassen.

Bei der Spectre-v1-Variante führen die betroffenen Prozessoren nach unbedingten Sprungbefehlen mit fester Zieladresse stehenden Code spekulativ weiter aus. Betroffen sind die Befehle JMP, CALL und RET, welche so zur Ausleitung von Kerneldaten nutzbar sind.

Dies ist, wie Entdecker Wieczorkiewicz selbst schreibt, sehr unerwartet. Alle Daten liegen vor, eigentlich gibt es keinen Grund, Befehle nach den Sprunganweisungen weiter auszuführen. Allerdings ist bei ARM ähnliches Verhalten als Straight-Line Speculation bekannt. Da die betroffenen Anweisungen sehr häufig vorkommen, steigt die Zahl der potenziell für Angriffe nutzbaren Codesequenzen.

Golem Akademie
  1. LPI DevOps Tools Engineer – Prüfungsvorbereitung: virtueller Zwei-Tage-Workshop
    21./22.07.2022, Virtuell
  2. Microsoft 365 Security: virtueller Drei-Tage-Workshop
    29.06.-01.07.2022, Virtuell
Weitere IT-Trainings

Der Grund liegt in einer Heuristik der Sprungvorhersage. Diese nutzt unter anderem den Branch Target Buffer (BTB), welcher die Adressen von Sprungzielen speichert. Jeder Sprung, für den kein Eintrag im BTB existiert, wird als nicht ausgeführt angenommen. Dies wendet das Frontend der Prozessoren, welches Befehle aus dem Speicher holt und die Sprungvorhersage enthält, auf alle Sprungbefehle an. So werden auch die oben genannten Sprünge übergangen, die immer ausgeführt werden.

Unvollständige Gegenmaßnahmen bei Intel und ARM

Bei Spectre-v2 hingegen steuert eine Anwendung die spekulative Ausführung einer höheren Prioritätsebene (Kernel oder Hypervisor) gezielt in eine bestimmte Richtung. Dies wird als Branch Target Injection (BTI) bezeichnet und sollte durch Hardware-Maßnahmen in neueren Intel- und ARM-Prozessoren verhindert werden. Allerdings fand das niederländische Forscherteam Lücken in der Umsetzung. Betroffen sind Intels Prozessoren der Generationen zehn bis zwölf sowie Cascade- und Ice-Lake-Xeons, bei ARM Cortex A76 und X1.

Die Hardware-Gegenmaßnahmen versagen, da sie nicht auf alle Sprung-Caches wirken. Sie sollen verhindern, dass Sprungbefehle einer Anwendung sich auf eine höhere Prioritätsebene auswirken. Zwar sind die Einträge des BTB isoliert, der Branch History Buffer (BHB) wird jedoch weiterhin für alle Prioritätsebenen genutzt.

Den BHB nutzt die Sprungvorhersage, um bei bedingten Sprüngen den spekulativ ausgeführten Pfad auszuwählen. Da der BHB weiterhin von einer Anwendung manipuliert werden kann, lässt sich der privilegierte Code auf einen gewünschten spekulativen Pfad schicken. Das Forscherteam wählte daher die Bezeichnung Branch History Injection (BHI).

Einordnung und Gegenmaßnahmen

Die gefundenen Schwachstellen sind beide kompliziert auszunutzen. Auch die Rate, mit der Daten ausgelesen werden können, ist bei beiden gering. So stuft beispielsweise Suse beide Schwachstellen als moderat ein.

AMDs Prozessoren lassen sich zwar durch Löschen des BTB gezielt in den anfälligen Zustand bringen. Allerdings können nur wenige Befehle ausgeführt werden, da die spekulative Ausführung schnell beendet wird. Der Zugriff auf Daten ist sehr eingeschränkt, da diese entweder in einem Register oder im Store-Buffer liegen müssen.

AMD schlägt Abhilfen vor (PDF), sie erhöhen jedoch entweder die Codemenge oder verringern die Leistung. Hinter JMP und RET kann mittels wirkungsloser Anweisungen wie INT3 aufgefüllt werden, um das Spekulationsfenster zu schließen. Für CALL existieren verschiedene Lösungen, da einige mit bestimmten Konventionen zum Funktionsaufruf Probleme bereiten. Die einfachste ist, die spekulative Ausführung mittels LFENCE zu verbieten, dies kostet allerdings viel Leistung.

Als Maßnahme gegen BHI schlagen die Entdecker vor, wieder auf Retpoline zu setzen, dies sei die Maßnahme mit den geringsten Leistungseinbußen. Außerdem sollte die Möglichkeit, nutzerkontrollierten Code in den Kernel einzuspeisen, auf privilegierte Nutzer beschränkt werden. Der extended Berkeley Packet Filter (eBPF) beispielsweise erlaubt dies, wodurch gezielt Schwachstellen im Kernel installiert werden können.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed


sambache 12. Mär 2022

Jede Lösung des Problems würde die CPUs sehr stark ausbremsen. Nimm einfach eine CPU...

Myxin 11. Mär 2022

Ja, musste auch etwas schmunzeln und habe dann aufgehört. :-) Meckis Erklärung hat gelangt.



Aktuell auf der Startseite von Golem.de
Halbleiter & SMIC
Chip-Nachfrage für Smartphones und PC fällt "wie ein Stein"

Chinesische Kunden von SMIC haben volle Lager und ordern weniger Chips. Andere Halbleiter sollen den Einbruch auffangen.

Halbleiter & SMIC: Chip-Nachfrage für Smartphones und PC fällt wie ein Stein
Artikel
  1. Google: Russland will Youtube aus Selbstschutz nicht blockieren
    Google
    Russland will Youtube aus Selbstschutz nicht blockieren

    Die zahlreichen Drohungen der russischen Zensurbehörde zur Blockade von Youtube werden wohl nicht umgesetzt. Die Auswirkungen wären zu stark.

  2. Arclight Rumble: Wegen Warcraft Mobile sollte sich Blizzard selbst verklagen!
    Arclight Rumble
    Wegen Warcraft Mobile sollte sich Blizzard selbst verklagen!

    Golem.de hat es gespielt: Arclight Rumble entpuppt sich als gelungenes Mobile Game - aber wie ein echtes Warcraft fühlt es sich nicht an.
    Von Peter Steinlechner

  3. Biontech: Mainz kann 365-Euro-ÖPNV-Ticket dank Corona einführen
    Biontech
    Mainz kann 365-Euro-ÖPNV-Ticket dank Corona einführen

    In Mainz ist Biontech beheimatet, was die Steuereinnahmen explodieren lässt. Mit dem Geld wird nun ein 365-Euro-Jahresticket für Schüler und Azubis finanziert.

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    Daily Deals • PS5 jetzt bestellbar • Cyber Week: Bis zu 900€ Rabatt auf E-Bikes • MindStar (u. a. Intel Core i9 529€, MSI RTX 3060 Ti 609€) • Gigabyte Waterforce Mainboard günstig wie nie: 480,95€ • Razer Ornata V2 Gaming-Tastatur günstig wie nie: 54,99€ • AOC G3 Gaming-Monitor 34" 165 Hz günstig wie nie: 404€ [Werbung]
    •  /