Sicherheitslücken in CPUs von Intel/AMD/anderen (Microcode+App+OS fixes notwendig)

Nach den Updates von Windows 10, Firefox und Firmware (BIOS) habe ich gerade mal den Test via PowerShell durchgeführt. Sieht schon ganz gut aus, aber wie bekomme ich noch die beiden unteren "False"-Einträge weg?

PowerShell-1.PNG
 
Nach den Updates von Windows 10, Firefox und Firmware (BIOS) habe ich gerade mal den Test via PowerShell durchgeführt. Sieht schon ganz gut aus, aber wie bekomme ich noch die beiden unteren "False"-Einträge weg?

Das ist alles soweit in Ordnung bei Dir! Diese beiden Einträge bedeuten nur, dass das Anwenden der Patches nicht durch die Hardware und auch nicht durch Systemrichtlinien verhindert werden. Somit also genau richtig.

Wichtig ist, dass alle Einträge grün sind. Sind einige davon rot, besteht Verbesserungsbedarf.
 
Bezüglich CPU Microcode-Update gibt es für die älteren ThinkPads vielleicht noch ne Chance, auch wenn Lenovo kein Biosupdate mehr rausbringt. Intel müsste nur ein Microcode-File für ältere CPUs bereitstellen durch welches Spectre und Meltdown gefixt werden.

Die Jungs von VMWare bieten schon seit einer ganzen Weile ein Windows-Tool inkl. signiertemTreiber zum Update des Microcodes für Intel und AMD CPUs an.
https://labs.vmware.com/flings/vmware-cpu-microcode-update-driver#instructions

Intel bringt alle 3 Monate Microcode-Updates für seine CPUs raus, der letzte Stand ist von gestern, dem 08.01.2018:
https://downloadcenter.intel.com/download/27431/Linux-Processor-Microcode-Data-File?v=t

Mit welcher Microcode Version eine CPU läuft, lässt sich zum Beispiel mit dem bekannten RW-Utility (einfach mal nach Googlen) rausfinden:
patch-id.png
Der SandyBridge i7-2820QM in meinem W520 verwendet noch eine Microcode Version 0x29.
rolleyes2.png


Wer es nicht erwarten kann, kann natürlich auch alle 3 Monate seiner CPU ein Microcode-Update gönnen und im Anschluss Spectre und Meltdown gegenprüfen. :thumbsup:

Nicht vergessen, es ist nur ein Treiber der den Microcode bei jedem Start von Windows temporär nachläd...

EDIT: Es scheint so, als ob der Treiber den Microcode zu spät läd, sodass Windows einen potentiellen Fix für Spectre und Meltdown nicht erkennt:
https://labs.vmware.com/flings/vmware-cpu-microcode-update-driver#comments

Grüße
Cyrix
 
Zuletzt bearbeitet:
Tja, seit gestern gibt es nun auch das neu BIOS fürs T460p, welches CVE-2017-5715 beheben soll. Und da ich zum patchen mal wieder unter Windows war, hatte ich natürlich auch gleich die entsprechenden Windowsupdates eingespielt.

Anschließend spaßeshalber mit SpeculationControl geprüft und dann gab es das:
speccontrol2.JPG

Das alternative Tool SpecuCheck gab entsprechendes aus. Der Windowspatch gegen Meltdown lüppt also, aber die Hardware sei immer noch ungepatcht und ich benötige ein BIOS-Update? Dass der Fehler im Prüf-Script liegt, schließe ich mal aus, da das andere Tool ja das gleiche sagt. Ist da irgendwas mit Windows 7 im argen oder hat Lenovo da geschlampt?

Das BIOS-Update lief ohne Problem durch, habe zur Sicherheit dennoch nochmals auf das vorige zurück gespielt, die neue BIOS-Version erneut runter geladen und erneut geflasht. Immer noch die gleiche Ausgabe. Ich weiß auch nicht, wie Lenovo die Lücke damit beheben wollte, die Microcode-Version ist zumindest die gleiche wie vorher.

Hat hier eventuell noch jemand so ein unbefriedigendes Ergebnis nach dem Thinkpad-BIOS-Update bei Skylake-Geräten? Vor allem beim T460p?
 
Das Powershell-Script und SpecuCheck rufen nur Funktionen der Windows API auf und geben dazu eine Statusmeldung ab. Wenn das Bios bereits ein CPU Microcode-Update durchgeführt hat, wäre es auch Möglich, dass Windows dies nicht korrekt erkennt.

