# Wie spectre-meltdown-checker auslesen/updaten

## LuxJux

Grundsätzlich wird das Problem verstanden.

Irgendwelche Variablen (Passwörter,etc) werden im Vorfeld der Programmausführung schon mal in irgendwelche Register geladen.

Ob die dann auch gebraucht werden...egal

Das ist wohl die Sicherheitslücke (und übersteigt mein Wissen/Verständnis)

https://github.com/speed47/spectre-meltdown-checker

kann das überprüfen (hoffentlich)

Frage: Was steht denn da? Und muß irgendwas geändert / geupdated werden?

Entschuldigt bitte. Ich versteh weder die Ausgabe noch das Technische

```
Spectre and Meltdown mitigation detection tool v0.39+

Checking for vulnerabilities on current system

Kernel is Linux 4.17.14-gentoo #1 SMP Sat Aug 11 14:35:33 CEST 2018 x86_64

CPU is Intel(R) Core(TM) i5-4590 CPU @ 3.30GHz

Hardware check

* Hardware support (CPU microcode) for mitigation techniques

  * Indirect Branch Restricted Speculation (IBRS)

    * SPEC_CTRL MSR is available: arcmsr 45056 0 - Live 0xffffffffc06c0000

 UNKNOWN  (is msr kernel module available?)

    * CPU indicates IBRS capability:  NO 

  * Indirect Branch Prediction Barrier (IBPB)

    * PRED_CMD MSR is available:  UNKNOWN  (is msr kernel module available?)

    * CPU indicates IBPB capability:  NO 

  * Single Thread Indirect Branch Predictors (STIBP)

    * SPEC_CTRL MSR is available:  UNKNOWN  (is msr kernel module available?)

    * CPU indicates STIBP capability:  NO 

  * Speculative Store Bypass Disable (SSBD)

    * CPU indicates SSBD capability:  NO 

  * L1 data cache invalidation

    * FLUSH_CMD MSR is available:  UNKNOWN  (is msr kernel module available?)

  * Enhanced IBRS (IBRS_ALL)

    * CPU indicates ARCH_CAPABILITIES MSR availability:  NO 

    * ARCH_CAPABILITIES MSR advertises IBRS_ALL capability:  NO 

  * CPU explicitly indicates not being vulnerable to Meltdown (RDCL_NO):  NO 

  * CPU explicitly indicates not being vulnerable to Variant 4 (SSB_NO):  NO 

  * Hypervisor indicates host CPU might be vulnerable to RSB underflow (RSBA):  NO 

  * CPU microcode is known to cause stability problems:  NO  (model 0x3c family 0x6 stepping 0x3 ucode 0x1e cpuid 0x306c3)

  * CPU microcode is the latest known available version:  NO  (you have version 0x1e and latest known version is 0x25)

* CPU vulnerability to the speculative execution attack variants

  * Vulnerable to Variant 1:  YES 

  * Vulnerable to Variant 2:  YES 

  * Vulnerable to Variant 3:  YES 

  * Vulnerable to Variant 3a:  YES 

  * Vulnerable to Variant 4:  YES 

  * Vulnerable to Variant l1tf:  YES 

CVE-2017-5753 [bounds check bypass] aka 'Spectre Variant 1'

* Mitigated according to the /sys interface:  YES  (Mitigation: __user pointer sanitization)

* Kernel has array_index_mask_nospec:  YES  (1 occurrence(s) found of x86 64 bits array_index_mask_nospec())

* Kernel has the Red Hat/Ubuntu patch:  NO 

* Kernel has mask_nospec64 (arm64):  NO 

> STATUS:  NOT VULNERABLE  (Mitigation: __user pointer sanitization)

CVE-2017-5715 [branch target injection] aka 'Spectre Variant 2'

* Mitigated according to the /sys interface:  YES  (Mitigation: Full generic retpoline)

* Mitigation 1

  * Kernel is compiled with IBRS support:  YES 

    * IBRS enabled and active:  NO 

  * Kernel is compiled with IBPB support:  YES 

    * IBPB enabled and active:  NO 

* Mitigation 2

  * Kernel has branch predictor hardening (arm):  NO 

  * Kernel compiled with retpoline option:  YES 

    * Kernel compiled with a retpoline-aware compiler:  YES  (kernel reports full retpoline compilation)

> STATUS:  NOT VULNERABLE  (Full retpoline is mitigating the vulnerability)

IBPB is considered as a good addition to retpoline for Variant 2 mitigation, but your CPU microcode doesn't support it

CVE-2017-5754 [rogue data cache load] aka 'Meltdown' aka 'Variant 3'

* Mitigated according to the /sys interface:  YES  (Mitigation: PTI)

* Kernel supports Page Table Isolation (PTI):  YES 

  * PTI enabled and active:  YES 

  * Reduced performance impact of PTI:  YES  (CPU supports INVPCID, performance impact of PTI will be greatly reduced)

* Running as a Xen PV DomU:  NO 

> STATUS:  NOT VULNERABLE  (Mitigation: PTI)

CVE-2018-3640 [rogue system register read] aka 'Variant 3a'

* CPU microcode mitigates the vulnerability:  NO 

> STATUS:  VULNERABLE  (an up-to-date CPU microcode is needed to mitigate this vulnerability)

CVE-2018-3639 [speculative store bypass] aka 'Variant 4'

* Mitigated according to the /sys interface:  NO  (Vulnerable)

* Kernel supports speculation store bypass:  YES  (found in /proc/self/status)

> STATUS:  VULNERABLE  (Your CPU doesn't support SSBD)

CVE-2018-3615/3620/3646 [L1 terminal fault] aka 'Foreshadow & Foreshadow-NG'

> STATUS:  VULNERABLE  (your CPU is known to be vulnerable, and your kernel doesn't report that it mitigates the issue, but more thorough mitigation checking by this script is being worked on (check often for new versions!))

Need more detailed information about mitigation options? Use --explain

A false sense of security is worse than no security at all, see --disclaimer

plasma # 

```

