GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Spectre- und Meltdown-CPU-Schwachstellentest und Microcode-Update unter Linux



Einführung in Spectre- und Meltdown-CPU-Schwachstellen

Eine Möglichkeit, diese Angriffe zu blockieren, besteht darin, die Speichercaches zu bestimmten Zeiten zu leeren und exfiltrierte Informationen zu eliminieren, 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 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 das Leeren der Speicher-Caches wertvolle Produktionszeit verkürzt.

Angriffe, die die spekulative Ausführung verwenden, beinhalten, den Prozessor zu überzeugen, auf einer Route zu spekulieren, der die nicht spekulative Ausführung nicht folgen wird. Beispielsweise kann eine Kernel-Funktion eine Begrenzungsprüfung enthalten, die verhindert, dass der Code über das Ende eines Arrays hinaus zugreift, wodurch ein Fehler zurückgegeben wird. Ein Angriff, der die Spectre-Schwachstelle nutzt, überspringt diese Prüfung auf spekulative Weise und greift auf Daten zu, für die der Code speziell geschrieben wurde, um darauf nicht zuzugreifen. Die Fehlermeldung ist ein Hinweis darauf, dass vielleicht etwas Unangemessenes passiert, aber bis dahin ist der Schaden bereits angerichtet.

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

Spectre &Meltdown Checker ist ein Shell-Skript, das die folgenden Intel/AMD/ARM- und andere CPUs auf Fehler überprüft:

  • CVE-2017-5753:Begrenzungsprüfung umgehen (Spectre Variante 1). Sie müssen Software und Kernel mit einem modifizierten Compiler neu kompilieren, der den LFENCE-Opcode an den richtigen Positionen in den resultierenden Code einfügt. Die Auswirkung der Minderung auf die Leistung ist vernachlässigbar.
  • CVE-2017-5715:Verzweigungszielinjektion (Spectre Variante 2). Die Auswirkung der Minderung auf die Leistung hängt von Ihrer CPU ab.
  • CVE-2017-5754:Rogue Data Cache Load (Meltdown). Sie müssen eine aktualisierte Kernel-Version mit PTI/KPTI-Patches installieren. Es reicht, den Kernel zu aktualisieren. Die Auswirkung der Minderung auf die Leistung ist gering bis mittel.

spectre-meltdown-checker.sh ist ein einfaches Shell-Skript, um herauszufinden, ob Ihr Linux-Kernel (Installation) gegen die 3 „spekulative Ausführung“-CVEs verwundbar ist.

Installation

Das Skript muss als root ausgeführt werden Benutzer. Sie können den Quellcode unten anzeigen. Verwenden Sie den Befehl wget oder curl, um den Quellcode auf Ihrer Linux-Box abzurufen:

$ 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

Beispielausgaben:

Klonen in 'spectre-meltdown-checker'...

remote:Objekte zählen:155, fertig.

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

Remote:Insgesamt 155 (Delta 18), wiederverwendet 21 (Delta 10), paket-wiederverwendet 125

Objekte empfangen:100 % (155/155), 49,78 KiB | 145,00 KiB/s, fertig.

Auflösung von Deltas:100 % (88/88), erledigt.

So überprüfen Sie Linux auf Spectre- und Meltdown-Schwachstellen

Führen Sie das Skript als Root-Benutzer mit dem Befehl sudo oder su aus:

$ sudo sh spectre-meltdown-checker.sh

Beispielausgaben vom Ubuntu-Linux-Desktop:

Eine weitere Ausgabe von meinem CentOS 7.x-Server, auf dem Meltdown/Spectre v1 mit Kernel gepatcht wurde:

$ sudo sh spectre-meltdown-checker.sh

Wie installiere/aktualisiere ich die Intel Microcode-Firmware unter Linux?

Ein Mikrocode ist nichts anderes als CPU-Firmware, die von Intel oder AMD bereitgestellt wird. Der Linux-Kernel kann die CPU-Firmware ohne das 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 wurden benötigt, um Fehler zu beheben oder Errata anzuwenden, um CPU-Fehler zu vermeiden. Auf dieser Seite wird gezeigt, wie Sie AMD- oder Intel-Microcode-Updates mithilfe des Paketmanagers oder Prozessor-Microcode-Updates installieren, die von Intel unter Linux bereitgestellt werden.