Hast du mal die Bios-Defaults geladen, ändert sich ggf. dann die Version des Microcodes der CPU? Wäre natürlich auch möglich, dass für die in deinem T460p verbaute CPU noch kein Microcode-Update existiert?!

Grüße
Cyrix
 
Zuletzt bearbeitet:
harpo schrieb:
Hat hier eventuell noch jemand so ein unbefriedigendes Ergebnis nach dem Thinkpad-BIOS-Update bei Skylake-Geräten? Vor allem beim T460p?
Mein positiver Screenshot aus #121 bezieht sich ebenfalls auf ein Skylake-Gerät, mit einem heute geflashten BIOS by Lenovo. Allerdings nutze ich ein ThinkPad E560 sowie Windows 10 x64, Build: 16299.192.
 
Wenn das Bios bereits ein CPU Microcode-Update durchgeführt hat, wäre es auch Möglich, dass Windows dies nicht korrekt erkennt.

Die Microcode-Version habe ich sowohl unter Windows als auch unter Linux gecheckt. Wird unter beiden OS noch die alte Version angezeigt. Gerade nochmal verglichen mit den Releasnotes aus dem Intel-Microcode-Paket, dass Du auch verlinkt hast. Gestern war da noch das alte vom November.


Hast du mal die Bios-Defaults geladen?
Nee, nur einige relevante Einstellungen, die ich immer vor Updates zurücksetze. Werde ich mal versiuchen, aber denke, dass es nichts bringen wird.
 
Die Jungs von VMWare bieten schon seit einer ganzen Weile ein Windows-Tool inkl. signiertemTreiber zum Update des Microcodes für Intel und AMD CPUs an.
https://labs.vmware.com/flings/vmware-cpu-microcode-update-driver#instructions

Manche ComputerBase-Leser sind auf die kreative Idee gekommen, in Ermangelung eines vom Mainboard- bzw. Notebook-Hersteller bereitgestellten BIOS- bzw. Firmware-Update mit neuem Microcode die Angelegenheit selbst in die Hand zu nehmen und den neuen Microcode mit dem VMware CPU Microcode Update Driver einzuspielen. Dieses Tool installiert den Microcode allerdings nicht dauerhaft, sondern lädt ihn bei jedem Betriebssystemstart. Und das passiert den Informationen von ComputerBase zu Folge für den gegebenen Anwendungsfall zu spät: Windows hat den Microcode schon vorher angeschaut und für zu alt befunden und lässt die Maßnahmen gegen Spectre „Variant 2“ somit deaktiviert. (In diesem Fall geben die beiden oben genannten Tools die zunächst verwirrende Info aus, dass Windows keine Maßnahmen gegen Spectre „Variant 2“ getroffen habe, obwohl das Windows-Update sowie neuer Microcode vorhanden seien – jener wird leider schlicht zu spät geladen.)
Klappt somit nicht.

ComputerBase.de - Meltdown & Spectre: Details und Benchmarks zu den Sicherheitslücken in CPUs - Update 14


P.S.: Microsoft - Understanding the performance impact of Spectre and Meltdown mitigations on Windows Systems
 
Zuletzt bearbeitet:
Mein positiver Screenshot aus #121 bezieht sich ebenfalls auf ein Skylake-Gerät, mit einem heute geflashten BIOS by Lenovo. Allerdings nutze ich ein ThinkPad E560 sowie Windows 10 x64, Build: 16299.192.

Also ich habe mir jetzt mal die entpackten BIOS-Update-Dateien fürs T460p angesehen und es scheint wirklich eine veraltete Microcode-Version zu enthalten. Im beiliegenden "Manifest" steht für die für die CPU-Kennung "506e3" (das sollten die Skylake-HQ-CPUs sein) als Microcodeversion "ba" mit Datum 09.04.2017 drin. Das ist die alte, die letztes Jahr zur Behebung des Hyperthreading-Bugs veröffentlicht wurde.

Des weiteren findet sich dort eine Zeile mit Prozessor "406e3" (dürften die Skylake-U-CPUs sein) und Microcodeversion "c2" vom 16.11.2017. Das sollte die aktuelle für alle Skylakes sein. So steht z.B. in den Releasnotes des Linuxpakets:
SKL-U/Y D0 (06-4e-03:c0) ba->c2
.
.
SKL-H/S R0 (06-5e-03:36) ba->c2
Also ersteres sind wohl demnach die U-CPUS, das untere die HQs. Und für beide ist das Update von ba auf c2.

