Nachrichten

Alle Prozessoren betroffen

Meltdown und Spectre: Super-GAU bei Prozessoren sorgt für Flut an halbgaren Updates

Prozessoren | HT4U.net
Es klang sehr schlimm, doch die Realität präsentiert sich noch sehr viel schlimmer: Es gibt nicht nur einen kritischen Designfehler, der die Sicherheit von Intel-CPUs aushebelt, sondern gleich eine ganze Reihe kritischer Schwachstellen, die in der Summe praktisch alle nach 1995 auf den Markt gebrachten Prozessoren betreffen. Und zwar nicht nur PCs und Server mit x86-Chips von Intel und AMD, sondern auch Smartphones, Tablets und IoT-Geräte auf ARM-Basis. Unterdessen reagiert die Software-Welt mit ersten Updates – fertig sind diese aber bei Weitem noch nicht.

Angriffspunkt "Speculative Execution"

In allen Fällen geht es um Seitenkanal-Angriffe auf eine CPU-Technik namens Spekulative Ausführung (Speculative Execution). Im Rahmen der Spekulativen Ausführung werden freie CPU-Ressourcen genutzt, um wahrscheinliche Folgeaufgaben im Voraus zu berechnen und die Ergebnisse auf Verdacht zu bevorraten. Dieser Blick in die Zukunft funktioniert recht zuverlässig und sorgt durch eine bessere Auslastung für deutliche Leistungsgewinne pro Taktzyklus. Ein leicht höherer Energieverbrauch aufgrund von Fehleinschätzungen wird dabei in Kauf genommen. Die Spekulative Ausführung gehört dabei zu mehreren Techniken, welche die Reihenfolge der Befehle, welche im Programmcode stehen, automatisch umsortiert und dabei optimiert. Man spricht bei solchen CPUs von Out-of-Order-Architekturen.

Nicht betroffen: In-Order-Architekturen

Intel hatte zuletzt bei den ersten beiden Atom-Architekturen Bonnell (2008) und Saltwell (2011) auf ein In-Order-Design gesetzt, da diese Chips nicht auf Leistung, sondern auf einen möglichst niedrigen Stromverbrauch optimiert waren. Im Desktop-Bereich markiert die erste Pentium-Generation (1993 bis 1999) Intels letzte In-Order-Architektur. AMD wechselte schon 1996 mit dem K5 auf ein Out-of-Order-Design. Zur In-Order-Gattung gehören indes VIAs C3 und C7 sowie der IDT WinChip.

Die Sicherheitslücken: Spectre (AMD, ARM und Intel)

Unter dem Namen "Spectre" (CVE-2017-5753, CVE-2017-5715) werden mehrere Schwachstellen im Bereich der Spekulativen Ausführung zusammengefasst, die eine Gruppe um Paul Kocher und Googles Project Zero unabhängig voneinander erforscht haben. Spectre betrifft nach bisherigem Wissensstand alle modernen Prozessoren von AMD, ARM und Intel, die Angriffe konzentrieren sich auf die Sprungvorhersage (Branch Prediction) der CPUs. Zunächst wird die Sprungvorhersage von einem bösartigen Programm auf ein verlässliches Verhalten trainiert. Dann wird die Zeit für Cache-Zugriffe gestoppt, wobei sich zuverlässig feststellen lässt, ob es einen Treffer gab oder die Daten nicht im Cache liegen. Mit Hilfe Rücksprung-orientierter Programmierung (Return Oriented Programming) wird dann ein Zugriff auf die eigentlich unzugänglichen Daten ausgelöst.

