Deaktivieren der Seitentabellen-Isolation, um die aufgrund des Intel-Sicherheitslücken-Patch verlorene Leistung wiederherzustellen

43

Aufgrund der aktuellen Sicherheitslücke in Bezug auf die Intel-CPU wird ein Patch erwartet, der die Systemleistung beeinträchtigt.

Wie kann ich sicherstellen, dass dieser Patch nicht auf meinem Ubuntu-System installiert wird?

mahrens61
quelle
49
Sie können die Systemleistung noch weiter steigern, indem Sie verschiedene andere Sicherheitsmechanismen deaktivieren. Nein, das ist keine Empfehlung.
Scai
11
Wenn Ihnen die Leistung wichtig ist, empfehle ich, den aktuellen Kandidaten für die Kernel-Version selbst zu erstellen und den Leistungsverlust für Ihre Workload zu testen. Möglicherweise ist der Overhead vernachlässigbar oder tolerierbar.
Jeffrey Bosboom
5
Ich kann nicht übertreiben, wie schrecklich diese Idee ist.
Alexander
13
Ich werde widersprechen. Persönlich würde ich nicht raten, Sicherheitsfunktionen zu deaktivieren, aber für Benutzer, die einen Leistungseinbruch bemerken, kann die Deaktivierung von pti eine vernünftige Option sein, wenn man bedenkt, wie schwierig es sein kann, einen Angriff auf diese bestimmte Sicherheitslücke und den Wert des Zielcomputers / der Zieldaten zu nutzen. Die Frage ist, wie man diese Option deaktiviert, sollte ich diese Option nicht deaktivieren.
Panther
2
Ich stimme zu, PTI ist ein Sicherheitsmerkmal, das nicht zu vernachlässigende Kosten verursachen kann. Es liegt an OP, zu entscheiden, ob es für sie richtig ist und nicht im Rahmen dieser Frage liegt.
Jake

Antworten:

55

Der Patch (auch "Page Table Isolation" genannt) ist Teil eines normalen Kernel-Updates (das Sie erhalten, wenn Sie Ihr System aktualisieren). Es wird jedoch dringend empfohlen, den Kernel auf dem neuesten Stand zu halten, da er auch viele andere Sicherheitskorrekturen enthält. Daher würde ich nicht empfehlen, nur einen veralteten Kernel ohne das Update zu verwenden.

Sie können den Patch jedoch effektiv deaktivieren, indem Sie ihn zu Ihrer Kernel-Befehlszeile ( Howto ) hinzufügen pti=off( Kernel-Patch mit dieser Option und weiteren Informationen ). Beachten Sie, dass dies zu einem weniger sicheren System führt.

Es gibt weitere Informationen und Performance - Tests mit PTI aktiviert und deaktiviert auf der PostgreSQL - Mailingliste - TLDR ist , dass es eine zwischen 10 und 30% Leistung auswirkt (Für ProstgreSQL, das sind - andere Dinge wie Spiele werden wahrscheinlich weniger Auswirkungen sehen) .

Beachten Sie, dass dies nur Intel-Prozessoren betrifft, da AMD anscheinend nicht betroffen ist ( reddit ). Daher ist dies auf AMD vorhersehbar standardmäßig deaktiviert.

JonasCz - Setzen Sie Monica wieder ein
quelle
2
msgstr "... dies ist bei AMD absehbar standardmäßig deaktiviert." Bedeutet das, dass es eine zusätzliche Kernel-Version für Ubuntu-Betriebssysteme geben wird, die auf Computern mit einer von Canonical bereitgestellten AMD-CPU ausgeführt werden? :)
Cl-Netbox
16
Nein, der Kernel erkennt (beim Booten), ob er auf einer AMD-CPU ausgeführt wird, und deaktiviert den Fix, falls dies der Fall ist. @ Cl-Netbox
JonasCz - wieder Monica
1
Laut theregister.co.uk/2018/01/04/intel_amd_arm_cpu_vulnerability sind AMD-Chips von mindestens einer Vielzahl von Spectre-Angriffen (Branch Target Injection) betroffen, sodass sie diese Woche ein wahrscheinlich leistungsbeeinträchtigendes Kernel-Update erhalten. Auch, obwohl sie nicht dem eigentlichen Meltdown unterliegen.
Dave Sherohman
1
Anscheinend ist diese Funktion in der x64-Architektur, aber nicht in i386 / IA-32 enthalten. Aus diesem Grund wirkt sich der Patch auch nicht auf 32-Bit-Linux aus (security / Kconfig erfordert X86_64, um PAGE_TABLE_ISOLATION zu aktivieren). das bringt jedoch eine andere Frage. Was ist mit x64-Rechnern, auf denen ein 32-Bit-Linux installiert ist? Können diese davon betroffen sein? Wenn ja, was ist mit alten x64-Maschinen, die vom BIOS auf die Ausführung von 32-Bit-Anweisungen beschränkt sind (wie alte atombasierte Netbooks)? Sitzen sie Enten?
thePiGrepper
2
Bis ich mit Sicherheit erfuhr, dass es einen JavaScript-basierten Angriff gab, wollte ich diesen verwenden.
Joshua
35

