Quanto à vulnerabilidade de segurança "Spectre", o "Retpoline" foi introduzido para ser uma solução para mitigar o risco. No entanto, eu li um post que mencionava:
Se você constrói o kernel sem
CONFIG_RETPOLINE
, não pode construir módulos com o retpoline e espera que eles sejam carregados - porque os símbolos de thunk não são exportados.Se você construir o kernel com o retpoline, poderá carregar com êxito os módulos que não foram criados com o retpoline. ( Fonte )
Existe uma maneira fácil e comum / genérica / unificada de verificar se o kernel está "Retpoline" ativado ou não? Quero fazer isso para que meu instalador possa usar a compilação apropriada do módulo do kernel a ser instalado.
fonte
$ grep . /sys/devices/system/cpu/vulnerabilities/*
, o que é sugerido no blog de Greg Kroah-Hartman .head /sys/devices/system/cpu/vulnerabilities/*
mim mesma ;-). Atualmente, ele cobre as vulnerabilidades Meltdown / Spectre, mas também deve cobrir quaisquer vulnerabilidades futuras de natureza semelhante (o espaço para nome é propositadamente genérico).head
fornece uma saída formatada melhor.A resposta de Stephen Kitt é mais abrangente nesse caso específico, porque o suporte ao retpoline também precisa de uma nova versão do compilador.
Mas, em geral, a maioria das distribuições tem o arquivo de configuração do kernel disponível em um dos seguintes locais:
/boot/config-4.xx.xx-...
/proc/config.gz
Então você pode simplesmente
zgrep CONFIG_RETPOLINE /boot/config* /proc/config.gz
fonte
/boot/config*
, porque isso pode ser encontradoCONFIG_RETPOLINE
em uma imagem do kernel que está instalada, mas não está em execução no momento, dando uma falsa sensação de segurança. Examinar/proc/config.gz
ou/sys/...
é seguro, mas muitas distribuições Linux compilam o kernel sem/proc/config.gz
./boot/config-$(uname -r)
, então?/boot/config-$(uname -r)
também não é infalível: ainda não garante que a configuração corresponda ao kernel em execução. Os kernels deuname -r
distribuição mantêm o mesmo em várias versões, desde que a ABI do kernel não seja alterada.