Project Zero hat die technische Machbarkeit für CVE-2017-5753 anhand unterschiedlicher CPUs (Intel Xeon Haswell, AMD FX, AMD PRO, ARM Cortex A57) nachgewiesen. Das Abgreifen von Kernel-Speicher gelang mit dem Intel Xeon Haswell, wobei ein 32-Bit-Wert genutzt wurde, der den adressierbaren Speicherbereich auf 4 GiB beschränkte. Für den AMD PRO fand sich kein angreifbares Code-Muster, sodass die Forscher dieses zunächst über die JIT-Engine (Just-in-Time Compilation) erzeugen mussten. Hierzu muss unter Linux die eBPF JIT-Engine zunächst aktiviert werden, was einem normalen Benutzer allerdings möglich ist. Für die Praxis bedeutet dies, dass Spectre die Abschirmung zwischen den Prozessen durchbricht, sodass ein bösartiges Programm auf den Anwendungsspeicher eines fremden Prozesses zugreifen kann. Zumindest in der Theorie lassen sich solche Angriffe auch über JavaScript-Code im Webbrowser ausführen, doch bisher gibt es hierfür noch kein funktionierendes Beispiel.

Was indes funktioniert, ist das Abgreifen von Kernel-Speicher. Besonders riskant ist dabei der Umstand, dass Gastsysteme auf virtuellen Maschinen Daten vom Hypervisor abgreifen können. Ein von Project Zero entwickelter Angriffscode liest den Kernel-Speicher des Host-Systems, in dem wieder der Intel Xeon Haswell steckte, mit einer Rate von 1.500 Bytes pro Sekunde, wobei die Vorbereitung des Angriffs auf einer Maschine mit 64 GiB Arbeitsspeicher zwischen 10 und 30 Minuten in Anspruch nimmt. Mehr Arbeitsspeicher bedeutet in diesem Zusammenhang auch eine längere Vorlaufzeit. Insgesamt stellt Spectre derzeit ein unkalkulierbares Risiko für Cloud-Anbieter dar, denn wirklich beheben lassen sich diese Schwachstellen nur durch ein Redesign der aktuellen CPU-Architekturen. Laut AMD lässt sich ein Angriffsvektor (CVE-2017-5753) durch Betriebssystem-Patches beseitigen, eine vollständige Lösung des Problems ist aber noch nicht in Sicht.

Die Sicherheitslücken: Meltdown (nur Intel)

"Meltdown" wurde unabhängig von Googles Project Zero, Cyberus Technology und Forschern der TU Graz entdeckt. Während "Spectre" einen universellen Angriff auf fast alle Prozessoren darstellt, handelt es sich bei "Meltdown" (CVE-2017-5754) um einen Sonderfall, der sich auf CPUs von Intel beschränkt. Andererseits erfordert "Spectre" umfassendes Wissen über die Vorgänge im Inneren der Ziel-CPU, wohingegen "Meltdown" aufgrund einer Rechteausweitung einen wesentlich bequemeren Angriffsvektor über den L1-Cache eröffnet. Durch ein Fehlverhalten im Rahmen der Spekulativen Ausführung lässt sich hier von einem bösartigen Programm im Anwendungsspeicher der gesamte Arbeitsspeicher, also auch der geschützte Kernel-Speicher, auslesen. Und dank Intels marktbeherrschender Stellung ist ein Großteil der modernen PCs und Server betroffen.

Ab dem Linux-Kernel 4.14.11 bzw. 4.15 unterbindet die "Kernel page-table isolation" (KPTI) den Meltdown-Angriff, was allerdings auf Kosten der Leistung geht. Die Leistungseinbußen bewegen sich laut Phoronix – abhängig von dem Prozessor und der Anwendung – zwischen 5 und 30 Prozent. Ab der Haswell-Generation (Core ix 4xxx) lindert INVPCID (Invalidate Process-Context Identifier) die negativen Auswirkungen, da der "Translation Lookaside Buffer" (TLB) nicht immer wieder geleert werden muss. Für Sandy Bridge (Core ix 2xxx) und Ivy Bridge (Core ix 3xxx) besteht zumindest Hoffnung, dass eine vergleichbare Lösung auf Basis der "Process Context Identifiers" (PCID) nachgereicht wird.

