f.zz.de
posts /

Meltdown and Spectre

Posted Fri Jan 5 13:52:32 2018 Florian Lohoff in

Da haben wir ja wirklich Bugs apokalyptischen Ausmaßes. Das spannende ist eigentlich das speculation immer schon ein Problem war.

1996 kam der R10000 oder R10k von Mips Inc. Schon in der Entwicklung war klar das es Probleme mit speculative loads und stores gab. D.h. die CPU hat einfach mal im Speicher gelesen was sie so meinte was demnächst gebraucht werden könnte. Da die Mips CPUs alle einen Soft TLB haben ist das natürlich sofort aufgefallen das da loads laufen und der entsprechende Prozess wurde entsprechend gekillt. Es gab dann je nach Workstation unterschiedliche Workarounds die entsprechend cache invalidation betrieben haben oder über das mapping von teilen des Kernels und Userspaces eben auch wie die aktuelle Kernel Page Table Isolation den Kernel unerreichbar machten.

Zur fast derselben Zeit (1995) kam die Intel P6 Architektur mit dem Pentium Pro. Alle Intel CPUs bis auf wenige Ausnahmen sind von den jetzigen Problemen betroffen. Man hat bei Intel 22 JAHRE! gebraucht um den Side Channel zu entdecken.

Ein Schelm wer böses dabei denkt. Vielleicht wollte man den Side Channel einfach nur für die Schlapphüte offen lassen.

Nun jedoch ist das Chaos perfekt. Jegliche Arten von memory protection über die MMU sind ad absurdum geführt. Es gibt microcode updates, kernel patches und natürlich jede menge neue Browser um die möglichkeit der Ausnutzung über den untrustet code in der Javascript JIT engine zu minimieren.

Dabei ist das ausmaß des Totalschades noch nichteinmal absehbar.

Klar ist - Wir brauchen komplett neue CPU designs. Vielleicht war ia64 von Intel doch der richtige weg.