----------

## bbgermany

Hi,

eigentlich sagt die Ausgabe nur, dass du bereits die entsprechenden Schutzmechanismen für Spectre v1, v2 und v3 aktiv hast. Jedoch bist du über die Lücken v3a, v4 und L1TF noch angreifbar.

Um dich da auch etwas sicherer zu machen solltest du dir folgendes mal anschauen. Für 3a brauchst du einen aktuellen Microcode von Intel für deine CPU. Der wird dann beim Booten vom Kernel geladen: siehe https://wiki.gentoo.org/wiki/Intel_microcode#Kernel_3 wie man den mit einspielt in den Kernel. Wenn ich mich richtig erinnere, sollte mit Version 0x25  (ist im Paket sys-firmware/intel-microcode enthalten) dann auch gleich v4 mit "gefixt" sein. 

Für L1TF musst du nur einen aktuellen Kernel nehmen. Am besten vielleicht den neusten, also 4.18.3.

MfG. Stefan

----------

## Tyrus

@LuxJux:

Das Tool analysiert zuerst deine CPU-Eigenschaften. Je nach CPU wird angezeigt welche Anfälligkeiten existieren. Nicht jede CPU ist gegen alles unbedingt anfällig.

Danach wird geprüft wie weit Schutzmassnahmen ergriffen wurden. Das wären erstmal ein Kernel der die passende Unterstützung eingebaut hat und eben das schon erwähnte sys-firmware/intel-microcode Paket. Den microcode würde ich wie in der Wiki erklärt über den Kernel aktivieren. Nur musst du vorher den passenen microcode für deine spezielle CPU raussuchen. Dabei hilft dir das Kommando:

```

iucode_tool -S -l /lib/firmware/intel-ucode/*

```

Ergibt bei mir:

