it-swarm.com.de

Wie überprüfe ich, ob KPTI unter Linux aktiviert ist?

Die Meltdown Attack FAQ besagt, dass KPTI das Update für Linux ist. Wie überprüfe ich, ob KPTI ausgeführt/aktiviert wird?

25
Shelvacu

Dinge, die den Status von KPTI anzeigen:

  • In Standardkerneln bedeuten die Zeichenfolgen Kernel/User page tables isolation: enabled Oder Kernel/User page tables isolation: force enabled on command line In der Ausgabe dmesg, dass der Kernel eine Kernel-Seitentabellenisolation durchführt. Die letztere Nachricht bedeutet außerdem, dass der Kernel der Meinung ist, dass für diese CPU keine Seitentabellenisolation erforderlich ist.

  • In einigen vom Hersteller gepatchten Kerneln (hauptsächlich RedHat und Derivate): ein Wert ungleich Null in /sys/kernel/debug/x86/pti_enabled. Das Abwesenheit dieser Datei bedeutet jedoch nichts: Der Standardkernel stellt es nicht zur Verfügung.

  • In Kernel 4.14.18 oder neuer und den entsprechenden Versionen der LTS-Kernel zeigt der Inhalt von /sys/devices/system/cpu/vulnerabilities/meltdown: Eine Zeile, die mit Mitigation: Beginnt, an, dass eine Schadensbegrenzung (KPTI, Mikrocode oder etwas anderes) vorliegt An Ort und Stelle zeigt eine Zeile, die mit Not affected beginnt, an, dass die CPU von dem Problem nicht betroffen ist, und eine Zeile, die mit Vulnerable beginnt, zeigt an, dass die CPU als anfällig angesehen wird, aber nein oder Eine unzureichende Minderung ist vorhanden.

Dinge, die nicht den Status von KPTI anzeigen:

  • Kernelversion. Kernel 4.14.11 und neuer sowie die entsprechenden Versionen der LTS-Kernel 4.1, 4,4 und 4.9 sind fähig von KPTI, können jedoch mit deaktivierter Kompilierung kompiliert und bei deaktiviert werden Startzeit. Darüber hinaus 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 zeigt an, dass if der Kernel für die Seitentabellenisolierung kompiliert wurde und if Seitentabellenisolierung zum Start oder zur Laufzeit nicht deaktiviert wurde, dann Seite -Tabellenisolation wird verwendet. Außerdem zeigt nicht an, dass eine CPU für den Meltdown-Angriff anfällig ist: Der 4.14.11-Kernel legt sie für alle x86-CPUs fest, während der 4.14.12-Kernel sie für alle Nicht-AMD-CPUs festlegt. sogar solche wie der Pentium MMX oder der "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, die Seitentabelle des Kernels zu isolieren. KPTI kann beim Booten über die Kernel-Befehlszeile über die Optionen nopti oder pti=off Deaktiviert werden. Auf einigen Systemen kann es zur Laufzeit deaktiviert werden, indem 0 In /sys/kernel/debug/x86/pti_enabled Geschrieben wird.

10
Mark

Der Linux-Kernel protokolliert den KPTI-Status beim Booten. Wenn Sie also den folgenden Befehl ausführen, wird der Status auf gepatchten Kerneln gedruckt. Wenn dann nichts gedruckt wird, ist KPTI deaktiviert.

dmesg -wH | grep 'Kernel/User page tables isolation'

Linux Kernel 4.15rc6 hat KPTI (Kernel Page-Table Isolation) aktiviert und war zurückportiert auf Linux Kernel 4.14.11 , 4.9.74, 4.4.109, 3.16.52 und 3.2.97 .

Wenn Sie also eine dieser Versionen ausführen, ist KPTI vorhanden. Die meisten Distributionen (auf denen eine beliebige Linux-Kernel-Version ausgeführt wird) senden innerhalb von ein oder zwei Tagen ein Update auf den Linux-Kernel, um Meltdown und Spectre zu beheben.

Hinweis: Fügen Sie den Parameter pti=off zum GRUB, um den KPTI zu deaktivieren. Für Informationen: https://askubuntu.com/questions/19486/how-do-i-add-a- Kernel-Boot-Parameter

17
Aadhil RF

Auf einem unterstützten Kernel:

dmesg | grep 'Isolierung von Kernel-/Benutzerseitentabellen'

wird entweder aktiviert oder deaktiviert.

Wenn kein Ergebnis vorliegt, unterstützt der Kernel KPTI nicht.

8
foxer

Überprüfen Sie die dmesg-Ausgabe wie dmesg | grep isolation, Um festzustellen, ob sie für Ihren laufenden Computer aktiviert ist.

Einige weitere Details werden hier erwähnt: https://lwn.net/Articles/741878/

  • Es wird eine nopti-Befehlszeilenoption geben, um diesen Mechanismus beim Booten zu deaktivieren.
  • Es gibt die Kerneloption PAGE_TABLE_ISOLATION, die die KPTI-Patches aktiviert. Wenn CONFIG_IKCONFIG aktiviert ist, können Sie mit zcat /proc/config.gz | grep CONFIG_PAGE_TABLE_ISOLATION=y Nach dem laufenden Kernel suchen.
  • Es gibt ein Feature-Flag X86_BUG_CPU_INSECURE, und wenn bekannt ist, dass die CPU nicht betroffen ist, wird die Seitentabellenisolation deaktiviert.
3
S. Huber

Suchen Sie in der Ausgabe dmesg nach einer Zeile mit Kernel/User page tables isolation. Da der Anfang des Kernel-Ringpuffers möglicherweise nicht mehr vorhanden ist, besteht eine andere Möglichkeit darin, in /var/log/kern.log (Oder einer seiner gedrehten Versionen oder einer anderen Protokolldatei) nach derselben Zeichenfolge zu suchen.

Beachten Sie auch, dass Xen-Gäste möglicherweise keine solche Leitung haben. Dies ist beispielsweise der Fall silent_disable In Arch/x86/mm/kaiser.c Des Debian/Stretch-Kernels (4.9.65-3 + deb9u2):

void __init kaiser_check_boottime_disable(void)
{
[...]
        if (boot_cpu_has(X86_FEATURE_XENPV))
                goto silent_disable;
[...]
disable:
        pr_info("disabled\n");

silent_disable:
        kaiser_enabled = 0;
        setup_clear_cpu_cap(X86_FEATURE_KAISER);
}
3
vinc17

Ich bin auch besorgt über die Auswirkungen des Meltdown-Patches auf die Leistung. Wir führen den größten Teil der Workload unter Amazon Linux unter EC2 aus.

Ich habe festgestellt, dass das neueste Kernel-Update (Build 03 Jan 2018) - 4.9.70-25.242 enthält alle Upstream-Meltdown-Patches (siehe rpm -q --changelog kernel).

Standardmäßig aktiviert der Amazon Linux-Kernel 4.9.70-25.242 und höher die Seitentabellenisolation (CONFIG_PAGE_TABLE_ISOLATION=y) Ich gehe davon aus, dass KPTI aktiviert ist, solange dieses Flag y ist. Ich habe jedoch keinen Leistungsunterschiedsvergleich durchgeführt (dies sollte auffallen).

2
Terry Wang