Spectre and Meltdown CPU Vulnerability Test und Microcode Update unter Linux

 

Einführung in Spectre & Meltdown CPU Schwachstellen

Eine Möglichkeit, diese Angriffe zu blockieren, besteht darin, die Speicher-Caches zu bestimmten Zeiten zu leeren und exfiltrierte Informationen zu entfernen, bevor der Angreifer darauf zugreifen kann. Das Herunterladen des Cache nach jedem Systemaufruf würde wahrscheinlich eine Vielzahl von spekulativen Angriffen blockieren, aber es würde das System auch so weit verlangsamen, dass Benutzer nach Möglichkeiten suchen würden, den Mechanismus zu deaktivieren. Die Sicherheit der Informationen ist sehr wichtig, aber die Kosten sind zu hoch, wenn man die Speicher-Caches leert, reduziert wertvolle Produktionszeit.

Angriffe, die spekulative Ausführung verwenden, beinhalten, den Prozessor davon zu überzeugen, auf einem Weg zu spekulieren, dem die nicht-spekulative Ausführung nicht folgen wird. Beispielsweise kann eine Kernelfunktion eine Grenzwertprüfung enthalten, die verhindert, dass der Code über das Ende eines Arrays hinaus zugreift, was dazu führt, dass ein Fehler zurückgegeben wird. Ein Angriff, der die Spectre-Schwachstelle verwendet, überspringt diese Überprüfung auf spekulative Weise und greift auf Daten zu, auf die der Code speziell für den nicht Zugriff geschrieben wurde. Die Fehlerrückgabe ist ein Hinweis darauf, dass vielleicht etwas Unangemessenes passiert, aber bis dahin ist der Schaden bereits entstanden.

So überprüfen Sie, ob Ihr Linux-Server anfällig für Spectre-CPU-Fehler ist

Spectre & Meltdown-Checker ist ein Shell-Skript, das nach folgenden Intel/AMD/ARM und anderen CPUs sucht für Käfer:

  • CVE-2017-5753: Grenzen prüfen Bypass (Spectre Variante 1). Sie müssen Software und Kernel mit einem modifizierten Compiler neu kompilieren, der den LFENCE-Opcode an den richtigen Stellen im resultierenden Code einführt. Die Auswirkungen der Minderungsmaßnahmen auf die Leistung sind vernachlässigbar.
  • CVE-2017-5715: Branch Target Injektion (Spectre Variante 2). Die Auswirkungen der Minderung auf die Leistung hängen von Ihrer CPU ab.
  • CVE-2017-5754: Laden des Rogue Data Cache (Zusammenbruch). Sie müssen die aktualisierte Kernelversion mit PTI/KPTI-Patches installieren. Es genügt, den Kernel zu aktualisieren. Die Auswirkungen der Minderungsmaßnahmen auf die Leistung sind gering bis mittel.

spectre-meltdownn-checker.sh ist ein einfaches Shell-Skript, um herauszufinden, ob Ihr Linux-Kernel (Installation) anfällig für die 3 CVEs „spekulative Ausführung“ ist.

Installation

Das Skript muss ausgeführt werden als Wurzel Benutzer. Sie können den Quellcode unten sehen. Verwenden Sie die wget Befehl oder sich[Akk] kräuseln Befehl, um den Quellcode auf Ihrer Linux-Box zu erhalten:

$ cd /tmp/
$ wget https://raw.githubusercontent.com/speed47/spectre-meltdown-checker/master/spectre-meltdown-checker.sh

ODER

$ git clone https://github.com/speed47/spectre-meltdown-checker.git

Sample-Ausgänge

: Klonen in den „spectre-meltdown-checker“…..

Fernbedienung: Zählen von Objekten: 155, fertig.

Fernbedienung: Objekte komprimieren: 100% (20/20), fertig.

Fernbedienung: Gesamt 155 (Delta 18), wiederverwendet 21 (Delta 10), packwiederverwendet 125

Empfangen von Objekten: 100% (155/155), 49,78 KiB | 145,00 KiB/s, fertig.

Auflösen von Deltas: 100% (88/88), fertig.

Wie man Linux auf Spectre und Meltdown-Schwachstellen überprüft

Führen Sie das Skript als Root-Benutzer mit Hilfe von Sudo Befehl oder su Befehl:

$ sudo sh spectre-meltdown-checker.sh

Beispielausgaben von Ubuntu Linux Desktop:

Überprüfen Sie Linux auf Spectre und Meltdown-Schwachstellen.

 

Ein weiterer Output von meinem CentOS 7.x-Server, auf dem Meltdown/Spectre v1 mit Kernel gepatcht wurde:

$ sudo sh spectre-meltdown-checker.sh

Wie kann man die Intel Mikrocode-Firmware unter Linux installieren/aktualisieren?