```

iucode_tool: system has processor(s) with signature 0x000506e3

microcode bundle 1: /lib/firmware/intel-ucode/06-01-01

microcode bundle 2: /lib/firmware/intel-ucode/06-01-02

microcode bundle 3: /lib/firmware/intel-ucode/06-01-06

microcode bundle 4: /lib/firmware/intel-ucode/06-01-07

microcode bundle 5: /lib/firmware/intel-ucode/06-01-09

microcode bundle 6: /lib/firmware/intel-ucode/06-03-00

microcode bundle 7: /lib/firmware/intel-ucode/06-03-02

microcode bundle 8: /lib/firmware/intel-ucode/06-03-03

microcode bundle 9: /lib/firmware/intel-ucode/06-03-04

microcode bundle 10: /lib/firmware/intel-ucode/06-05-00

microcode bundle 11: /lib/firmware/intel-ucode/06-05-01

microcode bundle 12: /lib/firmware/intel-ucode/06-05-02

microcode bundle 13: /lib/firmware/intel-ucode/06-05-03

microcode bundle 14: /lib/firmware/intel-ucode/06-06-00

microcode bundle 15: /lib/firmware/intel-ucode/06-06-05

microcode bundle 16: /lib/firmware/intel-ucode/06-06-0a

microcode bundle 17: /lib/firmware/intel-ucode/06-06-0d

microcode bundle 18: /lib/firmware/intel-ucode/06-07-00

microcode bundle 19: /lib/firmware/intel-ucode/06-07-01

microcode bundle 20: /lib/firmware/intel-ucode/06-07-02

microcode bundle 21: /lib/firmware/intel-ucode/06-07-03

microcode bundle 22: /lib/firmware/intel-ucode/06-08-00

microcode bundle 23: /lib/firmware/intel-ucode/06-08-01

microcode bundle 24: /lib/firmware/intel-ucode/06-08-03

microcode bundle 25: /lib/firmware/intel-ucode/06-08-06

microcode bundle 26: /lib/firmware/intel-ucode/06-08-0a

microcode bundle 27: /lib/firmware/intel-ucode/06-09-00

microcode bundle 28: /lib/firmware/intel-ucode/06-09-01

microcode bundle 29: /lib/firmware/intel-ucode/06-09-02

microcode bundle 30: /lib/firmware/intel-ucode/06-09-04

microcode bundle 31: /lib/firmware/intel-ucode/06-09-05

microcode bundle 32: /lib/firmware/intel-ucode/06-09-06

microcode bundle 33: /lib/firmware/intel-ucode/06-0a-00

microcode bundle 34: /lib/firmware/intel-ucode/06-0a-01

microcode bundle 35: /lib/firmware/intel-ucode/06-0a-04

microcode bundle 36: /lib/firmware/intel-ucode/06-0b-00

microcode bundle 37: /lib/firmware/intel-ucode/06-0b-01

microcode bundle 38: /lib/firmware/intel-ucode/06-0b-04

microcode bundle 39: /lib/firmware/intel-ucode/06-0d-00

microcode bundle 40: /lib/firmware/intel-ucode/06-0d-01

microcode bundle 41: /lib/firmware/intel-ucode/06-0d-02

microcode bundle 42: /lib/firmware/intel-ucode/06-0d-06

microcode bundle 43: /lib/firmware/intel-ucode/06-0d-08

microcode bundle 44: /lib/firmware/intel-ucode/06-0e-00

microcode bundle 45: /lib/firmware/intel-ucode/06-0e-01

microcode bundle 46: /lib/firmware/intel-ucode/06-0e-04

microcode bundle 47: /lib/firmware/intel-ucode/06-0e-08

microcode bundle 48: /lib/firmware/intel-ucode/06-0e-0c

microcode bundle 49: /lib/firmware/intel-ucode/06-0f-00

microcode bundle 50: /lib/firmware/intel-ucode/06-0f-01

microcode bundle 51: /lib/firmware/intel-ucode/06-0f-02

microcode bundle 52: /lib/firmware/intel-ucode/06-0f-04

microcode bundle 53: /lib/firmware/intel-ucode/06-0f-05

microcode bundle 54: /lib/firmware/intel-ucode/06-0f-06

microcode bundle 55: /lib/firmware/intel-ucode/06-0f-07

microcode bundle 56: /lib/firmware/intel-ucode/06-0f-09

microcode bundle 57: /lib/firmware/intel-ucode/06-0f-0a

microcode bundle 58: /lib/firmware/intel-ucode/06-0f-0b

microcode bundle 59: /lib/firmware/intel-ucode/06-0f-0d

microcode bundle 60: /lib/firmware/intel-ucode/06-15-00

microcode bundle 61: /lib/firmware/intel-ucode/06-16-00

microcode bundle 62: /lib/firmware/intel-ucode/06-16-01

microcode bundle 63: /lib/firmware/intel-ucode/06-17-00

microcode bundle 64: /lib/firmware/intel-ucode/06-17-01

microcode bundle 65: /lib/firmware/intel-ucode/06-17-04

microcode bundle 66: /lib/firmware/intel-ucode/06-17-06

microcode bundle 67: /lib/firmware/intel-ucode/06-17-07

microcode bundle 68: /lib/firmware/intel-ucode/06-17-0a

microcode bundle 69: /lib/firmware/intel-ucode/06-1a-04

microcode bundle 70: /lib/firmware/intel-ucode/06-1a-05

microcode bundle 71: /lib/firmware/intel-ucode/06-1c-01

microcode bundle 72: /lib/firmware/intel-ucode/06-1c-02

microcode bundle 73: /lib/firmware/intel-ucode/06-1c-09

microcode bundle 74: /lib/firmware/intel-ucode/06-1c-0a

microcode bundle 75: /lib/firmware/intel-ucode/06-1d-00

microcode bundle 76: /lib/firmware/intel-ucode/06-1d-01

microcode bundle 77: /lib/firmware/intel-ucode/06-1e-04

microcode bundle 78: /lib/firmware/intel-ucode/06-1e-05

microcode bundle 79: /lib/firmware/intel-ucode/06-25-02

microcode bundle 80: /lib/firmware/intel-ucode/06-25-05

microcode bundle 81: /lib/firmware/intel-ucode/06-26-01

microcode bundle 82: /lib/firmware/intel-ucode/06-2a-00

microcode bundle 83: /lib/firmware/intel-ucode/06-2a-01

microcode bundle 84: /lib/firmware/intel-ucode/06-2a-02

microcode bundle 85: /lib/firmware/intel-ucode/06-2a-03

microcode bundle 86: /lib/firmware/intel-ucode/06-2a-04

microcode bundle 87: /lib/firmware/intel-ucode/06-2a-05

microcode bundle 88: /lib/firmware/intel-ucode/06-2a-06

microcode bundle 89: /lib/firmware/intel-ucode/06-2a-07

microcode bundle 90: /lib/firmware/intel-ucode/06-2c-01

microcode bundle 91: /lib/firmware/intel-ucode/06-2c-02

microcode bundle 92: /lib/firmware/intel-ucode/06-2d-05

microcode bundle 93: /lib/firmware/intel-ucode/06-2d-06

microcode bundle 94: /lib/firmware/intel-ucode/06-2d-07

microcode bundle 95: /lib/firmware/intel-ucode/06-2e-06

microcode bundle 96: /lib/firmware/intel-ucode/06-2f-00

microcode bundle 97: /lib/firmware/intel-ucode/06-2f-01

microcode bundle 98: /lib/firmware/intel-ucode/06-2f-02

microcode bundle 99: /lib/firmware/intel-ucode/06-35-00

microcode bundle 100: /lib/firmware/intel-ucode/06-35-01

microcode bundle 101: /lib/firmware/intel-ucode/06-36-00

microcode bundle 102: /lib/firmware/intel-ucode/06-36-01

microcode bundle 103: /lib/firmware/intel-ucode/06-36-09

microcode bundle 104: /lib/firmware/intel-ucode/06-37-01

microcode bundle 105: /lib/firmware/intel-ucode/06-37-02

microcode bundle 106: /lib/firmware/intel-ucode/06-37-03

microcode bundle 107: /lib/firmware/intel-ucode/06-37-08

microcode bundle 108: /lib/firmware/intel-ucode/06-37-09

microcode bundle 109: /lib/firmware/intel-ucode/06-3a-00

microcode bundle 110: /lib/firmware/intel-ucode/06-3a-02

microcode bundle 111: /lib/firmware/intel-ucode/06-3a-04

microcode bundle 112: /lib/firmware/intel-ucode/06-3a-05

microcode bundle 113: /lib/firmware/intel-ucode/06-3a-06

microcode bundle 114: /lib/firmware/intel-ucode/06-3a-08

microcode bundle 115: /lib/firmware/intel-ucode/06-3a-09

microcode bundle 116: /lib/firmware/intel-ucode/06-3c-03

microcode bundle 117: /lib/firmware/intel-ucode/06-3d-04

microcode bundle 118: /lib/firmware/intel-ucode/06-3e-00

microcode bundle 119: /lib/firmware/intel-ucode/06-3e-02

microcode bundle 120: /lib/firmware/intel-ucode/06-3e-03

microcode bundle 121: /lib/firmware/intel-ucode/06-3e-04

microcode bundle 122: /lib/firmware/intel-ucode/06-3e-06

microcode bundle 123: /lib/firmware/intel-ucode/06-3e-07

microcode bundle 124: /lib/firmware/intel-ucode/06-3f-01

microcode bundle 125: /lib/firmware/intel-ucode/06-3f-02

microcode bundle 126: /lib/firmware/intel-ucode/06-3f-03

microcode bundle 127: /lib/firmware/intel-ucode/06-3f-04

microcode bundle 128: /lib/firmware/intel-ucode/06-45-01

microcode bundle 129: /lib/firmware/intel-ucode/06-46-01

microcode bundle 130: /lib/firmware/intel-ucode/06-47-01

microcode bundle 131: /lib/firmware/intel-ucode/06-4a-08

microcode bundle 132: /lib/firmware/intel-ucode/06-4a-09

microcode bundle 133: /lib/firmware/intel-ucode/06-4c-01

microcode bundle 134: /lib/firmware/intel-ucode/06-4c-02

microcode bundle 135: /lib/firmware/intel-ucode/06-4c-03

microcode bundle 136: /lib/firmware/intel-ucode/06-4c-04

microcode bundle 137: /lib/firmware/intel-ucode/06-4d-00

microcode bundle 138: /lib/firmware/intel-ucode/06-4d-08

microcode bundle 139: /lib/firmware/intel-ucode/06-4e-01

microcode bundle 140: /lib/firmware/intel-ucode/06-4e-02

microcode bundle 141: /lib/firmware/intel-ucode/06-4e-03

microcode bundle 142: /lib/firmware/intel-ucode/06-4e-08

microcode bundle 143: /lib/firmware/intel-ucode/06-4f-00

microcode bundle 144: /lib/firmware/intel-ucode/06-55-03

microcode bundle 145: /lib/firmware/intel-ucode/06-55-04

microcode bundle 146: /lib/firmware/intel-ucode/06-55-05

microcode bundle 147: /lib/firmware/intel-ucode/06-56-02

microcode bundle 148: /lib/firmware/intel-ucode/06-56-03

microcode bundle 149: /lib/firmware/intel-ucode/06-56-04

microcode bundle 150: /lib/firmware/intel-ucode/06-56-05

microcode bundle 151: /lib/firmware/intel-ucode/06-57-01

microcode bundle 152: /lib/firmware/intel-ucode/06-5a-00

microcode bundle 153: /lib/firmware/intel-ucode/06-5c-02

microcode bundle 154: /lib/firmware/intel-ucode/06-5c-08

microcode bundle 155: /lib/firmware/intel-ucode/06-5c-09

microcode bundle 156: /lib/firmware/intel-ucode/06-5c-0a

microcode bundle 157: /lib/firmware/intel-ucode/06-5d-01

microcode bundle 158: /lib/firmware/intel-ucode/06-5e-00

microcode bundle 159: /lib/firmware/intel-ucode/06-5e-01

microcode bundle 160: /lib/firmware/intel-ucode/06-5e-02

microcode bundle 161: /lib/firmware/intel-ucode/06-5e-03

microcode bundle 162: /lib/firmware/intel-ucode/06-5e-08

microcode bundle 163: /lib/firmware/intel-ucode/06-5f-01

microcode bundle 164: /lib/firmware/intel-ucode/06-66-00

microcode bundle 165: /lib/firmware/intel-ucode/06-66-01

microcode bundle 166: /lib/firmware/intel-ucode/06-66-02

microcode bundle 167: /lib/firmware/intel-ucode/06-66-03

microcode bundle 168: /lib/firmware/intel-ucode/06-7a-00

microcode bundle 169: /lib/firmware/intel-ucode/06-7a-01

microcode bundle 170: /lib/firmware/intel-ucode/06-85-00

microcode bundle 171: /lib/firmware/intel-ucode/06-8e-09

microcode bundle 172: /lib/firmware/intel-ucode/06-8e-0a

microcode bundle 173: /lib/firmware/intel-ucode/06-8e-0b

microcode bundle 174: /lib/firmware/intel-ucode/06-9e-09

microcode bundle 175: /lib/firmware/intel-ucode/06-9e-0a

microcode bundle 176: /lib/firmware/intel-ucode/06-9e-0b

microcode bundle 177: /lib/firmware/intel-ucode/06-9e-0c

microcode bundle 178: /lib/firmware/intel-ucode/0f-00-05

microcode bundle 179: /lib/firmware/intel-ucode/0f-00-06

microcode bundle 180: /lib/firmware/intel-ucode/0f-00-07

microcode bundle 181: /lib/firmware/intel-ucode/0f-00-08

microcode bundle 182: /lib/firmware/intel-ucode/0f-00-09

microcode bundle 183: /lib/firmware/intel-ucode/0f-00-0a

microcode bundle 184: /lib/firmware/intel-ucode/0f-01-01

microcode bundle 185: /lib/firmware/intel-ucode/0f-01-02

microcode bundle 186: /lib/firmware/intel-ucode/0f-01-03

microcode bundle 187: /lib/firmware/intel-ucode/0f-02-00

microcode bundle 188: /lib/firmware/intel-ucode/0f-02-01

microcode bundle 189: /lib/firmware/intel-ucode/0f-02-02

microcode bundle 190: /lib/firmware/intel-ucode/0f-02-03

microcode bundle 191: /lib/firmware/intel-ucode/0f-02-04

microcode bundle 192: /lib/firmware/intel-ucode/0f-02-05

microcode bundle 193: /lib/firmware/intel-ucode/0f-02-06

microcode bundle 194: /lib/firmware/intel-ucode/0f-02-07

microcode bundle 195: /lib/firmware/intel-ucode/0f-02-09

microcode bundle 196: /lib/firmware/intel-ucode/0f-03-00

microcode bundle 197: /lib/firmware/intel-ucode/0f-03-01

microcode bundle 198: /lib/firmware/intel-ucode/0f-03-02

microcode bundle 199: /lib/firmware/intel-ucode/0f-03-03

microcode bundle 200: /lib/firmware/intel-ucode/0f-03-04

microcode bundle 201: /lib/firmware/intel-ucode/0f-03-06

microcode bundle 202: /lib/firmware/intel-ucode/0f-03-07

microcode bundle 203: /lib/firmware/intel-ucode/0f-04-00

microcode bundle 204: /lib/firmware/intel-ucode/0f-04-01

microcode bundle 205: /lib/firmware/intel-ucode/0f-04-02

microcode bundle 206: /lib/firmware/intel-ucode/0f-04-03

microcode bundle 207: /lib/firmware/intel-ucode/0f-04-04

microcode bundle 208: /lib/firmware/intel-ucode/0f-04-06

microcode bundle 209: /lib/firmware/intel-ucode/0f-04-07

microcode bundle 210: /lib/firmware/intel-ucode/0f-04-08

microcode bundle 211: /lib/firmware/intel-ucode/0f-04-09

microcode bundle 212: /lib/firmware/intel-ucode/0f-04-0a

microcode bundle 213: /lib/firmware/intel-ucode/0f-06-00

microcode bundle 214: /lib/firmware/intel-ucode/0f-06-01

microcode bundle 215: /lib/firmware/intel-ucode/0f-06-02

microcode bundle 216: /lib/firmware/intel-ucode/0f-06-03

microcode bundle 217: /lib/firmware/intel-ucode/0f-06-04

microcode bundle 218: /lib/firmware/intel-ucode/0f-06-05

microcode bundle 219: /lib/firmware/intel-ucode/0f-06-06

microcode bundle 220: /lib/firmware/intel-ucode/0f-06-08

selected microcodes:

  158/001: sig 0x000506e0, pf_mask 0x22, 2014-11-19, rev 0x0018, size 81920

  159/001: sig 0x000506e1, pf_mask 0x22, 2015-06-02, rev 0x002a, size 76800

  160/001: sig 0x000506e2, pf_mask 0x14, 2015-08-15, rev 0x002e, size 76800

  161/001: sig 0x000506e3, pf_mask 0x36, 2018-04-17, rev 0x00c6, size 99328

  162/001: sig 0x000506e8, pf_mask 0x22, 2016-07-10, rev 0x0034, size 96256

```