Software-Chaos droht hereinzubrechen

Mac OS wurde in der Version 10.13.2 zumindest teilweise gehärtet, und auch Microsoft hat seit gestern frische Patches für Windows 10, Windows 8.1 und Windows 7 im Angebot, welche aber noch nicht als so ganz final zu betrachten sind. Diese Updates darf man aber nur installieren, wenn der Virenschutz mitspielt!

Einige Antivirenprogramme greifen nämlich auf eine nicht offiziell unterstützte Art und Weise auf den Windows-Kernel-Speicher zu und sorgen nach der Installation des Updates für einen Bluescreen. Windows Update bietet den Patch daher nur Systemen an, deren Antivirensoftware als kompatibel bekannt ist. Ist das nicht der Fall, muss man seinen Virenschutz aktualisieren oder vorübergehend zu Microsofts hauseigenem Defender wechseln. Dieser ist momentan etwas übereifrig und will, während diese Zeilen hier getippt werden, jede Textdatei mit den Suchbegriffen "Meltdown" und "Spectre" zur Überprüfung an Microsoft weiterleiten.

In einem zweiten Support-Dokument warnt Microsoft, dass das Einspielen der Betriebssystem-Updates alleine nicht ausreicht. Zusätzlich müsse auch der Microcode des Prozessors und/oder die Firmware der Hauptplatine bzw. des Gerätes aktualisiert werden. Zu diesem Zweck arbeite Microsoft mit seinen Partnern zusammen. Entsprechende Patches für die hauseigenen Surface-Geräte lassen sich über Windows Update beziehen.

Der Hinweis auf Microcode-Updates erstaunt, denn bisher wurde eine solche Lösung als ausgeschlossen erachtet. Zudem wirft er die Frage auf, welche Prozessoren und Geräte noch auf entsprechende Updates hoffen dürfen – schließlich reicht die Liste zurück bis ins Jahr 1995!

Apple hat bisher nur Meltdown im Griff

Apple hat sich bisher nur um die Intel-spezifische Sicherheitslücke Meltdown gekümmert und entsprechende Vorkehrungen in Mac OS 10.13.2 eingepflegt. Seltsamerweise gibt der Hersteller an, auch iOS 11.2 und tvOS 11.2 abgesichert zu haben, doch in diesen Geräten stecken ARM-Chips, die lediglich von Spectre betroffen sind. Einzig die erste Generation des Apple TV nutzte einen Intel-Chip, doch auf dieser läuft wiederum tvOS 11.2 nicht. Einen Angriff über Spectre hält Apple für sehr schwierig und damit unwahrscheinlich. Als einzige Gegenmaßnahme ist vorerst eine gehärtete Version des Webbrowsers Safari geplant. Über Microcode- oder Firmware-Updates äußert sich Apple indes gar nicht.

Neue Browser-Versionen überall

Auch die Browser-Entwickler haben bereits reagiert: Da die Angriffe auf die Spekulative Ausführung (Speculative Execution) nur dann funktionieren, wenn der Angreifer eine genaue Zeitmessung durchführen kann, hat man beim Firefox 57.0.4 einfach die Schärfe für die Funktion performance.now() von 5 auf 20 Mikrosekunden angehoben. Zusätzlich wurde der SharedArrayBuffer deaktiviert, da man über diesen eine genauere Zeitmessung verwirklichen könnte. Das ist einfach, aber effektiv!

Ebenfalls gestern veröffentlicht wurden Chrome 63.0.3239.132 und Opera 50.0.2762.45, doch Google nennt keine Details hinsichtlich der Änderungen, und bei Opera gibt es keinen Hinweis auf Meltdown oder Spectre. Dafür bietet Opera nun einen Schutz vor unerwünschtem Krypto-Mining und einen PDF-Export für Webseiten.

Autor: mid

[]