Meltdown & Spectre im Detail: Wann Performance-Verluste auftreten können
Nachdem nun alle aktuellen Betriebssysteme mit einem Sicherheitspatch gegen die Prozessorlücken ausgestattet sind, wurde die Arbeitsweise der Updates analysiert. Die gute Nachricht ist, dass tatsächlich in den meisten Anwendungen keine Geschwindigkeitsverluste zu bemerken sind. Dies hat einen einfachen Grund, der mit dem Kernel des Betriebssystems zusammenhängt.
Meltdown (Kernel)Alltägliche App-Software kommuniziert nur sehr selten, wenn überhaupt, mit dem Kernel. Da das Sicherheitsproblem "Meltdown" aber nur auftritt, wenn eine Nutzer-App auf Speicherbereiche der Kernels zugreifen will, sind viele Apps gar nicht von den Änderungen am Kernel betroffen. Apps, Spiele und aufwändige Benchmarks zeigen im schlimmsten Fall nur geringe Leistungsverluste von wenigen Prozent.
Anders sieht es aus, wenn Speicherbereiche des Kernels angefordert werden. Vor den "Meltdown"-Updates teilten sich alle Apps, die derartige Kernelzugriffe hatten, eine Speichertabelle (Page Table), die vom Prozessor gesichert wurde. Mit der Aktualisierung erhalten Apps nun eigene Speichertabellen vom Kernel, was wertvolle Zeit kosten kann. Dies macht sich insbesondere bei Zugriff mit anderen Komponenten wie SSDs bemerkbar und kann theoretisch bis zu 30 Prozent Verlust nach sich ziehen.
In der Praxis kommt dies aber nur bei Datenbanken und anderen datenintensiven Anwendungen vor, bei denen häufig Speichervorgänge auf die SSD erfolgen. Im Fall der PostgreSQL-Datenbank wurden beispielsweise Performance-Verluste von 12 Prozent gemessen.
Spectre (Browser)Auch wenn Spectre aufgrund seiner Voraussetzungen eine schwierige Sicherheitslücke ist, die nur schwer ausgenutzt werden kann, erhöht sich die Wahrscheinlichkeit für einen Erfolg in Web-Browsern doch signifikant. Daher wurden Web-Browser aktualisiert, um derartige spekulative Angriffe über Web-Skripte zu vereiteln und die Daten zwischen Tabs besser abzuschotten.
Dabei wird aber statt einer langsamen Zwischenserialisierung der Daten, wie von den Prozessorherstellern empfohlen, eine Verschleierung bestimmter Datenstrukturen durchgeführt. In Kombination mit der ebenfalls durchgeführten Begrenzung von Arrays führt dies letztendlich nur zu Geschwindigkeitseinbußen von wenigen Prozenten, ohne die Sicherheit zu beeinträchtigen.
FazitAls Meltdown und Spectre vor zwei Wochen öffentlich bekannt wurden, gab es noch Befürchtungen, dass der Performance-Verlust durch Gegenmaßnahmen spürbar sein würde. Im Alltag ist dank findiger Entwickler der Sicherheits-Updates aber kaum etwas zu bemerken. Nur bei bestimmten Szenarien, die in maximalem Umfang im praktischen Einsatz nicht auftreten, kann es zu Einbußen von bis zu 30 Prozent kommen. Praktisch sind davon aber nur große Datenbanken betroffen.
Weiterführende Links: