En cuanto a la vulnerabilidad de seguridad "Spectre", se introdujo "Retpoline" como una solución para mitigar el riesgo. Sin embargo, he leído una publicación que menciona:
Si
CONFIG_RETPOLINE
compila el núcleo sin , no puede compilar módulos con retpoline y luego esperar que se carguen, porque los símbolos thunk no se exportan.Sin embargo, si compila el kernel con retpoline, puede cargar con éxito módulos que no están construidos con retpoline. ( Fuente )
¿Existe una manera fácil y común / genérica / unificada de verificar si el núcleo está habilitado o no para "Retpoline"? Quiero hacer esto para que mi instalador pueda usar la compilación adecuada del módulo del núcleo que se instalará.
fuente
$ grep . /sys/devices/system/cpu/vulnerabilities/*
, lo que se sugiere en el blog de Greg Kroah-Hartman .head /sys/devices/system/cpu/vulnerabilities/*
mí mismo ;-). Eso actualmente cubre las vulnerabilidades Meltdown / Spectre, pero también debería cubrir cualquier vulnerabilidad futura de naturaleza similar (el espacio de nombres es a propósito genérico).head
ofrece una salida con mejor formato.La respuesta de Stephen Kitt es más completa en este caso específico, porque el soporte de retpoline también necesita una nueva versión del compilador.
Pero, en general, la mayoría de las distribuciones tienen el archivo de configuración del núcleo disponible en una de las siguientes ubicaciones:
/boot/config-4.xx.xx-...
/proc/config.gz
Entonces puedes simplemente
zgrep CONFIG_RETPOLINE /boot/config* /proc/config.gz
fuente
/boot/config*
, porque eso puede encontrarseCONFIG_RETPOLINE
en una imagen del kernel que está instalada pero que actualmente no se está ejecutando, lo que da una falsa sensación de seguridad. Examinar/proc/config.gz
o/sys/...
es seguro, pero muchas distribuciones de Linux compilan el núcleo sin él/proc/config.gz
./boot/config-$(uname -r)
, entonces?/boot/config-$(uname -r)
tampoco es infalible: todavía no garantiza que la configuración coincida con el núcleo en ejecución. Los núcleos de distribución se mantienen igualuname -r
en varias versiones, siempre que la ABI del núcleo no cambie.