Windows 10 V1809: Retpoline automatisch aktiviert

[English]Microsoft hat zum 14. Mai 2019 den Schutz gegen Spectre V2 durch die Retpoline-Compilertechnologie im Kernel automatisch für Windows 10 Version 1809 und Windows Server 2019 aktiviert.


Anzeige

Darum geht es bei Retpoline

Retpoline (Return Trampoline) ist eine von Google entwickelte Compiler-Technologie, um ausführbaren Code gegen Seitenkanalangriffe (Spectre) per branch-target-injection zu schützen. Gegenüber Microcode-Updates, die zu einer Leistungseinbuße führen und nur prozessorspezifisch angeboten werden können, vermeidet Retpoline als Compiler-Technologie diese Leistungseinbußen. Ich hatte bereits im Januar 2018 den Artikel Meltdown/Spectre: Google patcht Cloud ohne Leistungsverlust zu diesem Thema veröffentlicht.

Im Linux-Kernel ist diese Technologie längst übernommen. Im März 2019 kam dann die Kunde von Microsoft, dass man Retpoline auch in Windows 10 übernehme. Die damalige Aussage: Ab Windows 10 19H1 kommt Retpoline im Windows-Kernel als Schutz gegen Spectre V2-Angriffe  zum Einsatz. Ich hatte im Herbst 2018 im Artikel Windows 10 19H1: Spectre V2-Schutz per Retpoline darüber berichtet. Dort ist auch die Bestätigung von Microsofts Mehmet Iyigun vom Windows/Azure Kernel Team nachlesbar.

Da Retpoline eine Leistungsoptimierung für die Spectre Variant 2-Schwachstelle ist, erfordert es, dass Hardware- und Betriebssystemunterstützung für die Branch Target Injection vorhanden und aktiviert sind. Skylake und spätere Generationen von Intel-Prozessoren sind nicht mit Retpoline kompatibel. Auf diesen Prozessoren wird laut Microsoft nur die Import-Optimierung aktiviert. Dies ist eine spezielle Technik von Microsoft, die den Overhead bei Kernel-Aufrufen minimieren soll. Details, welche Anforderungen an Windows-Maschinen gestellt werden (z.B. Prozessoren), finden sich in diesem Dokument).

Im Artikel Windows 10: Retpoline-Spectre 2-Schutz manuell aktivieren hatte ich zudem die Pläne Microsofts erwähnt, einen Retpoline-Backport für ältere Windows 10-Versionen vorzunehmen. Im Blog-Beitrag Mitigating Spectre variant 2 with Retpoline on Windows hatte Microsoft bereits Anfang Dezember 2018 einige Informationen zum Thema Retpoline und Windows 10 veröffentlicht.

Mit dem am 1. März 2019 veröffentlichten Update KB44828887 für Windows 10 Version 1809 wurde Retpoline für diese Windows-Version eingeführt Im Blog-Beitrag Windows 10 V1809: Update KB4482887 (01.03.2019) findet sich der entsprechende Hinweis:


Anzeige

Enables "Retpoline" for Windows on certain devices, which may improve performance of Spectre variant 2 mitigations (CVE-2017-5715).

Der Retpoline-Schutz war aber nicht aktiviert. Man musste ggf. Registrierungseinträge setzen, um diesen Schutz im Kernel zu aktivieren (siehe hier).

Update KB4494441 aktiviert Retpoline

Zum 14. Mai 2019 hat Microsoft seinen Techcommunity-Beitrag Mitigating Spectre variant 2 with Retpoline on Windows um den entscheidenden Hinweis erweitert. Unter Windows 10 Version 1809 und Windows Server 2019 ist Retpoline standardmäßig aktiv, wenn die nachfolgend genannten Bedingungen erfüllt sind.

We're happy to announce that today we've updated Retpoline cloud configuration to enable it for all supported devices!* In addition, with the May 14 Patch Tuesday update, we've removed the dependence on cloud configuration such that even those customers who may not be receiving cloud configuration updates can experience Retpoline performance gains.
*Note: Retpoline is enabled by default on devices running Windows 10, version 1809 and Windows Server 2019 or newer and which meet the following conditions:

  • Spectre, Variant 2 (CVE-2017-5715) mitigation is enabled.
    • For Client SKUs, Spectre Variant 2 mitigation is enabled by default
    • For Server SKUs, Spectre Variant 2 mitigation is disabled by default. To realize the benefits of Retpoline, IT Admins can enable it on servers following this guidance.
  • Supported microcode/firmware updates are applied to the machine.

