Artikel-Update: Google veröffentlicht vollständige Details
Google hat im Project Zero Blog die
vollständigen Details zu den drei Problemen veröffentlicht, die jetzt eine Website sowie ein Logo haben und auf die Namen
Meltdown und Spectre getauft wurden – wobei es Spectre in zwei Varianten gibt. Man habe Intel, AMD und ARM am 1. Juni 2017 über die Probleme in Kenntnis gesetzt.
[Bilder: Zum Betrachten bitte den Artikel aufrufen.]
Sicherheitslücke 1: Meltdown
Von Meltdown (im Google-Blog und auf der AMD-Website als „Variant 3“ bezeichnet) sind nach jetzigem Kenntnisstand nur Intel-CPUs (und wenige ARM-Kerne) betroffen – und zwar alle seit 1995 ausgelieferten Intel-CPUs mit Ausnahme von
Itanium und den vor 2013 produzierten Atom-CPUs. Meltdown ist die Sicherheitslücke, die unprivilegierten Prozessen das Lesen von Kernel-Memory und das Ausbrechen aus virtuellen Maschinen erlaubt, was wie oben beschrieben mittels Page-Table-Isolation (PTI) behoben werden kann – und in manchen Fällen mit Leistungseinbußen verbunden ist. Auf AMD-CPUs sind keine Meltdown-Gegenmaßnahmen erforderlich und somit auch keine Leistungseinbußen zu erwarten.
Sicherheitslücken 2 + 3: Spectre
Spectre (im Google-Blog und auf der AMD-Website als „Variant 1“ und „Variant 2“ bezeichnet) betrifft hingegen praktisch alle relevanten CPUs von Intel (unter anderem Ivy Bridge, Haswell und Skylake) über AMD (unter anderem Ryzen) bis hin zu ARM (unter anderem Samsung und Qualcomm) und sei zwar schwerer auszunutzen aber auch schwerer zu beheben als Meltdown. Page-Table Isolation schafft hier keine Abhilfe.
AMD behauptet, dass Spectre auf den eigenen CPUs (noch) schwerer auszunutzen sei als auf Intel-CPUs, ist den Sicherheitsforschern zu Folge von dem Problem grundsätzlich aber auch betroffen. AMD rechnet durch Spectre-Gegenmaßnahmen mit vernachlässigbaren Leistungseinbußen („negligible performance impact expected“), die bei Intel-CPUs zusätzlich zu den Leistungseinbußen durch Meltdown-Gegenmaßnahmen vermutlich noch obendrauf kommen (aber auch in Summe überschaubar sein dürften).
Wie Meltdown nutzt auch Spectre aus, dass moderne CPUs aus Performance-Gründen viele Instruktionen spekulativ im Voraus ausführen (
Speculative execution). Stellt sich das im Nachhinein als zu übereifrig heraus, müssen die Auswirkungen rückgängig gemacht werden. Das geschieht offenbar nicht gründlich genug (Seiteneffekte bleiben nachweisbar), sodass mittels einer timing-basierten
Seitenkanalattacke Speicherinhalt abgegriffen werden kann, auf den eigentlich kein Zugriff bestehen sollte. Zum Beispiel könne auf diese Weise im Browser ausgeführtes nicht vertrauenswürdiges JavaScript auf den kompletten Speicher des jeweiligen Prozesses zugreifen, der Passwörter anderer Websites oder sonstige Nutzerdaten enthalten kann.
Spectre könne ohne Änderungen an der CPU-Hardware nicht an zentraler Stelle behoben werden, sondern viele Anwendungen müssten einzeln angepasst werden. Beispielsweise wird Chrome 64
eine Gegenmaßnahme namens Site-Isolation enthalten, die für eine striktere Trennung der offenen Tabs in verschiedene Prozesse sorgt. Darüber hinaus wird
wie in Firefox die Genauigkeit von Funktionen für Zeitmessungen wie zum Beispiel
performance.now() reduziert, um timing-basierten Seitenkanalattacken weniger präzise Zeitmessungen zu ermöglichen. Die Sicherheitsforscher prophezeien, dass Spectre Entwickler noch einige Zeit beschäftigen werde: „
As it is not easy to fix, it will haunt us for quite some time.“