Anscheinend hat Lenovo hier also geschlampt. Wäre also interessant, ob dies ein Microcodefile ist, was sie für mehrere BIOS verwenden und ob dies nur das T460p betrifft oder auch die Updates für andere Skylake-HQ-Modelle, also dem P50 und P70?

Hoffe, dass Lenovo da bald nachbessert. Wenn es nur das T460p betrifft, fürchte ich allerdings, dass es länger dauern kann, da es ja nicht so sehr verbreitet ist und die Zahl derer, denen das Fehlschlagen des Patches auffallen dürfte somit gering sein wird.
 
Bezüglich CPU Microcode-Update gibt es für die älteren ThinkPads vielleicht noch ne Chance, auch wenn Lenovo kein Biosupdate mehr rausbringt. Intel müsste nur ein Microcode-File für ältere CPUs bereitstellen durch welches Spectre und Meltdown gefixt werden.

Die Jungs von VMWare bieten schon seit einer ganzen Weile ein Windows-Tool inkl. signiertemTreiber zum Update des Microcodes für Intel und AMD CPUs an.
https://labs.vmware.com/flings/vmware-cpu-microcode-update-driver#instructions

Intel bringt alle 3 Monate Microcode-Updates für seine CPUs raus, der letzte Stand ist von gestern, dem 08.01.2018:
https://downloadcenter.intel.com/download/27431/Linux-Processor-Microcode-Data-File?v=t

Mit welcher Microcode Version eine CPU läuft, lässt sich zum Beispiel mit dem bekannten RW-Utility (einfach mal nach Googlen) rausfinden:
Anhang anzeigen 136985
Der SandyBridge i7-2820QM in meinem W520 verwendet noch eine Microcode Version 0x29.
rolleyes2.png


Wer es nicht erwarten kann, kann natürlich auch alle 3 Monate seiner CPU ein Microcode-Update gönnen und im Anschluss Spectre und Meltdown gegenprüfen. :thumbsup:

Nicht vergessen, es ist nur ein Treiber der den Microcode bei jedem Start von Windows temporär nachläd...

EDIT: Es scheint so, als ob der Treiber den Microcode zu spät läd, sodass Windows einen potentiellen Fix für Spectre und Meltdown nicht erkennt:
https://labs.vmware.com/flings/vmware-cpu-microcode-update-driver#comments

Grüße
Cyrix
ich verstehe das ja evtl falsch, aber der Microcode ist nur für Linux? oder brauche ich da den Linux MP Data File und das Processor Diagnostic tool und noch mehr? so ganz klar ist mir das alles nicht.

edit: bei mir sieht es auch so aus, CPU ID 000206A7, Patch ID 0000029
 
Zuletzt bearbeitet:
Bezüglich CPU Microcode-Update gibt es für die älteren ThinkPads vielleicht noch ne Chance, auch wenn Lenovo kein Biosupdate mehr rausbringt. Intel müsste nur ein Microcode-File für ältere CPUs bereitstellen durch welches Spectre und Meltdown gefixt werden.

Danke, ich hate nicht gesehen dass es nach dem November-Update noch eins gab. Es stimmt zwar, das Intel häufig diese Updates rausbringt, aber es gibt eben nur ein Paket für alle CPUs von Intel. Folglich sind in den Updates meist nur Microcodes für neuere CPUs enthalten, ältere lässt man hingegen meist links liegen...

Da Lenovo ja beim T530 ein Update in Aussicht gestellt hat (vorgestern haben sie ja die Liste diesbezüglich aktualisiert) hoffe ich mal, dass Intel zumindest noch für diese Generation ein Microcode-Update rausbringt...
 
Gibt wohl nicht nur unter Windows Abstürtze.

Ubuntu Kernel Image 4.4.0.109 behebt Abstürze nach dem Kernel Image 4.4.0.108 Deskmodder.de
https://www.deskmodder.de/blog/2018...rze-nach-dem-kernel-image-4-4-0-108/#comments
https://ubuntuforums.org/showthread.php?t=2382157&page=3&

Ashampoo Spectre Meltdown CPU Checker erschienen Deskmodder.de
https://www.deskmodder.de/blog/2018/01/10/ashampoo-spectre-meltdown-cpu-checker-erschienen/#comments