Ganz oben die erste Zeile enthält die Signatur für deine CPU. Damit schauste ganz unten bei den selected microcodes nach der Signatur. In meinem Fall also Bundel 161. Und dann bekommste aus der Liste der Bundels das, was du wie in der Wiki angezeigt, beim Kernel eintragen musst. In meinem Fall:

```

Device Drivers  --->

  Generic Driver Options  --->

    [*]   Include in-kernel firmware blobs in kernel binary

    (intel-ucode/06-5e-03) External firmware blobs to build into the kernel binary

    (/lib/firmware) Firmware blobs root directory

```

Wenn du alles richtig machst zeigt dir der Checker dann das die Sicherheitslücken geschlossen sind.

----------

## Tyrus

Nach Kernelneubau und Reboot von neuem Kernel kannste das auch nochmal so überprüfen ob der Kernel den richtigen Microcode benutzt.

```

luthien ~ # dmesg | grep microcode

[    0.000000] microcode: microcode updated early to revision 0xc6, date = 2018-04-17

[    0.757977] microcode: sig=0x506e3, pf=0x2, revision=0xc6

[    0.758523] microcode: Microcode Update Driver: v2.2.

```

----------

## Keruskerfuerst

Ich würde auch ein Bios Update beim Mainboard durchführen, wenn eines vorhanden ist.