So finden Sie den aktuellen Status des Microcodes heraus

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

# dmesg | grep microcode

Beispielausgaben:


So installieren Sie Intel Microcode-Firmware unter Linux mit einem Paketmanager

Das Tool zum Transformieren und Bereitstellen des CPU-Mikrocode-Updates für x86/amd64 wird mit Linux geliefert. Gehen Sie wie folgt vor, um AMD- oder Intel-Microcode-Firmware unter Linux zu installieren:

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

Die Paketnamen für gängige Linux-Distributionen lauten wie folgt:

  • microcode_ctl und Linux-Firmware – CentOS/RHEL-Mikrocode-Aktualisierungspaket
  • intel-microcode – Debian/Ubuntu und Klon-Microcode-Aktualisierungspaket für Intel-CPUs
  • amd64-microcode – Debian/Ubuntu und klont Mikrocode-Firmware für AMD-CPUs
  • linux-firmware – Arch-Linux-Microcode-Firmware für AMD-CPUs (standardmäßig installiert, es ist keine Aktion Ihrerseits erforderlich)
  • intel-ucode – Arch-Linux-Microcode-Firmware für Intel-CPUs
  • microcode_ctl, linux-firmware und ucode-intel – Suse/OpenSUSE-Linux-Microcode-Aktualisierungspaket

Warnung:In einigen Fällen kann das Mikrocode-Update zu Startproblemen führen, z. B. dass der Server beim Booten hängen bleibt oder automatisch zurückgesetzt wird. Tun Sie es auf eigene Gefahr.

Beispiele

Geben Sie den folgenden apt-Befehl/apt-get-Befehl ein auf einem Debian/Ubuntu Linux für Intel-CPU:

$ sudo apt-get install intel-microcode

Beispielausgaben:



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

$ sudo reboot

Überprüfen Sie es nach dem Neustart:

# dmesg | grep 'microcode'

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

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

Wie aktualisiere/installiere ich den von der Intel-Site heruntergeladenen Mikrocode?

Verwenden Sie die folgende Methode nur, wenn dies von Ihrem Anbieter empfohlen wird, andernfalls bleiben Sie wie oben beschrieben bei Linux-Paketen. Die meisten Betreuer von Linux-Distributionen aktualisieren den Mikrocode über den Paketmanager. Die Paketmanagermethode ist sicher, wie von vielen Benutzern getestet wurde.

Wie installiere ich Intel-Prozessor-Microcode-Blob für Linux (Release 20180108)?

Besuchen Sie die AMD- oder Intel-Website, um die neueste Microcode-Firmware zu erhalten. Extrahieren Sie es zuerst mit dem tar-Befehl:

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

Beispielausgaben:

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

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

Sie müssen alle Dateien von intel-ucode nach /lib/firmware/intel-ucode/ kopieren, indem Sie den cp-Befehl verwenden:

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

Sie haben gerade das Intel-ucode-Verzeichnis nach /lib/firmware/ kopiert. Schreiben Sie die Reload-Schnittstelle auf 1, um die Microcode-Dateien neu zu laden:

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

Aktualisieren Sie ein vorhandenes initramfs, sodass es das nächste Mal über den Kernel geladen wird:

$ sudo update-initramfs -u
$ sudo reboot

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

# dmesg | grep microcode

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


Linux
  1. So installieren und testen Sie Ansible unter Linux

  2. Linux – Unterschied zwischen User Space und Kernel Space?

  3. Linux-Kernel wird nicht auf 2.35.25 aktualisiert?

  4. Einführung in Linux-Interrupts und CPU-SMP-Affinität

  5. Wie können die Schwachstellen Spectre und Meltdown auf Linux-Systemen gemindert werden?

CPU Power Manager – Steuerung und Verwaltung der CPU-Frequenz unter Linux

Installieren Sie Linux Kernel 4.15 in RPM- und DEB-basierten Systemen

Wie wir Linux Test Project verwenden, um Linux zu testen und zu verbessern

So aktualisieren Sie Manjaro und andere Arch-basierte Linux-Distributionen

Wie wende ich Linux-Kernel-Sicherheitspatches an? Manuell und automatisch ohne Neustart?

Einführung in die Linux-Leistungsüberwachung und -optimierung