Steffen schrieb:
Genauso wie es ein Bug / Flaw / ... in AMD- und ARM-CPUs ist (die sind zwar von Meltdown nicht betroffen, aber von Spectre).
Ich finde es äußerst fragwürdig, Spectre als Hardwarebug zu klassifizieren (zumindest Variante 1, Variante 2 die den Kernel von Userspace beinflussen kann ist vielleicht etwas anders).
Die Architekturspezifikation verspricht an keiner Stelle, daß eine bestimmt Instruktionssequenz niemals einen Lesevorgang auf anderen Speicher im selben Prozess verursacht - im Gegenteil, wenn man das möchte muß man laut Spezifikation den Speicherbereich speziell markieren. Ich würde im Gegenteil behaupten, das haben die Entwickler der JIT-Engines völlig verbockt, indem sie völlig unberechtigte, von keiner Spezifikation gedeckte, und schon zum Zeitpunkt als diese JIT-engines entwickelt wurden ungültige Annahmen getroffen haben.
Die fehlerhafte Grundannahme wäre dabei, daß man einfach so "sicher" nicht vertrauenswürdigen Code im selben Prozess ausführen kann in dem auch schützenswerte Daten sind.
Das verbockt zu haben müssen meiner Meinung nach ganz klar die Browser/Java/Kernel (im Fall BPF)-Entwickler auf die Kappe nehmen, wobei aufgrund der Wichtigkeit dieses Anwendungsfalls natürlich bessere CPU-Unterstützung wünschenswert wäre. Prinzipbedingt wird es aber nie möglich sein beliebigen, feindseligen Code auszuführen mit absolut 0 Risiko, daß niemals nie irgendwelche Information abgegriffen wird.
Hier liegt aber auch der Unterschied bei Meltdown: Die Spezifikation verspricht klare Trennung von Kernel- und Userspace, hier jedoch werden Daten, auf die laut Spezifikation kein Zugriff besteht, in ein Register geladen und noch jede Menge weitere Operationen ausgeführt - in der Annahme, die Invalidierung der spekulativen Ausführung wird es schon wieder gerade biegen.
Daß dies eine zumindest riskante (und vermutlich nichtmal wertvolle) Optimierung ist hätte klar sein sollen, wenn das öffentlich bekannt gewesen wäre hätte sicherlich mindestens jeder 2te Sicherheitsforscher das Schaudern bekommen...
Als weiteres Indiz, daß es sich hier um wesentlich verschiedene Fälle handelt, ist auch die Anzahl der betroffenen (Mikro-)Architekturen: Intel und ein ARM-Kern im einen Fall, ALLE medium- und high-Performance CPUs im Anderen.
Wenn im Prinzip ALLE relevant CPUs betroffen sind, ist es schon recht merkwürdig, dies als Hardware- und nicht also Softwarebug zu bezeichen. Zumindest ich würde Software die auf keiner relevant CPU korrekt funktioniert nicht als fehlerfrei bezeichnen.
Daher ist aus meiner sich auch AUSSCHLIEßLICH Intel (und Cortex-A75) von einem Hardwarebug betroffen (Meltdown).