Mit dem Szenario „Spectre“ haben die gleichen Autoren einen weiteren Angriff gestartet, bei dem das Kernel-Mapping nicht benötigt wird, und der infolgedessen weder mit KPTI noch mit Hardsplit begegnet werden kann. Er beschänkt sich vorerst zwar nur auf den User-Prozess selber – doch auch das kann äußerst kritisch sein, wenn man zum Beispiel mit Javascript auf beliebige Speicherbereiche des Browsers zugreifen kann – und das geht sowohl bei Intel, AMD und ARM (Liste der betroffenen Prozessoren). Die Autoren verwenden hier nicht den Exception-Trick, sondern auf „miss“ trainierte bedingte oder indirekte Sprünge, hinter denen die transienten Befehle kommen. Die greifen nicht direkt auf Speicher zu, sondern missbrauchen dafür passende Codefragmente in Shared Libaries oder Windows-DLLs, etwa aus ntdll.dll. Dahinter patchen sie einen Return-Befehl und über etwas verschlungene Pfade sorgen sie dafür, dass das Codefragment mit vorgegebenen Registerinhalten transient ausgeführt wird. So können sie den kompletten Speicher im Working-Set des angegriffenen Prozesses durchsuchen, bei Firefox 56 etwa nach zwischengespeicherten Passwörter, die im Klartext im Speicher liegen ...
Anzeige
Google Projekt Zero hat ebenfalls mehrere Wege aufgezeigt, mit transientem Code hinter bedingten oder indirekten Sprüngen Systeme auszuspionieren. Auch hierbei gibt es Szenarien, die auf Intel-Haswell-, AMD-FX- und ARM-Cortex 57-Prozessoren funktionieren. Unter anderem haben sie die Branch Prediction-Hardware des Haswell-Prozessor genau analysiert und konnten mit der „Branch target Injection“ von einem KVM-Gast aus einer älteren Debian-Distribution den Speicher des Hosts auslesen, wenn auch nur mit 1500 Bytes/s. Andere Branch Prediktoren als die vom Haswell dürften auch anfällig sein, müssten aber noch genauer analysiert werden.
Der Memory-Dump von Firefox 56 enthüllt die gespeicherten Passwörter. System: Ubuntu 16.10, Core i7-6700K.
Ja, Intel, aber auch AMD und ARM haben jetzt Probleme. Und nicht nur Clouds und Server sind betroffen, sondern auch die PCs zuhause, insbesondere gibt es auch Angriffsmöglichkeiten via Browser, womit ja auch schon Rowhammer erfolgreich war. Die Browser-Hersteller haben inzwischen zwar Patches bereitgestellt, aber vielleicht ist es nun schon zu spät und die Passwörter sind schon längst abgegriffen und werden im Dark Net vertickert. Diese sollte man also tunlichst schnell ändern. Denn aus den nun bekannt gewordenen Sicherheitslücken ergeben sich allein mehr als ein Dutzend Angriffsmöglichkeiten – ein Security-Supergau. Und wenn man bedenkt, dass diese Angriffsszenarien schon ein halbes Jahr bekannt sind, können durchaus schon Exploits existieren.
Klar, wer irgendeiner Software Administratorrechte einräumt, hat sowieso verloren, denn dann kann diese Kernel-Treiber (unter Windows via Atsiv sogar unsignierte) laden, die nicht nur alles ausspionieren, sondern auch patchen können. Dann brauchen Angreifer die komplizierten Out-of-Order-Tricks nicht.
Anzeige
Ist damit Out-of-Order out of Order? Nein, aber Prozessor- und Betriebsystem-Hersteller müssen zügig einiges ändern. Erste Microcode-Updates stehen jetzt schon an.
Weitergehende Analysen, Benchmarks zu den Auswirkungen der Patches und Untersuchungen der Updates finden Sie in c't-Ausgabe 3/18.
Exklusive Tests, Ratgeber & Hintergründe. Unbegrenzter Zugriff auf alle heise+ Beiträge inkl. allen Digital-Magazinen.Exklusive Tests, Ratgeber & Hintergründe. Unbegrenzter Zugriff auf alle heise+ Beiträge inkl. allen Digital-Magazinen.