(c) 20.01.2018 - Ali
Hi
Hier geht es um die Spectre 2 Sicherheitslücke auf dem Grossteil der Intel Systeme. Da ja jetzt scheinbar uCodes für die meisten Systeme verfügbar sind, nutze ich die Gelegenheit und passe den Thread entsprechend an. Ich bin auf Informationen von Euch Usern (Danke!) und aus dem Web angewiesen, welche zum Teil auch recht widersprüchlich sind. Daher ist dieser Fred mit Vorsicht zu geniessen. Vor allem auch, wenn es um das patchen vom BIOS geht. Kann gut sein, dass sich hier falsche Infos einschleichen. BIOS patchen auf eigene Gefahr!!!
Um Spectre 2 zu patchen, sind u.A. die genannten uCodes von Intel nötig. Diese liegen einerseits im BIOS, andererseits können sie auch vom OS zur Verfügung gestellt werden. Sofern die uCode Revision vom OS höher ist als die des BIOS, werden die uCodes vom OS verwendet. Umgekehrt ist es nicht möglich, d.h. das überschreiben mit einer niederwertigeren Revision geht nicht. Bei Linux Systemen scheint es zum grossen Teil aktuelle uCodes von Haus aus zu geben. Bei Windows war es bis vor kurzem so, dass gar keine uCodes per Windows Update zur Verfügung gestellt wurden. Das hat sich dieses Jahr geändert: im Januar wurden für Windows 10 monatliche Qualitätsrollup-Updates für die Surface Modelle ausgeliefert, später kam auch ein Update für Skylake. Die ersten Updates vom Januar für Windows wurden aber zurückgezogen, da der enthaltene uCode fehlerhaft war. Ob in dem besagten Windows Update nur die uCodes für die Surface Modelle, oder auch noch allgemein Nachbesserung am OS für die aktuellen Sicherheitslücken enthalten waren, entzieht sich meiner Kenntnis. Auf jeden Fall wurde geraten, mindestens das Qualitätsrollup vom Januar wieder rückgängig zu machen.
So wie ich das sehe, sind das folgende fehlerhafte Updates:
Siehe auch weiter unten im OS-Patch Spoiler.
Falls sich Microsoft dazu entschliesst, alle aktuellen uCodes per Windows Update zur Verfügung zu stellen, wird dieser Thread ohnehin obsolet. Im Moment ist aber Eigeninitiative gefragt, was das Einspielen der uCodes erfordert. Neben den genannten Möglichkeiten (BIOS Update bzw. die Verfügbarkeit im OS) gibt es aber noch eine weitere Vorgehensweise. Der uCode wird nach dem POST Vorgang und vor dem Laden des OS, bzw. vor init.d und dem Kernel anderweitig geladen. Dies kann durch einen Bootloader (der z.B. auf einem USB Stick liegt) erfolgen, der vor dem Laden des init.d des OS den uCode vom BIOS überschreibt. Wenn man jetzt mit der angewendeten USB Bootloader Methode im Windows den uCode Patch noch aktiv unterdrückt, hat man auch die Möglichkeit, den Patch nach Wunsch zu de- bzw. aktivieren. Das heisst, wenn man den Stick abzieht hat man keinen Spectre 2 Schutz, dafür mehr Leistung (z.B. um Videos zu rendern oder zu spielen). Startet man den PC mit Stick ist der aktualisierte uCode aktiv, und man kann halt nur einen Teil der Leistung abrufen. Es sollte ja dem Leser schon bekannt sein, dass es mit dem aktiven Patch zu massiven Leistungseinbrüchen kommt…
Falls Ihr Euch sicher seid, dass Ihr ein ungepachtes System habt, solltet Ihr bevor Ihr beginnt zu patchen die ungepachte CPU ID, Plattform ID und die uCode Version notieren. Nach dem Patch werdet Ihr eine neue uCode Version haben. Es ist unerlässlich, dass Ihr diese Versionen unterscheiden könnt. Diese Infos können z.B. mit hwinfo64 ausgelesen werden.
Vor dem Patch:
Nach dem Patch:
Verwendetes uCode File:
Als Beispiel dient Sandy-E x206D7.
Weiter unten gibt es auch noch eine Anmerkung, wie man dem OS vorgaukelt, einen aktuellen uCode zu haben. Einen Schutz gibt es dadurch nicht, trotzdem kann es für Experimente hilfreich sein. Der Vollständigkeit halber lasse ich den Spoiler daher bestehen.
Bei Heise gibt es einen guten kostenpflichtigen Artikel dazu:
Von Microcodes und wie man sie patcht | c't Magazin
Bedrohungen:
Quelle:
Massnahmen:
Hi
Es wäre aber super wenn du den Vorgang es Microcode einspielen genauer beschrieben würdest. Dann könnte man, wenn der neue Microcode da ist, damit weiterarbeiten.
Hier geht es um die Spectre 2 Sicherheitslücke auf dem Grossteil der Intel Systeme. Da ja jetzt scheinbar uCodes für die meisten Systeme verfügbar sind, nutze ich die Gelegenheit und passe den Thread entsprechend an. Ich bin auf Informationen von Euch Usern (Danke!) und aus dem Web angewiesen, welche zum Teil auch recht widersprüchlich sind. Daher ist dieser Fred mit Vorsicht zu geniessen. Vor allem auch, wenn es um das patchen vom BIOS geht. Kann gut sein, dass sich hier falsche Infos einschleichen. BIOS patchen auf eigene Gefahr!!!
Um Spectre 2 zu patchen, sind u.A. die genannten uCodes von Intel nötig. Diese liegen einerseits im BIOS, andererseits können sie auch vom OS zur Verfügung gestellt werden. Sofern die uCode Revision vom OS höher ist als die des BIOS, werden die uCodes vom OS verwendet. Umgekehrt ist es nicht möglich, d.h. das überschreiben mit einer niederwertigeren Revision geht nicht. Bei Linux Systemen scheint es zum grossen Teil aktuelle uCodes von Haus aus zu geben. Bei Windows war es bis vor kurzem so, dass gar keine uCodes per Windows Update zur Verfügung gestellt wurden. Das hat sich dieses Jahr geändert: im Januar wurden für Windows 10 monatliche Qualitätsrollup-Updates für die Surface Modelle ausgeliefert, später kam auch ein Update für Skylake. Die ersten Updates vom Januar für Windows wurden aber zurückgezogen, da der enthaltene uCode fehlerhaft war. Ob in dem besagten Windows Update nur die uCodes für die Surface Modelle, oder auch noch allgemein Nachbesserung am OS für die aktuellen Sicherheitslücken enthalten waren, entzieht sich meiner Kenntnis. Auf jeden Fall wurde geraten, mindestens das Qualitätsrollup vom Januar wieder rückgängig zu machen.
So wie ich das sehe, sind das folgende fehlerhafte Updates:
Win 7 SP1: | KB 4056894 |
Win 8.1: | KB 4056895 |
Win 10: | KB 4056891 für 1703, bzw. KB 4056892 für 1709 |
Siehe auch weiter unten im OS-Patch Spoiler.
Falls sich Microsoft dazu entschliesst, alle aktuellen uCodes per Windows Update zur Verfügung zu stellen, wird dieser Thread ohnehin obsolet. Im Moment ist aber Eigeninitiative gefragt, was das Einspielen der uCodes erfordert. Neben den genannten Möglichkeiten (BIOS Update bzw. die Verfügbarkeit im OS) gibt es aber noch eine weitere Vorgehensweise. Der uCode wird nach dem POST Vorgang und vor dem Laden des OS, bzw. vor init.d und dem Kernel anderweitig geladen. Dies kann durch einen Bootloader (der z.B. auf einem USB Stick liegt) erfolgen, der vor dem Laden des init.d des OS den uCode vom BIOS überschreibt. Wenn man jetzt mit der angewendeten USB Bootloader Methode im Windows den uCode Patch noch aktiv unterdrückt, hat man auch die Möglichkeit, den Patch nach Wunsch zu de- bzw. aktivieren. Das heisst, wenn man den Stick abzieht hat man keinen Spectre 2 Schutz, dafür mehr Leistung (z.B. um Videos zu rendern oder zu spielen). Startet man den PC mit Stick ist der aktualisierte uCode aktiv, und man kann halt nur einen Teil der Leistung abrufen. Es sollte ja dem Leser schon bekannt sein, dass es mit dem aktiven Patch zu massiven Leistungseinbrüchen kommt…
Falls Ihr Euch sicher seid, dass Ihr ein ungepachtes System habt, solltet Ihr bevor Ihr beginnt zu patchen die ungepachte CPU ID, Plattform ID und die uCode Version notieren. Nach dem Patch werdet Ihr eine neue uCode Version haben. Es ist unerlässlich, dass Ihr diese Versionen unterscheiden könnt. Diese Infos können z.B. mit hwinfo64 ausgelesen werden.
Vor dem Patch:
Nach dem Patch:
Verwendetes uCode File:
Als Beispiel dient Sandy-E x206D7.
Weiter unten gibt es auch noch eine Anmerkung, wie man dem OS vorgaukelt, einen aktuellen uCode zu haben. Einen Schutz gibt es dadurch nicht, trotzdem kann es für Experimente hilfreich sein. Der Vollständigkeit halber lasse ich den Spoiler daher bestehen.
Bei Heise gibt es einen guten kostenpflichtigen Artikel dazu:
Von Microcodes und wie man sie patcht | c't Magazin
Bedrohungen:
- Meltdown
Nur Intel CPUs & reine OS-Updates reichen. ESXi, Windows, Linux und OSX auf dem neuesten Stand halten. Ältere ESXi-Versionen (< 5.5) bleiben betroffen. - Spectre 1
Auch AMD & ARM sind betroffen - darüber hinaus auch Grafikkartentreiber und Applikationen, die Code nachladen (Browser). Jede Software, die Code lädt (alle OS, Browser, etc.) muss gepatcht werden. - Spectre 2
wie Variante 1, aber hier müssen als "Patch" Prozessorbefehle im kompilierten Code durch solche ersetzt werden, die nicht anfällig sind - diese beherrschen die CPUs aber erst nach einem Microcode-Update. Eingespielte Updates für Spectre 2 sind ohne passenden Microcode wirkungslos! - Weitere
hwluxx - Weitere Sicherheitslücken: Auf Spectre und Meltdown könnten Skyfall und Solace folgen
Quelle:
vmware-forum.de - Massive-Luecke-in-Intel-CPUs-erfordert-umfassende-Patche~thc@vmware-forum.de schrieb:Noch mal zur Klarstellung:
Für die Spectre/Meltdown-Lücken braucht man unterschiedliche Patches, die nur die bisher bekannten Varianten ausbügeln. Das bleibt alles im Fluss und wir werden im Laufe dieses Jahres noch mehr Lücken und noch mehr oder optimierte Patches sehen.
Meltdown: Nur Intel CPUs & reine OS-Updates reichen. ESXi, Windows, Linux und OSX auf dem neuesten Stand halten. Ältere ESXi-Versionen (< 5.5) bleiben betroffen.
Spectre Variante 1: Auch AMD & ARM sind betroffen - darüber hinaus auch Grafikkartentreiber und Applikationen, die Code nachladen (Browser). Jede Software, die Code lädt (alle OS, Browser, etc.) muss gepatcht werden.
Spectre Variante 2: wie Variante 1, aber hier müssen als "Patch" Prozessorbefehle im kompilierten Code durch solche ersetzt werden, die nicht anfällig sind - diese beherrschen die CPUs aber erst nach einem Microcode-Update. Eingespielte Updates für Spectre 2 sind ohne passenden Microcode wirkungslos!
Ob aktuelle OS-Updates auch den "richtigen" Microcode für den jeweils verwendeten Prozessor bereitstellen, ist alles andere als einfach zu beantworten. Hat man ein BIOS-Update mit expliziter Angabe der Prozessoren, ist man auf der sicheren Seite.
Massnahmen:
- luxx - Ueberprüfung der Mitigation gegen Spectre und Meltdown
- Gefixte CPU's bzw. Plattformen:
Aktuelle Intel microcode revision guidance suchen...
Leider sind die älteren Versionen der Intel microcode revision guidance wohl nur mit Anmeldung bei der Intel Seite zum Download verfügbar. Es ist nur mit geübten Auge möglich, die aktuelle Version als gepatcht zu identifizieren. Ich gehe z.Z. einfach nach dem Datum der Veröffentlichung des uCodes. Sprich Revision mit Datum vom März 2018 (als "Production" markiert) sollte bereits gepatcht sein. Daher habe ich die "alten" ungepatchten uCodes im Spoiler gelassen. Der Grossteil der Plattformen aus dem Spoiler ist also ungepatcht oder fehlerhaft. Ich habe diese Liste nur stehen gelassen, damit Ihr die ungepachte uCode Revision von Eurem System ermitteln könnt!
Stand Januar 2018; nur wenige Modelle sind gepatcht, zudem fehlerhaft:
Zu den neu unterstützten CPUs (Intel upstream microcode datafile 20180108)
Code:intel-microcode (3.20180108.0~ubuntu16.04.2) xenial-security; urgency=medium * New upstream microcode datafile 20180108 + New Microcodes: sig 0x000506c9, pf_mask 0x03, 2017-03-25, rev 0x002c, size 16384 sig 0x000706a1, pf_mask 0x01, 2017-12-26, rev 0x0022, size 73728 sig 0x000906ea, pf_mask 0x22, 2018-01-04, rev 0x0080, size 97280 sig 0x000906eb, pf_mask 0x02, 2018-01-04, rev 0x0080, size 98304 + Updated Microcodes: sig 0x000306c3, pf_mask 0x32, 2017-11-20, rev 0x0023, size 23552 sig 0x000306d4, pf_mask 0xc0, 2017-11-17, rev 0x0028, size 18432 sig 0x000306e4, pf_mask 0xed, 2017-12-01, rev 0x042a, size 15360 sig 0x000306f2, pf_mask 0x6f, 2017-11-17, rev 0x003b, size 33792 sig 0x000306f4, pf_mask 0x80, 2017-11-17, rev 0x0010, size 17408 sig 0x00040651, pf_mask 0x72, 2017-11-20, rev 0x0021, size 22528 sig 0x00040661, pf_mask 0x32, 2017-11-20, rev 0x0018, size 25600 sig 0x00040671, pf_mask 0x22, 2017-11-17, rev 0x001b, size 13312 sig 0x000406e3, pf_mask 0xc0, 2017-11-16, rev 0x00c2, size 99328 sig 0x00050654, pf_mask 0xb7, 2017-12-08, rev 0x200003c, size 27648 sig 0x00050662, pf_mask 0x10, 2017-12-16, rev 0x0014, size 31744 sig 0x00050663, pf_mask 0x10, 2017-12-16, rev 0x7000011, size 22528 sig 0x000506e3, pf_mask 0x36, 2017-11-16, rev 0x00c2, size 99328 sig 0x000806e9, pf_mask 0xc0, 2018-01-04, rev 0x0080, size 98304 sig 0x000806ea, pf_mask 0xc0, 2018-01-04, rev 0x0080, size 98304 sig 0x000906e9, pf_mask 0x2a, 2018-01-04, rev 0x0080, size 98304 * source: remove unneeded intel-ucode/ directory * source: remove superseded upstream data file: 20170707
Bzw.:
Code:-- Updates [B][color=red]upon[/color][/B] 20171117 release -- IVT C0 (06-3e-04:ed) 428->42a SKL-U/Y D0 (06-4e-03:c0) ba->c2 BDW-U/Y E/F (06-3d-04:c0) 25->28 HSW-ULT Cx/Dx (06-45-01:72) 20->21 Crystalwell Cx (06-46-01:32) 17->18 BDW-H E/G (06-47-01:22) 17->1b HSX-EX E0 (06-3f-04:80) 0f->10 SKL-H/S R0 (06-5e-03:36) ba->c2 HSW Cx/Dx (06-3c-03:32) 22->23 HSX C0 (06-3f-02:6f) 3a->3b BDX-DE V0/V1 (06-56-02:10) 0f->14 BDX-DE V2 (06-56-03:10) 700000d->7000011 KBL-U/Y H0 (06-8e-09:c0) 62->80 KBL Y0 / CFL D0 (06-8e-0a:c0) 70->80 KBL-H/S B0 (06-9e-09:2a) 5e->80 CFL U0 (06-9e-0a:22) 70->80 CFL B0 (06-9e-0b:02) 72->80 SKX H0 (06-55-04:b7) 2000035->200003c GLK B0 (06-7a-01:01) 1e->22
- Im UEFI BIOS uCodes einspielen:
(c) 19.03.2018 by Ali
Hi
Hier die Kurzversion für das Erstellen von dem mod BIOS mit den aktuellen Intel Microcodes gegen Spectre II. Dieser Guide ist für AMI Aptio IV & V UEFI BIOS gedacht. Das deckt die meisten Intel Desktop UEFI BIOS seit Sandy ab. Das nachfolgend verwendete UBU Tool ist nicht für Laptops geeignet! BIOS mod auf eigene Gefahr! Ich habe in der Workstation und im Server Dual BIOS; ohne eine entsprechende Technologie wird vom patchen mit eigens gemoddeter BIOS Software abgeraten!
Ich habe mein gemoddetes BIOS-File vor dem Flashen mit dem exakt zur AMI Aptio Version passenden MMTool überprüft:
AMI Aptio 4 - MMTool 4.50.0.23Nur so habe ich herausgefunden, welches UBU-Tool das richtige Ergebnis liefert. Es war in meinem Fall die Release-Version.
AMI Aptio V - MMTool 5.0.0.7
Man kann auch mit dem UBU-Tool selbst das gemoddete BIOS-File überprüfen. Es nutzt dazu im Hintergrund den "MC Extractor":
GitHub - platomav/MCExtractor: Intel, AMD, VIA Freescale Microcode Extraction Tool
Stand Anfangs März 2018
Bereits früher einmal habe ich auf eine nette (und zuverlässige) Tool-Sammlung u. a. zum Thema "BIOS Modding" hingewiesen:
Latest Overclocking Programs, System Info, Benchmarking, Stability Tools
Ich für meinen Teil habe folgende Software verwendet:
- die aktuellen Intel uCodes vom 8.März 2018
- aktueller AMD Microcode (wird auch bei Intel benötigt)
- das UBU Toolkit
- MMTOOL_v5.0.0.7 für AMI Aptio V UEFI
- MMTOOL_v4.50.0.23 für AMI Aptio IV UEFI
- Microdecode
- Entpacktes BIOS File
Das patchen ist neben der ganzen Theorie recht einfach!
Vorbereitung:
Als erstes ermittle ich mit HWiNFO64 meine CPU ID, Plattform ID, Stepping der CPU sowie die aktuelle uCU Version. Diese Infos merken wir uns. Der uCode den wir auf unser BIOS patchen wollen, ist von der CPU ID abhängig. In einem BIOS gibt es daher mehrere uCode Sätze für die jeweils unterstützten CPU’s der Plattform.
Ihr solltet an der Konsole ein wenig fit sein. Um das zu machen ist es von Vorteil, wenn die nachfolgend erstellten Verzeichnisse keine Leer- und Sonderzeichen enthalten. Ausserdem sollte in den Ordneroptionen vom Explorer die Anzeige der Dateinamenerweiterungen aktiviert werden.
Die folgenden Archive:
• microcode-20180312.tgz
• amd64-microcode_3.20171205.1.tar.xz
• aktuelles UBU Toolkit
• mmtool_v5.rar
• microdecode.rar
• BIOS File, entpackt
in ein Verzeichnis kopieren. Das ist unser Datenverzeichnis.
- In dem Datenverzeichnis erstellen wir ein Arbeitsverzeichnis.
- Das entpackte BIOS File kopieren wir in das Arbeitsverzeichnis.
- Wir entpacken die Archive UBU_v1_69_15.7z und den Ordner MMTOOL_v5.0.0.7 aus MMTOOL_v5.0.0.7.zip in das Arbeitsverzeichnis.
- Im Arbeitsverzeichnis machen wir ein Unterverzeichnis Microcode.
- In das Verzeichnis Microcode entpacken wir den Ordner amd64-microcode-3.20171205.1 aus dem Archiv amd64-microcode_3.20171205.1.tar.xz.
- Des Weiteren entpacken wir den Ordner microdecode aus dem Archiv microdecode.rar in dasselbe Verzeichnis.
- Dann entpacken wir das Archiv microcode-20180312.tgz ebenfalls in den Ordner Microcode.
Das sieht dann so aus:
Datenverzeichnis:
Arbeitsverzeichnis:
Microcode Dateien:
Wir starten die Konsole mit Admin Rechten und wechseln in das Microcode Verzeichnis.
Dann in der Konsole:
Code:microdecode.exe microcode.dat
ausführen. Die aktuellen Intel Microcodes werden in das Verzeichnis Microcode entpackt.
In das Arbeitsverzeichnis wechseln:
Code:cd ..
Im Arbeitsverzeichnis UBU.bat ausführen:
Code:UBU.bat
UBU sollte nun Euer entpacktes BIOS erkennen. Mit Option 7 in den Microcode Mode wechseln. Dann "m" für User Select Microcode File wählen. Im Ordner Microcode das zur CPU ID passende File wählen. Laut hwinfo64 ist meine CPU ID 000206D7 und die alte uCU 710. Ich gebe also im Suchfeld *206D7 ein, und sehe dann folgendes File in den Suchergebnissen:
Das wähle ich aus und überschreibe meine v710 mit v713:
Dann aus dem Menu Microcode mit 0 verlassen, und noch Mal die 0 für Exit. Dann die Option 1 für rename to mod_E773IMS.280 (Beispiel für BIOS Filename E773IMS.280) wählen. Das BIOS File nach dem original BIOS Namen umbennenen (E773IMS.280).
Das UBU-Tool "räumt auf", d. h. es entfernt die MCs aus dem BIOS-File, die man nicht updated.
Am Schluss mit
AMI Aptio IV - MMTool 4.50.0.23
AMI Aptio V - MMTool 5.0.0.7
prüfen, ob der entsprechende uCU im ROM File enthalten ist. Nicht abspeichern, nur überprüfen hier.
Man kann auch mit dem UBU-Tool selbst das gemoddete BIOS-File überprüfen. Es nutzt dazu im Hintergrund den "MC Extractor":
GitHub - platomav/MCExtractor: Intel, AMD, VIA Freescale Microcode Extraction Tool
BIOS einspielen:
Das modded ROM File speichern wir nun auf einem FAT32 formatierten USB Stick. Nun direkt aus dem UEFI das ROM File auswählen und schreiben (upgrade BIOS).
Fehlerhaftes mod BIOS zurück flashen mit DUAL BIOS Boards:
PC mit dem funktionierenden original BIOS starten und gleich ins BIOS gehen. Im laufendem Betrieb mit offenem BIOS den DUAL BIOS Schalter auf dem Board benutzen, um auf das fehlerhafte mod BIOS zu wechseln. Nun könnt Ihr das fehlerhafte BIOS wieder überschreiben. Lasst Euch Zeit für das, und stellt sicher, dass Ihr das richtige BIOS (mod BIOS) flasht. Überschreibt Ihr aus versehen das laufende original BIOS ist Euer Board geschrottet.
Siehe auch biosflash.com - BIOS-Update fehlgeschlagen? - Erste Hilfe
Weitere Quellen :
- Fernando's Win-RAID Forum - UEFI BIOS Updater (UBU)
- Fernando's Win-RAID Forum - Updating ROMS on MSI Big Bang xPower II X79 - File included
- Fernando's Win-RAID Forum - How to flash a modded ASUS/ASRock/Gigabyte AMI UEFI BIOS
- Heise - Von Microcodes und wie man sie patcht (kostenpflichtig)
- Luxx - Intel kämpft mit schwerer Sicherheitslücke
- Luxx - Meltdown- und Spectre-Patches für Windows, macOS und Linux
- Luxx - Windows 10 Meltdown Patch bei Bedarf deaktivieren
- Luxx - Sammelthread MSI Big Bang XPower II MS-7737 (X79)
- vmware-forum.de - Massive-Luecke-in-Intel-CPUs-erfordert-umfassende-Patche
- vmware.com - NEW VMSA VMSA-2018-0002 VMware ESXi
- VMware Labs - Flings
- VMware Labs - Flings - CPU Microcode Update Driver
- MajorGeeks - Extract Information Within a BIOS File With UEFITool
- youtube - How to Update Intel and AMD Processor Microcode under Windows
- Techspot.com - Intel says 90 percent of CPUs have "received" Spectre and Meltdown patch
- biosflash.com - BIOS-Update fehlgeschlagen? - Erste Hilfe
- Nach BIOS Inizialisierung per (USB) Bootloader uCodes nachladen:
heise online - Lösung für Microcode-Updates auf älteren Windows-PCs ohne verfügbare BIOS Updates
KaiJ_Dev - Forum Heise.de - 11.01.2018 schrieb:Falls noch nach Lösungen für Microcode-Updates auf älteren Windows-PCs gesucht wird, hier ist eine Möglichkeit per USB-Stick Boot:
1. BIOS Bits herunterladen (ist eine modifizierte GRUB-Bootdisk):
Download
2. Microcode-Updates herunterladen:
Download Linux* Processor Microcode Data File
3. USB-Stick nach BIOS Bits-Anleitung erstellen
4. Den Inhalt des Verzeichnisses "intel-ucode" (NICHT das Verzeichnis selbst) aus dem Microcode-Updates auf dem angelegten Stick unter /boot/mcu ablegen.
5. Neustarten und per BIOS vom USB-Stick booten.
6. "Configure Menu" auswählen, dann "Load microcode", wenn alles geklappt hat, sollte man sehen, dass die Revision der CPU geupdated wurde.
7. Per ESC wieder zurück ins Hauptmenü, "Boot an OS from Disk" auswählen.
8. Die "richtige" Festplatte auswählen (die Reihenfolge ist nicht immer eindeutig, wenn das Booten nicht klappt, reset und ein andere Platte probieren, die Reihenfolge bleibt bei jedem Boot gleich).
Da die Microcode-Updates nicht persistent sind, muss die Boot-Prozedur bei JEDEM Boot neu durchgeführt werden (d.h. man muss immer von USB booten).
Weil es sich um GRUB handelt, kann man den Ablauf aber eventuell automatisieren, so dass man einfach nur noch von USB bootet.
Von dem Bios-Modding sollte man die Finger lassen. Es geht auch anders, mit weniger Aufwand und ohne sein System zu killen.
Ich hatte mir schon vor mehr als einer Woche einen bootfähigen USB-Stick erstellt, welcher die aktuelle Microcode.dat (Intel, vom 2018-01-08) und den Grub-Bootloader enthält. Das Problem ist nämlich, dass das Microcode-Update vor dem Starten des Windows-Kernels ausgeführt werden muss. Solche Tools\Treiber wie z. B. "VMware CPU Microcode Update Driver" können das logischerweise nicht, weil diese für die Ausführung ein gestartetes Windows benötigen.
Wie auch immer, mein 4770K (ein Haswell auf einem Asrock Z87 Extreme6) wurde in der letzten\aktuellen Microcode.dat berücksichtigt - Der gesamte nachfolgende Vorgang ist vollautomatisch:
Der Rechner startet vom Stick den Bootloader, dieser lädt das Microcode-Update und anschließend das BS (in diesem Fall Windows 10 x64).
Ich habe für die komplette Lösung inkl. Recherche ca. einen Tag benötigt, aber ein HowTo mache ich nicht - ist mir zu viel Aufwand ;-) ausserdem sollte man dbzgl auch ein paar Kenntnisse haben, damit man nichts schrottet.
Ein paar relevante Infos:
Bootfähigen Stick mit FAT32 erstellen, aber aufpassen, dass man den richtigen Laufwerksbuchstaben wählt und nicht seine Partitionen formatiert. Das Tool kennt (fast) jeder: hp_usb_disk_storage_format_tool-2.2.3.exe
BITS bzw. Grub: https://downloadcenter.intel.com/download/19763/BIOS-Implementation-Test-Suite-BITS-
Syslinux: https://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-6.03.zip
Aktuelle Microcodes: https://downloadcenter.intel.com/download/27431/Linux-Processor-Microcode-Data-File?v=t
Im BITS-Paket befindet sich eine Beschreibung (Install.txt).
Weitere Tipps, nach dem Fertigstellen des Sticks (Grub\Bits mit Syslinux):
Nur die microcode.dat muss aus dem microcode-Archiv in den Ordner boot\mcu des Sticks kopiert werden.
Falls man das automatische Laden von Bits\Grub haben möchte, also sich nicht immer durch das Menü hangeln will, dann muss man die toplevel.cfg im Ordner boot\cfg entsprechend anpassen.
Hat dein Rechner nur einen MBR bzw. wird dein Windows vom ersten MBR gebootet?Ja MBR kein GPT (GPT 4 TB Platte als Datengrab verbaut aber nicht in der Bootchain) Ansonten Dualboot mit Windows 7 und 10. Läuft über den Windows Bootloader im UEFI festgelten MBR der SDD.
DVD Laufwerk und USB kommen im UEFI von der Bootreihenfolge vor der SSD.In dem o.g. cfg Ordner befindet sich die Standard toplevel.cfg und auch noch weitere relevante cfg Dateien. Für Anregungen sollte man sich die configure.cfg (insb. mcu_load ...) und u.U. die boot.cfg mal ansehen.
Das Ergebnis muss dann in die toplevel.cfg ...
- - - Updated - - -
Das der Stick am Rechner bleibt, ist belanglos. Das Problem was ich sehe, ist, dass es für viele Boards keine Firmware-Updates geben wird. U. U. gibt es noch nicht einmal ein Microcode-Update für die Core 2 Reihe (habe hier noch einen Q9550).
Falls (hd1) die korrekte Partition sein sollte (siehe dbzgl. auch "Boot first drive MBR" usw. in der boot.cfg), dann sollte das Folgende in der toplevel.cfg ausreichen:
echo "Starting BITS ..."
if [ -e /boot/cfg/init.cfg ]; then source /boot/cfg/init.cfg; fi
if mcu_load /boot/mcu; then exit; fi
hd1 ist korrekt aber mit Deinem Eintrag bootet das System bei mir in Schleife.
Ich habe stattdessen nun folgendes die toplevel.cfg konfiguriert:
if [ -e /boot/cfg/init.cfg ]; then source /boot/cfg/init.cfg; fi
if mcu_load /boot/mcu; then configfile /boot/cfg/boot.cfg; fi
Nun muß ich noch manuell auswählen, von welcher HD ich booten will. Aber der Microcode wird automatisch geladen.
Da es der erste Eintrag im Menü ist, muß ich also nur einmal Enter drücken und er bootet die erste HD. Da kann ich vorerst auch mit leben.
Eigentlich erschien es mir logisch, die /boot/cfg/boot.cfg wie folgt zu modifizieren, um das mit der Enter Taste zu vermeiden:
set root=(hd1)
drivemap (hd1) (hd0)
chainloader +1
Aber so will er nicht. Naja mal sehen, vielleicht lese ich mir die Grub Doku nochmal in Ruhe durch aber für heute ist erst einmal gut.
Ansonsten funktioniert das mit dem Microcode Update gut udn der Powershell Check ist nun grün:
Vielen Dank für Deine Hilfe
Der Stick wurde immer im UEFI-Modus gestartet. Ich hatte das leider nicht mitbekommen. Wenn ich ihn im BIOS-Bootmenü als legacy SanDisk auswähle, dann funktionieren auch die mcu_load und mcu_status Skripte, auch grundsätzlich die toplevel.cfg, die hier gepostet wurde, auch die boot.cfg.
Ich hatte heute Morgen vor der Arbeit eine Eingebung
Das fett markierte oben in die boot\cfg\boot.cfg dazu:
set timeout=02
menuentry "Boot first drive MBR" {
set root=(hd1)
drivemap (hd1) (hd0)
chainloader +1
}
menuentry "Boot second drive MBR" {
set root=(hd2)
drivemap (hd2) (hd0)
chainloader +1
}
Nun bootet das Ding vollautomatisch nach 2 Sekunden. (Geht aber nur, wenn man von der ersten HD bootet, da dies der Default Eintrag ist.) - Im OS Microcode per vmware Treiber nachladen: (keine Auswirkungen auf die Sicherheit)
Der Abschnitt Im OS Microcode nachladen ist keine Lösung, m.E. führt das bei dem Leser nur zur Verwirrung. Der Microcode muss vor dem OS-Kernel geladen werden.
Den VMWare-Treiber kann man verwenden, um festzustellen, ob die Microcode-Datei die eigene CPU bereits unterstützen würde oder eben nicht. Aber wenn man bereits einen Bootloader vorbereitet hat, den man ohne BIOS-Fix des Boardherstellers sowieso benötigt, dann ist der VMWare-Treiber dbzgl. ebenfalls überflüssig.
Bios Update wirds auch keins geben für die Broadwell E. Ein Board, dass 2 Jahre alt ist bekommt kein neues Bios. Ich habe den Microcode von Hand zu Fuß aufgespielt, so ähnlich wie unter Linux.
Ist userunfreundlich, aber die einzige Möglichkeit ein Microcode Update zu erhalten.
Also, ohne Microcodeupdate bekommt Ihr nur die halbe Lücke, halb dicht, das kann man sich sparen. Ohne neuen Microcode, der bei den z.B. Z370 per Biosupdate eingespielt wird, hat das ganze gebastel an Windows keinen Sinn. Und auch erst nach dem neuen Microcode werden sich die performance Probleme einstellen.
Hier mal für alle die ein Board aus 2016 und älter haben eine Anleitung was zu tun ist:
How to Update Intel and AMD Processor Microcode under Windows - YouTube
Hier gibts die aktuellen Microcodes:
Download Linux* Processor Microcode Data File
Nicht von dem Wort Linux verwirren lassen!
Ohne den AMD Microcode läuft das Patchprogramm nicht:
Index of /debian/pool/non-free/a/amd64-microcode
Hier die VMware:
VMware CPU Microcode Update Driver
Grüße - OS Patch
Windows 7 SP1:
aktuell halten!
KB4056894 (zurückgezogen), KB4078130
Windows 8.1
aktuell halten!
KB4056895 (zurückgezogen), KB4078130
Windows 10:
aktuell halten!
Windows 10 1703: KB4056891 (zurückgezogen), KB4078130
Windows 10 1709: KB4056892 (zurückgezogen), KB4078130
Linux und OS X:
hwluxx - Meltdown- und Spectre-Patches für Windows, macOS und Linux - Anwendungen im OS patchen:
~thc schrieb:…darüber hinaus auch Grafikkartentreiber und Applikationen, die Code nachladen (Browser). Jede Software, die Code lädt (alle OS, Browser, etc.) muss gepatcht werden.
Spectre Variante 2: wie Variante 1, aber hier müssen als "Patch" Prozessorbefehle im kompilierten Code durch solche ersetzt werden, die nicht anfällig sind - diese beherrschen die CPUs aber erst nach einem Microcode-Update. Eingespielte Updates für Spectre 2 sind ohne passenden Microcode wirkungslos!
hwluxx schrieb:Zudem muss die Variante 1 von Spectre explizit von jeder Anwendung geschlossen werden. Ein Patch auf Betriebssystem-Ebene wirkt hier nicht.
Zuletzt bearbeitet: