La vulnerabilidad actual del procesador Meltdown Intel se soluciona actualmente al habilitar el aislamiento de la tabla de páginas. Hay una pregunta sobre cómo desactivar esto: ¿Cómo deshabilitar el aislamiento de la tabla de páginas para recuperar el rendimiento perdido debido al parche de seguridad de la CPU Intel?
Mi pregunta es opuesta: ¿hay alguna forma de verificar en un sistema en ejecución si el mecanismo PTI es efectivo en el sistema y, por lo tanto, el sistema está protegido? Estoy buscando específicamente cat /proc/something
o cat /sys/something
no comprobando la versión del kernel o el parámetro de configuración o similares.
Grepping CONFIG_PAGE_TABLE_ISOLATION en la configuración del kernel como sugirió Raniz no ayuda en Ubuntu de escritorio, pero puede ayudar en instancias de la nube:
Puede verificar
/proc/cpuinfo
como JonasCz sugirió :O de
dmesg
(gracias a Jason Creighton ):Puede compilar el programa de prueba de Raphael Carvalho para la detección de Meltdown:
en el sistema parcheado debería terminar con salida
Verifique con la herramienta de https://github.com/speed47/spectre-meltdown-checker :
En el sistema parcheado, debería mostrar lo siguiente:
¡No instale 4.4.0-108-generic en Xenial! ¡ Rompe la funcionalidad de arranque / reinicio / apagado / suspensión !
¡Instale 4.4.0-109-generic ( consulte USN-3522-3 para más detalles)!
Como Robie Basak ya escribió , hay una página sobre el estado de las vulnerabilidades de Spectre y Meltdown en Ubuntu .
También hay:
fuente
dmesg | grep isolation && echo "patched :)" || echo "unpatched :("
comando que figura en la lista es innecesariamente peligroso : no muestra qué línea coincidió realmente, y también imprimiría felizmente "parcheado :)" si una otra instancia aleatoria de "aislamiento" coincidiera .../proc/cpuinfo
para cpu_insecure). Si coloca eso en un script y tiene una CPU en el futuro donde el problema se soluciona en su microarquitectura,/proc/cpuinfo
ya no lo dirácpu_insecure
y su script creerá que el kernel no está parcheado aunque esté parcheado . También recomendaría contra la tercera sugerencia, ya que es muy probable que haya una palabraisolation
en ladmesg
salida en algún momento sin que se refiera al aislamiento de la tabla de páginas del núcleo.isolation
coincidirá con ambosKernel/User page tables isolation: enabled
yKernel/User page tables isolation: disabled on command line
.Ejecute el siguiente comando:
Si se muestra habilitado, entonces PTI está habilitado. Si no se muestra nada o ve 'deshabilitado' en el terminal, entonces PTI está deshabilitado. Ubuntu aún no ha publicado el parche, por lo que no mostrará ningún mensaje.
fuente
dmesg
salida. Vea/var/log/kern.log*
si se remonta lo suficiente como para tener los mensajes de arranque. Ubuntu solía grabar ladmesg
salida del tiempo de arranque/var/log/dmesg
, pero ya no parece hacerlo.dmesg: invalid option -- 'w'
.-H
También es inválido. Quitar las banderas funcionó bien para mí, como en esta respuestaPuede consultar con
cat /proc/cpuinfo
, si informacpu_insecure
bajo "errores", entonces PTI está habilitado.Si está en blanco (o simplemente no aparece en la lista
cpu_insecure
), entonces lo más probable es que esté ejecutando un kernel que aún no ha sido parcheado (Ubuntu no lo ha hecho), o tiene un procesador AMD (para el cual esto posiblemente no estará habilitado, ya que No eres vulnerable).Actualmente, todas las CPU son tratadas como vulnerables en el último kernel 4.15.
fuente
cpu_insecure
para cualquier CPU x86; 4.14.12 y posteriores solo lo configurarán para las CPU Intel (incluidas las que sean demasiado antiguas o demasiado primitivas para ser vulnerables. Ambos lo configurarán incluso si KPTI está desactivado.)Encontré este gran script sh para probar vulnerabilidades Meltdown / specter en su sistema:
https://github.com/speed47/spectre-meltdown-checker
El script verifica su sistema con Meltdown conocido y parches de espectros en su sistema para decirle si estas vulnerabilidades ahora son mitigadas por su sistema operativo
fuente
Puede comprobar /proc/config.gz para
CONFIG_PAGE_TABLE_ISOLATION=y
lo cual significa que el kernel fue compilado con KPTI.Esto está en mi parcheado sistema Arch Linux que ejecuta 4.14.11-1:
fuente
/proc/
no está habilitada por defecto en los núcleos de Ubuntu. La solución (mucho menos elegante) es grepping/boot/config-$( uname -r )
en su lugar.En mi instancia de AWS Ubuntu 14.04.5 LTS EC2, ejecuté
Debería decir:
Para la actualización hice:
Creo que esto también está bien:
Para verificar la versión del kernel:
Debe ser 3.13.0-139-genérico o más reciente.
fuente