Der Linux-Kernel protokolliert den KPTI-Status beim Booten, sodass das Ausführen des folgenden Befehls den Status auf gepatchten Kerneln drucken würde. Wenn es dann nichts druckt, ist KPTI deaktiviert.
dmesg -wH | grep 'Kernel/User page tables isolation'
Linux Kernel 4.15rc6 hat KPTI (Kernel Page-Table Isolation) aktiviert und wurde auf Linux Kernel 4.14.11, 4.9.74, 4.4.109, 3.16.52 und 3.2.97 zurückportiert.
Wenn Sie also eine dieser Versionen ausführen, ist KPTI vorhanden. Die meisten Distributionen (auf denen eine beliebige Linux-Kernel-Version ausgeführt wird) werden innerhalb von ein oder zwei Tagen ein Update auf den Linux-Kernel übertragen, um Meltdown und Spectre zu beheben.
Hinweis:Fügen Sie den Parameter pti=off
hinzu zum GRUB, um das KPTI zu deaktivieren. Für Informationen:https://askubuntu.com/questions/19486/how-do-i-add-a-kernel-boot-parameter
Dinge, die den Zustand von KPTI anzeigen:
-
In Standardkerneln sind die Zeichenfolgen
Kernel/User page tables isolation: enabled
oderKernel/User page tables isolation: force enabled on command line
imdmesg
output bedeutet, dass der Kernel eine Kernelseitentabellenisolation durchführt. Die letztgenannte Meldung bedeutet außerdem, dass der Kernel denkt, dass eine Pagetable-Isolation für diese CPU nicht erforderlich ist. -
In einigen vom Hersteller gepatchten Kerneln (hauptsächlich RedHat und Derivate):ein Wert ungleich Null in
/sys/kernel/debug/x86/pti_enabled
. Die Abwesenheit dieser Datei hat jedoch keine Bedeutung:der Standard-Kernel stellt sie nicht zur Verfügung. -
In Kernel 4.14.18 oder neuer und den entsprechenden Versionen des LTS-Kernels ist der Inhalt von
/sys/devices/system/cpu/vulnerabilities/meltdown
:eine Zeile, die mitMitigation:
beginnt gibt an, dass eine Mitigation (KPTI, Mikrocode oder etwas anderes) vorhanden ist, eine Zeile, die mitNot affected
beginnt gibt an, dass die CPU vermutlich nicht von dem Problem betroffen ist, und eine Zeile, die mitVulnerable
beginnt gibt an, dass die CPU vermutlich anfällig ist, aber keine oder eine unzureichende Schutzmaßnahme vorhanden ist.
Dinge, die den Zustand von KPTI nicht anzeigen:
-
Kernelversion. Kernel 4.14.11 und neuer sowie die entsprechenden Versionen der 4.1-, 4,4- und 4.9-LTS-Kernel sind fähig von KPTI, aber sie können mit deaktiviertem kompiliert werden, und es kann beim Booten deaktiviert werden. Außerdem sind ältere Versionen nicht automatisch gefährdet:Einige Distributionen haben die KPTI-Patches auf ältere Kernel zurückportiert.
-
bugs : cpu_insecure
in/proc/cpuinfo
. Das Vorhandensein von diesem zeigt an, dass if der Kernel ist für die Isolierung von Seitentabellen kompiliert, und if Die Seitentabellenisolation wurde beim Booten oder zur Laufzeit nicht deaktiviert, dann wird die Seitentabellenisolation verwendet. Außerdem nicht zeigen an, dass eine CPU für den Meltdown-Angriff anfällig ist:Der 4.14.11-Kernel legt es für alle x86-CPUs fest, während der 4.14.12-Kernel es für alle Nicht-AMD-CPUs festlegt, sogar solche wie den Pentium MMX oder den "Bonnell" Atom CPUs, die nicht anfällig sind. -
CONFIG_PAGE_TABLE_ISOLATION=y
in der Kernelkonfiguration. Dies zeigt nur an, dass der Kernel in der Lage ist, Kernel-Seitentabellen zu isolieren. KPTI kann beim Booten von der Kernel-Befehlszeile durchnopti
deaktiviert werden oderpti=off
Optionen. Auf einigen Systemen kann es zur Laufzeit durch Schreiben von0
deaktiviert werden bis/sys/kernel/debug/x86/pti_enabled
.
Auf einem unterstützten Kernel:
dmesg | grep 'Kernel-/Benutzerseitentabellen-Isolierung'
ergibt entweder aktiviert oder deaktiviert.
Wenn es kein Ergebnis gibt, unterstützt der Kernel KPTI nicht.