ich finde das Tool sehr gelungen:
Releases · ionescu007_SpecuCheck · GitHub
https://github.com/ionescu007/SpecuCheck/releases

c:\>e:\tools\SpecuCheck\SpecuCheck.exe
SpecuCheck v1.0.4 -- Copyright(c) 2018 Alex Ionescu
https://ionescu007.github.io/SpecuCheck/ -- @aionescu
-------------------------------------------------------

Mitigations for CVE-2017-5754 [rogue data cache load]
-------------------------------------------------------
[-] Kernel VA Shadowing Enabled: no
├───> with User Pages Marked Global: no
└───> with PCID Flushing Optimization (INVPCID): no

Mitigations for CVE-2017-5715 [branch target injection]
-------------------------------------------------------
[-] Branch Prediction Mitigations Enabled: no
├───> Disabled due to System Policy (Registry): yes
└───> Disabled due to Lack of Microcode Update: no
[-] CPU Microcode Supports SPEC_CTRL MSR (048h): yes
└───> Windows will use IBRS (01h): no
└───> Windows will use STIPB (02h): no
[-] CPU Microcode Supports PRED_CMD MSR (049h): yes
└───> Windows will use IBPB (01h): yes

Das Ergebniss ist natürlich niht so toll -> offen wie ein Scheunentor oder Bluescreens :pinch::pinch::pinch::pinch::pinch::pinch:
 
Zuletzt bearbeitet:
BIOS Implementation Test Suite wäre noch eine Möglichkeit für Microcode-Updates. Es handelt sich um einen Bootloader auf der Basis von Grub 2, welcher Microcodes nachladen kann und im Anschluss ein beliebiges OS von einem anderen Laufwerk booten kann.
https://biosbits.org

BITS gibts auch direkt bei Intel:
https://downloadcenter.intel.com/download/19763

Intel-Microcodes:
https://downloadcenter.intel.com/download/27431/Linux-Processor-Microcode-Data-File?v=t

Rufus zum USB-Stick erstellen:
https://rufus.akeo.ie

Ich habe mir einen bootbaren USB-Stick mit Rufus erstellt und das BITS-ISO draufgezogen und zuätzlich die aktuellen Intel Microcodes dazugeholt. Vom USB-Stick booten klappt und BITS erkennt auch die CPU.

Leider sind keine neuen Microcodes vorhanden für die CPUs in meinem W520, X220, X201 und T400...

Wäre toll, wenn das mal jemand testen könnte, der eine CPU verbaut hat für die es aktuellere Intel-Microcdes (idealerweise mit Spectre Fix) gibt als im BIOS hinterlegt.

Leitfaden: Wie Prüfe ich, ob es einen neueren Microcode für meine CPU gibt, als im Bios hinterlegt:
1. Man identifiziere die CPU-ID und Patch-ID mit dem bekannten RW-Utility (einfach mal nach Googlen)
2. Man lade sich das aktuelle Intel Microcode-Update runter, entpackt dieses und öffne die microcodes.dat mit einem Texteditor
3. Man such mit dem Texteditor nach seiner CPU-ID
4. Man vergleiche die Patch-ID aus dem RW-Utility mit dem Fund aus der microcodes.dat

Beispiel (Sandybridge i7 2820QM, CPU-ID: 0x206A7, Patch-ID: 0x29): /* m12206a7_00000029.inc */ wie zu sehen identisch, die microcodes.dat enthält keine höhere Version als das Bios.
patch-id.png


Grüße
Cyrix
 
Zuletzt bearbeitet:
Habe heute die aktuellen Microcode-Dateien von Intel manuell unter Linux installiert, da Ubuntu die entsprechenden aktuellen Pakete noch nicht bereit stellt. War auch nach etwas Recherche dann kein Problem, man muss nämlich zusätzlich zu den im Intel-Download beschriebenen Anweisungen noch update-initramfs ausführen, um dem Kernel auch beizubringen, dass er den Code auch bei jedem Booten zu laden hat. Über die *buntu-eigene Microcode-Update-Funktion ginge das wohl alles automatisch, wenn eben die entsprechenden Pakete vorliegen.