----------

## Tyrus

Also wenn du das Microcodeupdate machst, brauchste kein Biosupdate. Ich mach am Bios nur extrem ungern was. 

Der Checker zeigt doch dann an wenn trotzdem noch was offen sein sollte.

----------

## Keruskerfuerst

Welches Mainboard wird eingesetzt?

----------

## LuxJux

Sollte es um ältere Boards gehen

Besitze ein MSI, das letzte BIOS-Update ist von 2016.  (V1.31 ist installiert)

Mit den microcodes/kernel-updates wird später nochmal Rückmeldung gegeben. Soweit bin ich noch nicht.

Muß aber auch nicht hetzen. Besitze nur 1 PC. Die Dev's werden sich schon was einfallen lassen.

Angriffsziel bin ich wahrscheinlich nicht.

Das mit dem online-password abgreifen.....der Fix sollte schon installiert sein.

(Könnte von mir aus auch nun ins Diskussions-Forum verschoben werden)

----------

## ChrisJumper

Ich mach das einfach per grub.

Im Kernel hab ich wie im Wiki unter Processor Type an Features, das Laden vom Microcode fest eingebaut, anschließend noch initram aktiviert...

```
General setup  --->

    [*] Initial RAM filesystem and RAM disk (initramfs/initrd) support

Processor type and features  --->

    <*> CPU microcode loading support

    [*]   Intel microcode loading support
```

