Intel Management Engine des T460 unter Linux aktualisieren

Letzten Monat wurde eine gravierende Sicherheitslücke in der Intel Management Engine bekannt. Ob das eigene System von der Lücke betroffen ist, kann man mit dem „SA00086 Detection Tool“ überprüfen.

Sollte das Tool eine Meldung ähnlich der folgenden ausspucken, dann ist man erst einmal auf der sicheren Seite:

Based on the analysis performed by this tool: This system is not vulnerable. It has already been patched.

Lenovo hatte recht schnell eine aktualisierte Firmware für das T460 bereitgestellt, aber uns Linux-Benutzer leider außen vor gelassen. Da ich keine Lust hatte nur wegen eines Firmware-Updates ein Windows 10 zu installieren, habe ich die Suchmaschine meines Vertrauens bemüht und nachgeschaut ob es nicht eine Möglichkeit gibt die „Management Engine“ plattformunabhängig zu aktualisieren. Und siehe da, ich bin relativ schnell über einen Thread im Win-Raid-Forum gestolpert, der genau das ermöglicht. Dort gibt es mehrere Links zu Archiven, welche die aktuellsten Versionen der ME-Firmware und diverse Tools zum Flashen der Firmware enthalten.

Anfangs dachte ich noch, dass ich zwingend die UEFI-basierten Tools „MEInfo.efi“ und „FWUpdLcl.efi“ aus dem Archiv für die ME-Version 11 benutzen, ich also EFI-Binärdateien innerhalb einer EFI-Shell ausführen muss (Siehe auch den Info-Kasten am Ende). Interessanterweise sind die gleichen Tools auch in nativen Linux-Versionen in den Archiven vorhanden (Intel denkt also auch an Linux-Benutzer. Nur lässt uns Lenovo im Regen stehen). Mit diesen ist es sehr einfach möglich direkt unter Linux die ME-Firmware zu aktualisieren. Ich habe die zwei notwendigen Dateien „MEInfo“ und „FWUpdLcl“ in ein eigenes Archiv gepackt:

me_tools_11.tar.bz2

Alles was man noch zusätzlich braucht, sind die passenden Firmware-Dateien. Diese bekommt man über den folgenden Link:

Lenovo – Intel Management Engine 11.8 Firmware EXE

Die EXE-Datei muss mit dem Tool „innoextract“ (Unter Ubuntu in den Universe-Quellen, in Debian in Main) entpackt werden:

innoextract r06uj57w.exe

Danach liegen die folgenden Dateien im Verzeichnis „app“ (Die EXE und DLL-Dateien habe ich schon gelöscht):

-rw-r--r-- 1 glasen glasen 2031616 Okt 26 16:56 ME_11.8_Consumer_C0_LP_Production.bin
-rw-r--r-- 1 glasen glasen 7348224 Okt 26 16:56 ME_11.8_Corporate_C0_LP_Production.bin
-rw-r--r-- 1 glasen glasen 1063 Okt 17 11:46 MEUpdate.CMD
-rw-r--r-- 1 glasen glasen 80469 Okt 26 01:13 SLA_TOOLS.pdf

Für das Update benötigt man nur die passende BIN-Datei. Beim T460 muss die „Consumer“-Firmware eingespielt werden. Versucht man es mit der „Corporate“-Firmware, bekommt eine Fehlermeldung:

Error 8746: Firmware update not initiated due to invalid image length

Zum Durchführen des Updates benötigt man noch die „OEM ID“. Diese kann man entweder über das Tool „MEInfo“ auslesen oder aus der Datei „MEUpdate.CMD“ übernehmen (Beide sind identisch):

sudo ./MEInfo -feat „OEM ID“

Intel(R) MEInfo Version: 11.8.50.3425
Copyright(C) 2005 – 2017, Intel Corporation. All rights reserved.

Driverless mode

OEM ID: 4c656e6f-766f-0000-0000-000000000000

[alert type=“danger“ icon-size=“big“]Ab hier wird es gefährlich. Wer sich nicht 100% sicher ist, was er tut, sollte von dem Update die Finger lassen oder dieses über eine Windows-Installation durchführen. Bei mir hat es bei meinem T460 problemlos geklappt, aber ich spreche trotzdem eine Warnung aus![/alert]

Das Firmware-Update wird über den folgenden Befehl angestoßen:

sudo ./FWUpdLcl -F app/ME_11.8_Consumer_C0_LP_Production.bin -OEMID 4C656E6F-766F-0000-0000-000000000000 -allowsv

Die Ausgabe sollte dann nach einem erfolgreichen Update so ausschauen:

Intel (R) Firmware Update Utility Version: 11.8.50.3425
Copyright (C) 2007 – 2017, Intel Corporation. All rights reserved.

Communication Mode: MEI
Checking firmware parameters…

Warning: Do not exit the process or power off the machine before the firmware update process ends.
Sending the update image to FW for verification: [ COMPLETE ]

FW Update: [ 100% (|)]Do not Interrupt
FW Update is completed successfully.

Danach muss das System nur noch neu gestartet werden und die Firmware der „Management Engine“ ist auf dem aktuellsten Stand.

[alert type=“info“ icon-size=“normal“]Im Thread im Win-Raid-Forum gibt es noch Updates für ältere ME-Versionen und auch die passenden Tools. Ich habe z.B. mein Haswell-basiertes Desktop-System mit diesen auf den aktuellsten Stand gebracht. Leider gibt es nur für die ME-Version 11 Linux-Versionen der Tools. Unter den älteren Versionen muss man auf die UEFI-Binaries ausweichen, was den Einsatz einer EFI-Shell erforderlich macht. Ich hatte diese Vorgehensweise als erstes getestet, da ich den Verlust eine 40€ Motherboards eher verkraften kann, als den eines teuren Notebooks.

Die Vorgehensweise lässt sich grundsätzlich auf andere Hersteller übertragen. Man benötigt nur die passende Version der „ME“-Firmware und die passenden Versionen der Tools[/alert]

7 Kommentare

  1. Pingback: Intels Management Engine | /dev/tal e.V.

  2. Pingback: Intel Management Engine | /dev/tal e.V.

  3. Guten Morgen,

    ich würde diese Prozedur eigentlich gerne mal durchführen, allerdings würde ich mich wohler fühlen, wenn die Herkunft der Pakete deutlicher wäre und ggf. Checksummen (oder Links zu solchen) verfügbar wären. Etwas in einer Dropbox zur Verfügung zu stellen statt etwas transparenter in einem Github oder ähnliches sorgt in der Linux-Community durchaus für ein gewisses Naserümpfen und Stirnrunzeln.

    Aber sonst sage ich: Danke fürs aufzeigen.

  4. Pingback: How do I upgrade Management Engine/AMT firmware for Lenovo T440s given a Linux installation? - Boot Panic

Schreibe einen Kommentar

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

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.