Sie haben wahrscheinlich schon von Meltdown gehört und Spectre-Schwachstellen das betraf viele moderne Prozessoren, darunter bestimmte Prozessoren von Intel, AMD, System Z, Power und ARM. Glücklicherweise haben die Kernel-Entwickler Sicherheitspatches veröffentlicht, um die Meltdown/Spectre-Probleme zu beheben. In den neueren Kernel-Versionen sind die Patches standardmäßig implementiert. Obwohl die Sicherheitspatches dazu beitragen, die Schwachstellen zu mindern, haben sie auch die Leistung des Systems beeinträchtigt. Ja, die Minderungen führen zu Leistungseinbußen. Wenn Sie sicher sind, dass Ihre Systeme gut geschützt sind, und jedes Quäntchen Leistung, das Sie aus Ihrem persönlichen System herausholen können, wollen, ist dieser Leitfaden genau das Richtige für Sie. Diese kurze Anleitung erläutert, wie Sie Linux-Systeme schneller auf Intel-CPUs laufen lassen, indem Sie die Spectre- und Meltdown-Minderungen deaktivieren.
Ein Wort der Vorsicht
Bevor Sie die folgende Lösung implementieren, muss ich Sie warnen:DIES IST SEHR UNSICHER und NICHT EMPFOHLEN . Dadurch werden alle Spectre- und Meltdown-Schutzmaßnahmen auf Intel-CPUs deaktiviert und Ihre Linux-Systeme sind allen Sicherheitsrisiken ausgesetzt. Tun Sie dies nicht, es sei denn, Sie wissen genau, was Sie tun. Sie wurden gewarnt!
Wenn Ihnen die Sicherheit einfach egal ist, deaktivieren Sie die Schutzmaßnahmen wie unten beschrieben.
Linux-System schneller auf Intel-CPUs laufen lassen
Bearbeiten Sie Ihre GRUB-Datei mit Ihrem bevorzugten Texteditor.
Auf Debian , Ubuntu :
$ sudo nano /etc/default/grub
Wenn Sie die Linux-Kernel-Version 5.1.13 und höher verwenden, fügen Sie den folgenden Kernel-Parameter hinzu/bearbeiten Sie ihn wie folgt:
GRUB_CMDLINE_LINUX="mitigations=off"
Dadurch werden alle optionalen CPU-Minderungen deaktiviert. Dies verbessert die Systemleistung, kann Benutzer aber auch mehreren CPU-Schwachstellen aussetzen.
Wenn Sie ältere Kernel-Versionen als 5.1.13 verwenden, fügen/bearbeiten Sie stattdessen Folgendes hinzu:
GRUB_CMDLINE_LINUX="noibrs noibpb nopti nospectre_v2 nospectre_v1 l1tf=off nospec_store_bypass_disable no_stf_barrier mds=off tsx=on tsx_async_abort=off mitigations=off"
Kernel-Parameter zum Deaktivieren aller Spectre- und Meltdown-Minderungen
Dies sind die Kernel-Parameter, die Sie zum Deaktivieren aller Spectre/Meltdown-Minderungen verwenden können, die Ihr Linux-System verlangsamen.
Wissen, was jedes Flag tut:
- noibrs - Deaktivieren Sie die eingeschränkte Spekulation mit indirekter Verzweigung im Mikrocode.
- noibpb - Deaktivieren Sie indirekte Verzweigungsvorhersagebarrieren.
- nopti - Es ist dasselbe wie pti=off. Control Page Table Isolierung von Benutzer- und Kernel-Adressräumen. Durch das Deaktivieren dieser Funktion wird die Härtung entfernt, aber die Leistung von Systemaufrufen und Interrupts verbessert.
- nospectre_v2 – Deaktivieren Sie alle Gegenmaßnahmen für die Schwachstelle Spectre Variante 2 (indirekte Verzweigungsvorhersage). Das System kann mit dieser Option Datenlecks zulassen, was äquivalent zu spectre_v2=off ist.
- nospectre_v1 – Abschwächungen für Spectre Variante 1 deaktivieren (Umgehung der Begrenzungsprüfung). Mit dieser Option sind Datenlecks im System möglich.
- l1tf=off – Kontrollieren Sie die Minderung der L1TF-Schwachstelle auf betroffenen CPUs. Der Kernel-PTE-Inversionsschutz ist bedingungslos aktiviert und kann nicht deaktiviert werden. Deaktiviert Hypervisor-Minderungen und gibt keine Warnungen aus. Es senkt auch die Beschränkung der Auslagerungsgröße und des verfügbaren RAM-Limits sowohl auf Hypervisor als auch auf Bare Metal.
- nospec_store_bypass_disable – Deaktivieren Sie alle Schutzmaßnahmen für die Speculative Store Bypass-Schwachstelle.
- no_stf_barrier - Store-Forwarding-Barriere deaktivieren (nur PPC).
- mds=off - Kontrollieren Sie die Risikominderung für die Schwachstelle Micro-Architectural Data Sampling (MDS).
- tsx=on - Aktivieren Sie die TSX-Unterstützung (Transactional Synchronization Extensions) von Intel.
- tsx_async_abort=off – TAA (TSX Async Abort)-Minderung deaktivieren.
- mitigations=off - Deaktivieren Sie alle Schadensbegrenzungen.
Für weitere Details zu jeder Flagge führen Sie eine schnelle Google-Suche durch.
Aktualisieren Sie nach dem Hinzufügen der Kernel-Parameter die GRUB-Konfiguration mit folgendem Befehl:
$ sudo update-grub
Starten Sie abschließend das System neu:
$ sudo reboot
Auf RPM-basierten Systemen wie CentOS und RHEL , bearbeiten Sie /etc/sysconfig/grub Datei:
$ sudo /etc/sysconfig/grub
Fügen Sie die obigen Parameter in GRUB_CMDLINE_LINUX hinzu. Aktualisieren Sie dann die GRUB-Konfiguration mit dem Befehl:
$ sudo grub2-mkconfig
Abschließend neu starten:
$ sudo reboot
In einigen Linux-Systemen müssen Sie diese Kernel-Parameter möglicherweise in "GRUB_CMDLINE_LINUX_DEFAULT="..." hinzufügen .
Wir haben jetzt alle Spectre- und Meltdown-Minderungen deaktiviert. Dadurch wird die Leistung Ihres Systems ein wenig gesteigert, aber es kann Benutzer auch mehreren CPU-Schwachstellen aussetzen.
Überprüfen Sie, ob Spectre/Meltdown-Minderungen deaktiviert sind
Wir können "spectre-meltdown-checker" verwenden Tool, das Ihnen hilft, die Schwachstellen Spectre und Meltdown in Linux zu identifizieren. Es ist in den offiziellen Repositories einiger Linux-Distributionen verfügbar.
Unter Debian, Ubuntu:
$ sudo apt install spectre-meltdown-checker
Unter CentOS, RHEL:
$ sudo yum install epel-release
$ sudo yum install spectre-meltdown-checker
Auf Fedora:
$ sudo dnf install $ sudo apt install spectre-meltdown-checker
Führen Sie nach der Installation von spectre-meltdown-checker es als Root-Benutzer oder mit sudo-Berechtigungen aus, um zu prüfen, ob Spectre- und Meltdown-Mitigationen deaktiviert sind:
Sie sollten eine Nachricht wie die folgende sehen.
[...] > STATUS: VULNERABLE (Vulnerable: __user pointer sanitization and usercopy barriers only; no swapgs barriers) [...] > STATUS: VULNERABLE (IBRS+IBPB or retpoline+IBPB is needed to mitigate the vulnerability) [...] > STATUS: VULNERABLE (PTI is needed to mitigate the vulnerability)
Alternativ können Sie Spectre/Meltdown-Schwachstellen wie unten überprüfen.
$ ls /sys/devices/system/cpu/vulnerabilities/
Beispielausgabe:
itlb_multihit l1tf mds meltdown spec_store_bypass spectre_v1 spectre_v2 tsx_async_abort
Und..
$ grep . /sys/devices/system/cpu/vulnerabilities/*
Beispielausgabe:
/sys/devices/system/cpu/vulnerabilities/itlb_multihit:KVM: Vulnerable /sys/devices/system/cpu/vulnerabilities/l1tf:Mitigation: PTE Inversion /sys/devices/system/cpu/vulnerabilities/mds:Vulnerable; SMT Host state unknown /sys/devices/system/cpu/vulnerabilities/meltdown:Vulnerable /sys/devices/system/cpu/vulnerabilities/spec_store_bypass:Vulnerable /sys/devices/system/cpu/vulnerabilities/spectre_v1:Vulnerable: __user pointer sanitization and usercopy barriers only; no swapgs barriers /sys/devices/system/cpu/vulnerabilities/spectre_v2:Vulnerable, STIBP: disabled /sys/devices/system/cpu/vulnerabilities/tsx_async_abort:Not affected
Überprüfen Sie die Sicherheitslücken von Spectre und Meltdown
Führen Sie einige Benchmarks durch und prüfen Sie, wie viel Leistung Sie gewinnen werden, und entscheiden Sie dann, ob es sich lohnt, alles zu deaktivieren.
Wie ich bereits gewarnt habe, ist dieser Tipp eine nützliche und sinnvolle Option für Heim- oder Einzelplatzcomputer. Aber nicht für Produktionssysteme empfohlen.