Und dann noch den Abschnitt unter Grub Legacy, beziehungsweise Grub 2 nach vollzogen.

Zuvor muss man natürlich sys-firmware/intel-microcode sys-apps/iucode_tool emergen und via iucode_tool die Firmware nach /boot/ kopieren.

Es schadet auch nicht zuvor die Signatur für den eigenen Prozessor zu Prüfen. Grob gibt es da die Intel Seite wo man eine Tabelle findet, welche CPU-Signatur die einzelnen CPUs haben (also bis auf die letzte Ziffer).

Aber ich hatte es bisher noch bei keiner CPU, das dieses iucode_tool falsch lag.

Der Rest steht eigentlich im Wiki. Problem war nur weil es so viele Möglichkeiten gibt, oder so viele Wege nach ROM führen, den passenden für sich zu finden.

Die Grub Lösung hat halt den Nachteil der Handarbeit. Wobei ich ein System habe, wird der Code automatisch nach einem Update überschrieben und nach /boot/ kopiert., bei den anderen muss ich immer noch Hand anlegen, auch zum Umbenennen der cpio oder img Datei.

Mache es aber auch lieber per Hand, oder schreibe eigene Scripte die ich dann ausführen. Wahrscheinlich gibt es dafür aber schon einen Automatismus und ich habe das intel-microcode Wiki nur nicht genau gelesen.