Ein Mikrocode ist nichts anderes als eine von Intel oder AMD bereitgestellte CPU-Firmware. Der Linux-Kernel kann die Firmware der CPU ohne BIOS-Update beim Booten aktualisieren. Der Mikrocode des Prozessors wird im RAM gespeichert und der Kernel aktualisiert den Mikrocode bei jedem Start. Diese Mikrocode-Updates von Intel/AMD mussten Fehler beheben oder Errata anwenden, um CPU-Fehler zu vermeiden. Auf dieser Seite wird gezeigt, wie Sie AMD- oder Intel-Mikrocode-Updates mit Hilfe des Paketmanagers oder von Intel bereitgestellten Prozessor-Mikrocode-Updates unter Linux installieren.

So ermitteln Sie den aktuellen Status des Mikrocodes

Führen Sie den folgenden Befehl aus als Wurzel Benutzer:

# dmesg | grep microcode

Sample-Ausgänge:

den aktuellen Status des Mikrocodes abfragen

So installieren Sie die Intel Mikrocode-Firmware unter Linux mit einem Paketmanager

Das Tool zur Transformation und Bereitstellung von CPU-Mikrocode-Updates für x86/amd64 wird mit Linux geliefert. Die Vorgehensweise zur Installation der AMD- oder Intel-Mikrocode-Firmware unter Linux ist wie folgt:

  1. Öffnen Sie die Terminal-Applikation
  1. Debian/Ubuntu Linux Benutzertyp: sudo apt install intel-microcode
  1. CentOS/RHEL Linux Benutzertyp: sudo yum installieren microcode_ctl

Die Paketnamen lauten wie folgt für populäre Linux-Distributionen:

  • microcode_ctl und linux-firmware – CentOS/RHEL Mikrocode Update Paket
  • intel-microcode – Debian/Ubuntu und klont Mikrocode-Update-Paket für Intel CPUS
  • amd64-microcode – Debian/Ubuntu und klont Mikrocode-Firmware für AMD-CPUs
  • linux-firmware – Arch Linux Mikrocode-Firmware für AMD-CPUs (standardmäßig installiert und ohne Handlungsbedarf von Ihrer Seite)
  • intel-ucode – Arch Linux Mikrocode-Firmware für Intel CPUs
  • microcode_ctl, linux-firmware und ucode-intel – Suse/OpenSUSE Linux Mikrocode-Update-Paket für Linux

Warnung: In einigen Fällen kann das Mikrocode-Update Boot-Probleme verursachen, wie z.B. das Aufhängen des Servers oder das automatische Zurücksetzen zum Zeitpunkt des Bootvorgangs. Tun Sie dies auf eigene Gefahr.

Beispiele

Geben Sie Folgendes ein apt-Befehl/apt-get Befehl auf einer Debian/Ubuntu Linux für Intel CPU:

$ sudo apt-get install intel-microcode

Sample-Ausgänge:

Intel Microcode Update unter Linux installieren

 

Sie müssen die Box neu starten, um das Mikrocode-Update zu aktivieren:

$ sudo reboot

Überprüfen Sie dies nach dem Neustart:

# dmesg | grep 'microcode'

Wenn Sie RHEL/CentOS verwenden, versuchen Sie, die folgenden beiden Pakete mit dem Befehl yum zu installieren oder zu aktualisieren:

$ sudo yum install linux-firmware microcode_ctl
$ sudo reboot
$ sudo dmesg | grep 'microcode'

Wie kann man den von der Intel-Seite heruntergeladenen Mikrocode aktualisieren/installieren?

Verwenden Sie die folgende Methode nur, wenn Ihr Anbieter dies empfiehlt, ansonsten halten Sie sich wie oben beschrieben an Linux-Pakete. Die meisten Linux-Distro-Betreuer aktualisieren den Mikrocode über den Paketmanager. Die Methode des Paketmanagers ist sicher, da sie von vielen Benutzern getestet wurde.

Wie installiert man Intel Prozessor Mikrocode-Blob für Linux (Version 20180108)?

Besuchen Sie die AMD- oder Intel-Website, um die neueste Mikrocode-Firmware zu erhalten. Zuerst extrahieren Sie es mit dem Befehl tar:

$ mkdir firmware
$ cd firmware
$ tar xvf ~/path/to/file/microcode-20180108.tgz
$ ls –l

Sample-Ausgänge:

ls Ausgang

Stellen Sie sicher, dass /sys/devices/system/cpu/microcode/reload exits:

$ ls -l /sys/devices/system/cpu/microcode/reload

Sie müssen alle Dateien von intel-ucode nach /lib/firmware/intel-ucode/ mit dem Befehl cp kopieren:

$ sudo cp -v intel-ucode/* /lib/firmware/intel-ucode/

Du hast gerade das intel-ucode Verzeichnis nach /lib/firmware/ kopiert. Schreiben Sie die Reload-Schnittstelle auf 1, um die Mikrocode-Dateien neu zu laden:

# echo 1 > /sys/devices/system/cpu/microcode/reload

Aktualisieren Sie ein bestehendes initramfs, so dass es beim nächsten Mal über den Kernel geladen wird:

$ sudo update-initramfs -u
$ sudo reboot

Überprüfen, ob der Mikrocode beim Booten aktualisiert oder per Echo-Befehl neu geladen wurde:

# dmesg | grep microcode

Das ist alles. Sie haben gerade die Firmware für Ihre Intel CPU aktualisiert.

Das könnte Dich auch interessieren …