Update: Das Problem wurde mit zwei Monikern versehen: Meltdown und Spectre . Ich habe die Antwort mit den neuen Informationen aktualisiert.

Es wird zunächst ein Kernel-Patch sein. Es wird als höhere Version angezeigt. Es wird installiert, weil Sie linux-image-genericinstalliert haben. Dafür ist dieses Paket gedacht. Sie könnten also entfernen linux-image-generic. Es ist eine schreckliche, katastrophale Idee, die Sie allen Arten von Gemeinheiten aussetzen wird, aber Sie könnten es tun. Dort kann auch die CPU - Mikro sein , die folgt , in linux-firmwareeine in-CPU fix. Das liegt wirklich an Intel.

Die Methode, mit der Sie dieses Problem beheben, ist irrelevant. Sie möchten etwas umgehen, bei dem Sie weder die tatsächlichen Auswirkungen des Fehlers noch die Leistungskosten für die Behebung kennen.

  • Der Bug ist böse. Die gemeldeten CVEs sind prozessübergreifende Speicherlesevorgänge. Jeder Prozess, der den Speicher eines anderen Prozesses lesen kann. Eingabe, Passwörter, die ganze Menge. Dies hat wahrscheinlich auch Auswirkungen auf Sandkästen. Es ist noch sehr früh und ich erwarte, dass die Leute dies weiter vorantreiben, sowohl in Bezug auf die Wirkung als auch auf den Zugang.

  • Der Leistungseinbruch ist wahrscheinlich nicht so groß, wie Sie befürchten. Die Zahlen, die die Leute herumwerfen, konzentrieren sich auf die theoretische Leistung des Subsystems oder den schlimmsten Fall. Eine schlecht zwischengespeicherte Datenbank wird am härtesten getroffen. Spiele und alltägliche Dinge werden sich wahrscheinlich nicht messbar ändern.

Sogar jetzt können wir sehen, was der eigentliche Fehler ist, es ist viel zu früh zu sagen, wie sich das auswirkt. Während freier Lesezugriff auf RAM schlecht ist, gibt es schlimmere Dinge da draußen. Ich würde auch testen, um zu sehen, inwieweit sich die Korrektur auf Sie auswirkt (mit den Dingen, die Sie tun).

Beginnen Sie noch nicht damit, Ihre GRUB-Konfiguration mit Flags vorzuladen oder Kernel-Metapakete zu entfernen.

Oli
quelle
7
Alles, was Sie tun müssen, ist das Hinzufügen pti=offzur Kernel-Befehlszeile (in GRUB), um den Patch zu deaktivieren.
JonasCz - Wiedereinsetzung von Monica
3
@ JonasCz dieser Kommentar - wenn er wahr ist, weiß ich nicht - klingt so, als wäre er eine separate Antwort wert, besonders wenn Sie ihn mit einem Verweis sichern können.
Byte Commander
IMHO nopti ist eine bessere Wahl
Panther
3
@Oli Ich bin mit diesem Rat einverstanden und habe ihn mir woanders gegeben. Vor diesem Hintergrund stellt sich die Frage, wie diese neue Sicherheitsfunktion bei Bedarf deaktiviert werden kann, und IMO, nopti ist die Option, dies zu tun.
Panther
1
Ja, es hat einige meiner Systemaktivitäten bei Verwendung virtueller Maschinen um 99% verlangsamt. Das Kopieren von Dateien vom Host auf die virtuelle Maschine dauert 2-3 Sekunden, jetzt dauert es über eine Minute.
rboy
14

Obwohl ich dies nicht empfehle, ist es möglich, PTI zu deaktivieren

mit dem Befehlszeilenparameter nopti kernel

nach Phoronix .

Hängen Sie dazu noptian die Zeichenfolge neben der Zeile an, die mit GRUB_CMDLINE_LINUX_DEFAULTin beginnt /etc/default/grubund dann ausgeführt wird

sudo update-grub

gefolgt von einem Neustart.

Weitere Informationen zu Kernel-Boot-Parametern zum Deaktivieren von leistungsrelevanten Sicherheitsfunktionen finden Sie unter: Spectre & Meltdown MitigationControls in Ubuntu Wiki

nixpower
quelle
1
Was ist der Unterschied zwischen nopti und pti = off ?
Niutech
@niutech gibt es keinen Unterschied, zum Beweis können Sie hier
Nixpower
3

Einfachster Weg: Deaktivieren Sie in der Kernel-Konfiguration

-> Sicherheitsoptionen

[] Entfernen Sie die Kernelzuordnung im Benutzermodus

Kompilieren Sie dann den neuen Kernel

Krzysztof Sk
quelle
1
Willkommen bei Ask Ubuntu! In der jetzigen Form ist Ihre Antwort nicht so gut wie sie sein könnte. Könnten Sie überprüfen, wie man eine gute Antwort schreibt , und einen Style-Leitfaden für Fragen und Antworten . - Aus der Bewertung
J. Starnes
2
Leider hat J. Starnes recht. Sie kompilieren Ihren eigenen Kernel nicht mehr, außer als äußerster letzter Ausweg.
Joshua
Das ist eine ziemlich triviale Änderung der Kernel-Optionen, aber IMO noptiist wahrscheinlich die bessere / einfachere Wahl für die meisten.
Panther