Nun ist meine CPU zumindest unter Linux gepatcht, womit ich zu 90-95 % arbeite. Vielleicht rafft ja Lenovo bald, dass es den falschen bzw. alten Microcode in das BIOS-Update gepackt hat... Wenn nicht, probiere ich evtl. mal den Lösungsansatz von Cyrix, ich hab ja leider eine CPU, für die es zwar Microcode mit Spectre-Fix gibt, der Hersteller es nur leider schaffte, den nicht in das entsprechende BIOS-Update einzubauen. :facepalm:
 
Leider sind keine neuen Microcodes vorhanden für die CPUs in meinem W520, X220, X201 und T400...

Braucht das T400 diese Updates überhaipt? In der Auflistung von Intel taucht die Core2Duo-Generation ja nicht auf, und zumindest der Spectre-Checker für Variante 1 deutet an, dass diese CPUs davon nicht betroffen sind. Da die Core2Duo aber eh keine IOMMU haben, weiß ich nicht ob dort die Speichersegmentierung für die Virtualisierung überhaupt funktioniert...

BTW: Bits ist schön und gut, doch leider ist das letzte Release von 2016 und enthält somit keine aktuellen Microcodes. Die müsste man sich dort dann wohl manuell reinbasteln.

Weiß man schon, ob es mit dem Update vom 8.1. für weitere CPUs die neuen Microcodes gab, oder wurden nur die bereits reparierten nochmal optimiert?

- - - Beitrag zusammengeführt - - -

Für Geräte, die kein BIOS-Update mehr bekommen gibt es evtl. die Möglichkeit, dass Microcode-Updates bei jedem booten über das OS geladen werden können. Unter Linux ist das problemlos möglich (unter Windows gibt es wohl eine ähnliche Möglichkeit?). Aber hierfür müssen die CPU-Hersteller auch erstmal Microcode-Upates für die Prozessoren bereit stellen. Das werden sie sicher nicht für alle in den letzten 20 Jahren hergestellten machen. Für CPUs, für die Intel und AMD keine Upates veröffentlichen, gibt es keine Möglichkeit genannte Spectre (Variant 2) zu schließen.

Das würde ich so nicht unterschreiben. Momentan ist unklar, ob AMD von Variante 2 betroffen ist (trotz "near-zero"-blabla). Allerdings gibt es wohl die Möglichkeit bei vielen alten AMD-CPUs (Generationen 10h, 12h und 16h - was mit 15h ist bleibt leider offen) ohne Microcode-Updates die spekulative Ausführung abzuschalten. Für 17h (Zen) gibt es bereits ein Microcode-Update. Vgl. das Statement von RedHat:

Due to the differences in underlying hardware implementation, AMD X86 systems are not vulnerable to variant #3. The correct default values will be set on AMD hardware based on dynamic checks during the boot sequence.
pti 0 ibrs 0 ibpb 2 -> fix variant #1 #2 if the microcode update is applied
pti 0 ibrs 2 ibpb 1 -> fix variant #1 #2 on older processors that can disable indirect branch prediction without microcode updates


Quelle: https://access.redhat.com/articles/3311301 (Abschnitt "Architectural defaults")

 
In BITS muss man keine Microcodes reinbasteln. Es genügt den CPU spezifischen Microcode unter /boot/mcu.first oder den allgemeinen Microcode unter /boot/mcu abzulegen.

Es werden Binäre und Textdateien unterstützt. Die microcode.dat ist ein Textfile mit allen allgemeinen Codes für mehrere CPUs.

Steht aber auch alles in der Readme die in BITS enthalten ist.

Am besten warten wir einfach mal ab. Solange Intel keine neuen Microcodes für entsprechende CPUs rausrückt, können wir sowieso nichts unternehmen...

Gruß
Cyrix
 
Zuletzt bearbeitet:
Danke - auch wenn ich die von Dir angegebenen Informationen nicht in der Doku finden konnte.
 
Braucht das T400 diese Updates überhaipt? In der Auflistung von Intel taucht die Core2Duo-Generation ja nicht auf, und zumindest der Spectre-Checker für Variante 1 deutet an, dass diese CPUs davon nicht betroffen sind.
Ich habe vorhin den Meltdown-Checker laufen lassen und der meinte für meinen C2D P8600 "System affected". Diese CPU ist aus Q3/2008. Wäre mal interessant was für den P8400 rauskommt, der ist noch von 2006.

https://github.com/raphaelsc/Am-I-affected-by-Meltdown
 
  • ok1.de
  • ok2.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben