Überraschung in der Windows 10 Insider Preview für 19H1: Der Kernel enthält wohl die Retpoline-Technik, um diesen vor SpectreV2 zu schützen. Damit soll der Leistungsverlust durch diesen Schutz minimiert werden. Ergänzung: Es gibt inzwischen einen Benchmark von Martin Geuß.
Anzeige
Hintergrundinformation zu Retpoline
Anfang des Jahres wurden ja die Angriffsmethoden Spectre und Meltdown öffentlich bekannt, die auf CPU-Ebene wirken. In der Folge wurden von Intel Microcode-Patches und von Microsoft eine Reihe Meltdown- und Spectre-Patches freigegeben. Der unerwünschte Nebeneffekt: Manche Patches verursachten massive Leistungseinbußen bei den Systemen.
Andererseits hatte Google-Software-Entwickler bereits frühzeitig die Idee, die spekulativen Seitenkanalangriffe für Spectre (und Meltdown) über spezielle Code-Konstrukte ins Leere laufen zu lassen. Die Technik trägt den Namen Retpoline und wurde in diesem Google-Dokument beschrieben. Google verwendete die Retpoline-Technik zum Patchen der eigenen Server für die Cloud.
Ich hatte im Januar 2018 im Beitrag Meltdown/Spectre: Google patcht Cloud ohne Leistungsverlust darüber berichtet. In Linux wurde diese Technik von Anfang an im Kernel verwendet (siehe z.B. den Beitrag Ubuntu 14.04 LTS erhält Kernel mit Spectre V2-Schutz).
Auch Microsoft setzt auf Retpoline
Nun ist Sicherheitsforscher Alex Ionescu beim Testen der aktuellen Insider Preview für Windows 10 19H1 aufgefallen, dass im Kernel Retpoline aktiviert ist. Er hat dies in einem Tweet gemeldet.
Anzeige
Yes, we have enabled retpoline by default in our 19H1 flights along with what we call "import optimization" to further reduce perf impact due to indirect calls in kernel-mode. Combined, these reduce the perf impact of Spectre v2 mitigations to noise-level for most scenarios. https://t.co/CPlYeryV9K
— Mehmet Iyigun (@mamyun) 18. Oktober 2018
In seinen Tests konnte er eine große Leistungsverbesserung des neuen Kernels bei Dateisystem-Benchmarks auf einem Surface Pro 4 feststellen. Mehmet Iyigun (@mamyun) vom Windows/Azure Kernel Team bestätigte dann auf Twitter, dass man Retpoline standardmäßig im Windows 10 Entwicklungszweig 19H1 (wird das Frühjahrs-Update in 2019) aktiviert habe.
Bei Microsoft kombiniert man das Ganze mit einer Technik, die 'Import Optimization' genannt wird. Die Entwickler haben das Ziel, dadurch die Leistungseinbußen durch indirekte Aufrufe von Kernel-Mode-Funktionen noch zu minimieren. Die Kombination dieser Techniken führt dazu, dass die Leistungseinbußen durch Spectre V2-Schutzmaßnahmen kaum mehr festzustellen sind und 'im Rauschen' untergehen. (via)
Ergänzung: Mir fehlen Zeit, Geräte und Nerv, die Insider Previews intensiver zu testen (alleine der Download dauert Stunden). Aber Martin Geuß hat sich die Mühe gemacht, das auf einem Surface mal ausgiebiger zu testen. Er hat die Ergebnisse eines Benchmarks in diesem Dr. Windows-Artikel veröffentlicht – nicht ganz uninteressant.
Anzeige
Stellt sich natürlich die Frage, weshalb das nicht schon in einer früheren Windows10 – Version eingeflossen ist…
Gut, da muss man einfach fair sein. Google hat 2017 die Retpoline-Technologie, nach dem, was ich mitbekommen habe, in eigenen Server-Produkten auf Linux-Basis erprobt und erst dann für Linux freigegeben. Öffentlich wurde das nach Januar 2018. Bei Microsoft musste man dann – ich vermute es erst einmal – klären:
a) will man das?
b) bringt das was?
c) darf man dass?
d) kann man das?
Das kostet schon mal Zeit, bis so etwas abgearbeitet ist.