El kernel de Linux registra el estado de KPTI en el arranque, por lo que ejecutar el siguiente comando imprimiría el estado en los kernels parcheados. Si no imprime nada, KPTI está deshabilitado.
dmesg -wH | grep 'Kernel/User page tables isolation'
Linux Kernel 4.15rc6 ha habilitado KPTI (aislamiento de tabla de páginas de Kernel) y se ha vuelto a trasladar a Linux Kernel 4.14.11, 4.9.74, 4.4.109, 3.16.52 y 3.2.97.
Entonces, si está ejecutando alguna de estas versiones, KPTI está en su lugar. La mayoría de las distribuciones (que ejecutan cualquier versión del kernel de Linux) enviarán una actualización al kernel de Linux dentro de uno o dos días para arreglar Meltdown y Spectre.
Nota:Agregue el parámetro pti=off
al GRUB para deshabilitar el KPTI. Para información:https://askubuntu.com/questions/19486/how-do-i-add-a-kernel-boot-parameter
Cosas que indican el estado de KPTI:
-
En los núcleos estándar, las cadenas
Kernel/User page tables isolation: enabled
oKernel/User page tables isolation: force enabled on command line
en eldmesg
la salida significa que el kernel está realizando el aislamiento de la tabla de páginas del kernel. El último mensaje también significa que el kernel cree que el aislamiento de la tabla de páginas no es necesario para esta CPU. -
En algunos núcleos parcheados por proveedores (principalmente RedHat y derivados):un valor distinto de cero en
/sys/kernel/debug/x86/pti_enabled
. La ausencia de este archivo no significa nada, sin embargo:el núcleo estándar no lo proporciona. -
En el kernel 4.14.18 o posterior y las versiones correspondientes de los kernels LTS, el contenido de
/sys/devices/system/cpu/vulnerabilities/meltdown
:una línea que comienza conMitigation:
indica que existe una mitigación (KPTI, microcódigo u otra cosa), una línea que comienza conNot affected
indica que se cree que la CPU no se ve afectada por el problema y una línea que comienza conVulnerable
indica que se cree que la CPU es vulnerable, pero no se ha implementado una mitigación o esta es insuficiente.
Cosas que no indican el estado de KPTI:
-
Versión del núcleo. Kernel 4.14.11 y posteriores, y las versiones correspondientes de los kernels 4.1, 4,4 y 4.9 LTS son compatibles de KPTI, pero se pueden compilar con él deshabilitado y se puede deshabilitar en el momento del arranque. Además, las versiones anteriores a estas no están automáticamente en riesgo:algunas distribuciones han retrotraído los parches KPTI a kernels más antiguos.
-
bugs : cpu_insecure
en/proc/cpuinfo
. La presencia de esto indica que si el kernel se compila para el aislamiento de la tabla de páginas y if el aislamiento de la tabla de páginas no se ha deshabilitado en el momento del arranque o en el tiempo de ejecución, entonces se usará el aislamiento de la tabla de páginas. Además, no indican que una CPU es vulnerable al ataque Meltdown:el kernel 4.14.11 lo configura para todas las CPU x86, mientras que el kernel 4.14.12 lo configura para todas las CPU que no son AMD, incluso algunas como Pentium MMX o "Bonnell" Atom CPU que no son vulnerables. -
CONFIG_PAGE_TABLE_ISOLATION=y
en la configuración del núcleo. Esto solo indica que el núcleo es capaz de aislar la tabla de páginas del núcleo. KPTI se puede deshabilitar en el momento del arranque desde la línea de comando del kernel a través delnopti
opti=off
opciones En algunos sistemas, se puede deshabilitar en tiempo de ejecución escribiendo0
a/sys/kernel/debug/x86/pti_enabled
.
En un núcleo compatible:
dmesg | grep 'Aislamiento de tablas de páginas de kernel/usuario'
resultará en habilitado o deshabilitado.
Si no hay ningún resultado, entonces el kernel no tiene soporte para KPTI.