Intel Microcode unter VMware aktualisieren

Aus Thomas-Krenn-Wiki
Zur Navigation springen Zur Suche springen

VMware stellt für ESXi regelmäßig Microcode Updates für Intel CPUs bereit. Nach dem Einspielen von solchen Updates werden während des Startvorgangs automatisch neue Intel Microcode Versionen eingespielt. In diesem Artikel zeigen wir anhand eines Servers mit VMware ESXi 6.7 wie Sie die Microcode Version überprüfen können und bei Bedarf noch neuere Microcode Versionen einspielen.

Beispielsetup

In diesem Beispiel verwenden wir folgendes Setup:

  • Server mit ASUS P10S-M Mainboard mit BIOS Version 4401 (Anmerkung: dieses Beispiel-System ist nicht auf der VMware HCL)
  • VMware ESXi 6.7 (direkt nach der Installation, vorerst ohne Einspielen von Patches)

Das Beispiel wurde am 27.08.2018 mit dem zu diesem Zeitpunkt aktuellsten verfügbaren BIOS-, Microcode- und Software-Versionen durchgeführt. Es zeigt damit anschaulich wie in sicherheitskritischen Umgebungen die neuesten Sicherheitsupdates sowohl in Bezug auf den Microcode, als auch in Bezug auf Software-Updates eingespielt werden können.

BIOS Version auslesen

Zuerst überprüfen wir die BIOS Version:

[root@localhost:~] esxcfg-info | grep -i bios
      |----BIOS UUID................................................0x50 0xaa 0xab 0xc 0x5d 0x93 0x17 0x2c 0x39 0x7b 0x2c 0x4d 0x54 0x47 0xd 0xc1
      |----BIOS Vendor..............................................American Megatrends Inc.
      |----BIOS Version.............................................4401
      |----BIOS ReleaseDate.........................................2018-03-05T00:00:00
      |----BIOS Asset Tag...........................................To Be Filled By O.E.M.
               |----Name............................................HardwareSMBIOSHeap
                           |----Group Name..........................HardwareSMBIOS
            |----World Command Line.................................grep -i bios
            |----Option Name........................................ignoreHwSMBIOSInfo
[root@localhost:~]

Falls es sich um ein System von Thomas-Krenn handelt, ist die neuste BIOS Version für das Mainboard im Artikel BIOS Sicherheitsupdates zu finden. In diesem Beispiel ist bereits die aktuellste verfügbare BIOS-Version vorhanden.

Aktuelle Microcode Version auslesen

Intel führt im Microcode Update Guidance vom 08.08.2018 (siehe Intel Microcode - Microcode Versionen) die neue Microcode Version 0x8E für den hier im Beispiel verwendeten Xeon E3-1220 v6 Prozessor an.

Die aktuell vorhandene Microcode Version kann auf der SSH Shell mit dem vsish Kommando ausgelesen werden:

[root@localhost:~] vsish -e cat /hardware/cpu/cpuModelName
Intel(R) Xeon(R) CPU E3-1220 v6 @ 3.00GHz
[root@localhost:~] vsish -e cat /hardware/cpu/cpuList/0 | grep -i -E 'family|model|stepping|microcode|revision'
   Family:6
   Model:158
   Stepping:9
   Number of microcode updates:0
   Original Revision:0x00000084
   Current Revision:0x00000084
[root@localhost:~]

In diesem Beispiel ist aktuell die Microcode Version 0x84 vorhanden.

Intel stellt Informationen zu verfügbaren Microcode Versionen im Dokument Microcode Update Guidance bereit (siehe Intel Microcode - Microcode Versionen). In diesem Dokument werden CPUs anhand ihrer CPUID angeführt (nicht anhand von Familiy/Model/Stepping). In der vollständigen Ausgabe des vsish cpuList Kommandos ist die CPUID im Bereich 1:CPUID leaf unter EAX ersichtlich (in diesem Beispiel 0x906e9):

[root@localhost:~] vsish -e cat /hardware/cpu/cpuList/0
CPU information {
   Family:6
   Model:158
   Type:0
   Stepping:9
[...]
   CPUID:CPUID content {
      0:CPUID leaf {
         EAX:0x00000016
         EBX:0x756e6547
         ECX:0x6c65746e
         EDX:0x49656e69
      }
      1:CPUID leaf {
         EAX:0x000906e9
[...]
   Number of microcode updates:0
   Original Revision:0x00000084
   Current Revision:0x00000084
[...]

Alternativ lässt sich die CPUID lässt sich auf folgende Art anhand von Familiy/Model/Stepping bestimmen:

  1. Notieren Sie Family/Model/Stepping im Hex-Format. Die Datei /proc/cpuinfo gibt die Werte im Dezimal-Format aus:
    • Family: 6 -> 0x6
    • Model: 158 -> 0x9e
    • Stepping: 9 -> 0x9
  2. Die CPUID hat den Aufbau 0FFM0FMS. Gehen Sie nun von hinten nach vorne, um die CPUID aus Family/Model/Stepping zu bestimmen:
  3. S (Stepping) = 9
  4. M (hintere Ziffer von Model) davor: e9
  5. F (Family) davor = 6e9
  6. Die Ziffer 0 davor = 06e9
  7. Model (vorletzte Ziffer von Model) davor = 906e9

Bei einer Suche nach 906e9 im Dokument Microcode Update Guidance vom 08.08.2018 ist in der Spalte New Production MCU Rev die Microcode Version 0x8E angeführt. Intel stellt also in diesem Fall eine neuere Microcode Version bereit, als sie aktuell am System vorhanden ist.

Patch einspielen

VMware stellt Microcode Updates gemeinsam mit anderen Patches zum Download bereit.

Spielen Sie alle verfügbaren Updates (wie im Artikel VMware ESXi updaten beschrieben) ein. In diesem Beispiel ist das Update ESXi670-201808402-BG enthalten, das den neuen Microcode enthält.[1]

Microcode abfragen

Die Abfrage der Microcode Version nach dem Einspielen der Patches und Neustarten des Hosts zeigt die neue Microcode Version 0x8E an:

[root@localhost:~] vsish -e cat /hardware/cpu/cpuList/0 | grep -i -E 'family|model|stepping|microcode|revision'
   Family:6
   Model:158
   Stepping:9
   Number of microcode updates:1
   Original Revision:0x00000084
   Current Revision:0x0000008e

Einzelnachweise

Weitere Informationen


Foto Werner Fischer.jpg

Autor: Werner Fischer

Werner Fischer arbeitet im Product Management Team von Thomas-Krenn. Er evaluiert dabei neueste Technologien und teilt sein Wissen in Fachartikeln, bei Konferenzen und im Thomas-Krenn Wiki. Bereits 2005 - ein Jahr nach seinem Abschluss des Studiums zu Computer- und Mediensicherheit an der FH Hagenberg - heuerte er beim bayerischen Server-Hersteller an. Als Öffi-Fan nutzt er gerne Bus & Bahn und genießt seinen morgendlichen Spaziergang ins Büro.


Das könnte Sie auch interessieren

Microarchitectural Data Sampling - ZombieLoad
Sicherheitshinweise zu Intel Produkten 2021-02-09
Sicherheitshinweise zu Intel Produkten 2022-08-09 2022.2 IPU