CPU-Flags für Spectre-Mitigations an die VMs durchreichen

  • Moin,

    könnt ihr bitte die MSRs/Feature Flags für die ganzen Spectre-Mitigations an die VMs durchreichen? Konkret wären das z.Z. folgende Feature Flags:

    • IBRS (gegen Spectre v2, MSR "spec_ctrl")
    • IBPB (gegen Spectre v2, MSR "pred_cmd")
    • STIBP (MSR "spec_ctrl", nur relevant wenn Hyperthreading verwendet wird)
    • SSBD (gegen Spectre v4)

    Die Microcode-Updates mit IBRS, IBPB und STIBP sind schon seit Ende Januar/Anfang Februar veröffentlicht, die Updates mit zusätzlicher Unterstützung für SSBD und nem Microcode-Fix gegen Spectre v3a hat Intel vor einigen Tagen endlich auch mal "offiziell" veröffentlicht (nachdem es die je nach Mainboard-Hersteller auch schon 1-2 Monate vorher als BIOS-Update gab). Da Intel die Microcode-Updates endlich auch selber veröffentlicht hat, kann man die auch dann auf den Hostsystemen ausrollen, wenn der Mainboard-Hersteller nicht aus dem Quark kommt, oder man aus sonstigen Gründen kein BIOS-Update installieren kann/will. Wenn man die Microcode-Updates ohne Downtime/Reboot laden will, kann man sie statt als initramfs-Image auch im laufenden Betrieb per microcode_ctl nachladen (die Variante über das BIOS-Update oder über das Initramfs-Image ist natürlich trotzdem vorzuziehen, damit der Kernel auf dem Hostsystem die Mitigations ab dem frühestmöglichen Zeitpunkt anwenden kann).

    Ohne diese Feature können die VMs sich im Zweifelsfall nicht vollständig gegen einige Varianten der Spectre-Lücken schützen - retpoline alleine reicht leider nicht auf allen CPU-Generationen als vollständiger Schutz gegen Spectre v2 aus, und gegen Spectre v3a und Spectre v4 helfen wohl generell nur Microcode-Updates.

    Grüße
    Pascal

    //EDIT: Nachtrag: Das Tool der Wahl, um in einer Linux-VM zu testen, welche Mitigations verfügbar sind, gibt es übrigens hier.

  • Ich denke dies wird zumindest auf den alten VM-Guests nicht umgesetzt, da es die Änderung des CPU-Models erforderlich macht.


    Nachfolgend sind die Möglichkeiten unter Libvirt aufgelistet:


    Ohne Wechsel auf eine CPU wie SandyBridge-IBRS ist der VM-Guest immernoch gegenüber Spectre v2 anfällig:



    Mit IBRS CPU erhalte ich in den VM Guests:



    Ich denke, dass auch aus denselben Gründen ein großer Netcup Konkurrent nur seine neuen CX vServer abgehärtet hat (Google: "Cloud / Virtuelle Server (VQ/VX/CX)").


    BTW, alle Code-Beiträge stammen von meinen eigenen vServern, gehostet auf meinem eigenen dedizierten Server.