Ein schwerwiegender Bug in modernen Intel-Prozessoren der letzten zehn Jahre sorgt aktuell für Aufregung. Noch sind nicht alle Details bekannt, aber nicht nur Linux-Entwickler arbeiten unter Hochdruck an einer Lösung. Auch Microsoft hat Patches angekündigt.
Indirekt gibt AMD einen Hinweis auf das Problem seines Konkurrenten. AMD brauche die Kernel Page Table Isolation nicht, schreibt Tom Lendacky auf der Kernel Mailingliste. AMDs Mikroarchitektur erlaube keine Speicherreferenzen, inklusive spekulativer Referenzen, wenn der Zugriff einen Page Fault hervorrufen würde. Über spekulative Referenzen lassen sich auf Intel-Prozessoren der letzten zehn Jahre höher privilegierte Daten aus einem weniger privilegierten Modus heraus abrufen.
Das Problem könnte also in den spekulativen Referenzen liegen, die Intel verwendet. Sie ermöglichen es offenbar, Kernel-Adressen aus dem Userspace heraus zu erraten. Eigentlich soll Kaslr (Kernel Address-space Layout Randomization) solche Angriffe erschweren, indem es die Kerneladressen zufällig im virtuellen Adressraum platziert. Diese Technik kann allerdings nicht alle potenziellen Informationslecks stopfen. Ein Paper von Daniel Gruss zeigt verschiedene Möglichkeiten auf, Kaslr zu umgehen.
Auftritt KPTI
Abhilfe schaffen soll nun die so genannte Kernel Page Table Isolation (KPTI). Die wurde ursprünglich unter dem Kürzel Kaiser (Kernel Address Isolation to have Side-channels efficiently removed) entwickelt und soll die Page Tables für den Kernelspace von denen für den Userspace trennen. Lange Zeit hat der Kernel seinen Speicher in den Adressraum der laufenden (Userspace)-Prozesse gemappt. Das geschah vor allem aus Performance-Gründen, um Kontextwechsel zwischen Userspace und Kernelspace durch Vorhalten von Daten zu beschleunigen. Dadurch war es allerdings auch möglich, über den Userspace an den Adressbereich des Kernel zu gelangen.
Dank KPTI soll der Kernel künftig zwei separate Page Tables für den Userpace und den Kernelspace mitbringen, wobei der für den Userspace nur ein minimales Set von Kernelspace-Mappings enthält. Ein aktueller LWN-Artikel (Paywall) geht allerdings davon aus, dass sich die fieberhafte Arbeit an einem tiefgreifenden Feature wie KPTI womöglich damit erklären lasse, dass sich es sich um ein Security-Feature handele, das unter Hochdruck entwickelt wird. Backports für ältere Kernel sind geplant, könnten aber laut einem Post auf der PostgreSQL-Mailingliste zu Performance-Einbrüchen auf Intel-Hardware führen. Allerdings lässt sich KPTI auch deaktivieren.
In den nächsten Tagen werden konkretere Informationen zu der Lücke und potenziellen Patches erwartet, die sie schließen. Das gilt nicht nur für Linux, sondern auch für Apple-Systeme und Windows. Letztere betrifft die Lücke ebenso 64-Bit-ARM-Systeme mit Linux-Kernel. Beim Erscheinen der Patches dürften dann nicht nur die großen Cloudanbieter wie Amazon, Azure und GCE ihre Server aus Maintainance-Gründen neu starten müssen, und womöglich erhält der Bug bis dahin auch einen fetzigen Namen.