Sprich: Retpoline wird aktiviert, falls der Spectre V2-Schutz auf der Maschine gemäß obigen Hinweisen aktiviert ist. Das kann aber Probleme machen, wenn die BIOS-Voraussetzungen nicht gegeben sind (zumindest interpretiere ich die Hinweise im Blog-Beitrag Windows 10 V1809: Probleme mit Update KB4494441 so). Es ist im Techcommunity-Beitrag nicht explizit erwähnt, ich gehe aber davon aus, dass das Update KB4494441 für Windows 10 V1809 vorm 14.5.2019 für die Retpoline-Aktivierung verantwortlich ist. Zumindest findet sich ein entsprechender Hinweis im verlinkten KB-Artikel. Danke an Leon für den Hinweis.

Ähnliche Artikel:
Neue SplitSpectre-Methode, Windows Retpoline Spectre-Schutz
Windows 10: Retpoline-Spectre 2-Schutz manuell aktivieren


Anzeige

Dieser Beitrag wurde unter Windows 10 abgelegt und mit , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

6 Antworten zu Windows 10 V1809: Retpoline automatisch aktiviert

  1. 1ST1 sagt:

    Ich habe die Regkeys wie gefordert gesezt, aber laut Powershelltest ist es auf false.

  2. Jodelmax sagt:

    Also ich kann für Intel Core I Systeme der Generationen 3xxx und 4xxx bestätigen, das auch mit der Einstellung FeatureSettingsOverride = 8 und FeatureSettingsOverrideMask = 3 nun Retpoline standardmäßig aktiv ist.

    Vorher war es notwendig die Werte auf 408 und 403 zu benutzen um Retpoline zu aktivieren.

    Meines Wissens wird der Microsoft Retpoline Patch nicht für aktuellere Intel Generationen aktiviert, da ab einer gewissen Generation Intel hier ja schon eine Hardwareoptimierung nutzt und der Microsoft Retpoline Patch hiermit in Konflikt geraten würde. Das hatte Günter glaube ich auch in einem der alten Blogeinträge schon einmal mit verlinkt oder genannt gehabt (müßte so Ende Februar Anfang März gewesen sein).

    Das einzige was aktuell weiterhin noch nicht greift ist der Zombiload Schutz, da auf den alten Systemen keine Firmwareupdates zur Verfügung stehen und Microsoft in seinem KB4465065 Patch die neuen Microcodes von Intel noch nicht eingebaut hat. Für Haswell ist hier noch aktuell 0x25 drin nötig wäre aber 0x27 und für Ivy Bridge ist noch 0x20 drin nötig wäre aber 0x21.

    • riedenthied sagt:

      Stimmt, das mit den neueren Generationen hatte ich verdrängt. :-D

    • Volker sagt:

      Den Microcode für Ivy Bridge scheint MS offenbar immer noch nicht implementiert zu haben, oder? Retpoline ist bei mir nicht aktiv. Und der Rechner nach dem gestrigen Upgrade auf 1903 nochmal um etwa 25% langsamer als zuvor schon mit 1803. Es nervt! Brrrr… ;)

      • Volker sagt:

        Sorry! Ich muss mich korrigieren. Ich hatte noch das alte PowerShell-Script installiert, das Retpoline noch nicht überprüft. Nachdem ich das aktuelle Script installiert habe, wird angezeigt, dass Retpoline aktiv ist. Trotzdem ist die Performance um 25% schlechter als mit 1803 (ohne Retpoline). Bringt also wohl irgendwie doch nicht so viel…

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Hinweis: Bitte beachtet die Regeln zum Kommentieren im Blog (Erstkommentare und Verlinktes landet in der Moderation, gebe ich alle paar Stunden frei, SEO-Posts/SPAM lösche ich rigoros). Kommentare abseits des Themas bitte unter Diskussion.

Du findest den Blog gut, hast aber Werbung geblockt? Du kannst diesen Blog auch durch eine Spende unterstützen.