Wenigstens braucht man das Update aber auch nicht so oft, ich mache es nur wenn ein Kernel-Update oder ein neuer Meltdown/Spectre Patch an steht. ;D

P.s.: Ich hab bisher ein mal vergessen den Microcode nach /boot/ zu kopieren und der Kernel startet trotzdem, auch wenn er natürlich sagt das er die Datei nicht finden kann.

----------

## hafgan

Hi Chris,

darf ich fragen, warum Du den Microcode nicht direkt in den Kernel baust? Dann wird beim Kernel erstellen immer der aktuelle gleich mit rein gebaut. (Natürlich müsste dann man einen neuen Kernel bauen, wenns mal ein Microcode-Update gibt.)

Aber eigentlich brauchst Dich um nichts mehr zu kümmern, wenn mans einmal eingestellt hat:

```
Device Drivers  --->

  Generic Driver Options  --->

    [*]   Include in-kernel firmware blobs in kernel binary

    (intel-ucode/06-3c-03) External firmware blobs to build into the kernel binary

    (/lib/firmware) Firmware blobs root directory
```

https://wiki.gentoo.org/wiki/Intel_microcode#New_method_without_initram-fs.2Fdisk

Anderes Thema:

[Erledigt.]

Gruß

hafgan

----------

## ChrisJumper

Hi hafgan,

ja das war halt zuerst weil ich nicht immer einen neuen Kernel bauen wollte und ich mir auch nicht sicher war ob der Mikrocode passt.

Aber das einbauen scheint wirklich die bequemere Lösung zu sein und ich denke ich werde das alles wieder um bauen.

Beim Kernel lässt man sich ja auch mal ein oder zwei ältere als Alternative liegen, wenn etwas nicht klappt. So wollte ich das auch mit dem Microcode machen. Es gab im Januar Meldungen das Hardware beschädigt werden konnte oder das System nach einem Bios-Update nicht mehr hoch fährt. Deswegen war ich Anfangs eher vorsichtig.

Vielen Dank für den Hinweis, ich hätte es auch hier im Thread fast überlesen, zumal er ja auch im Wiki zwischen den vielen anderen erwähnt wurde.

Viele Grüße

----------

## mv

Einbinden per grub statt direkt in den Kernel hat mehrere Vorteile:

Die selbe Kernel-Konfiguration kann für verschiedene Prozessoren benutzt werden.Man kann unabhängig upgraden.Man muss sich nach der Einstellung um gar nichts kümmern. Insbesondere kann es einem nicht passieren, dass man nach einem Microcode update vergessen hat, den Kernel neu zu bauenWenn ein Microcode-Update tatsächlich mal Ärger machen sollte, kann man in Grub einfach die temporär die Einbindung abschalten.Nicht zuletzt: Man spart sich redundante Kopien. Auch wenn es nicht viel ist, ist die nicht-redundante Lösung eigentlich immer die eleganteste.

----------

