Parece que você fez praticamente tudo que pode no momento com os kernels de baunilha (ou ElRepo).
Os kernels de distribuição, embora possam ser nominalmente mais antigos, podem incluir mais patches de segurança - aqueles que ainda não entraram no kernel vanilla. Em particular, as distribuições corporativas estão atualmente trabalhando duro com informações provavelmente internas dos fabricantes de CPU e seus próprios recursos de desenvolvimento, obtendo as correções em forma de trabalho e liberadas. Nesta situação, o último kernel vanilla não é necessariamente a melhor escolha.
De acordo com a saída do script no kernel 4.14.13, seu processador pode se beneficiar de uma atualização de microcódigo. Um microcódigo atualizado habilitaria o IBRS, que é uma maneira de mitigar a Variante 2. Além disso, para usar o IBRS, seria necessário mais patches do kernel, que estão atualmente sob revisão e podem ou não ser incluídos no kernel 4.15 (e provavelmente retornados para versões antigas do kernel).
Com o 4.14.14, o kernel fornece a opção CONFIG_RETPOLINE
, que pode ser usada para atenuar a Variante 2 do Spectre com ou sem o IBRS, mas com a versão atual do compilador ele ainda não pode implementar retpolinas para efeito total. Mas, embora o atual status de retpolina ainda seja vulnerável, é melhor que nada.
A atenuação do Specter Variant 1 também requer modificações no compilador.
Então, você está agora basicamente esperando por uma atualização do compilador C que permita que você (ou ElRepo) compile um kernel com mais instruções LFENCE em locais apropriados, e com uma implementação de retpoline mais rigorosa. Isso mitigaria as duas variantes do Specter, embora as retpolinas completas para o Variant 2 possam consumir algum desempenho da CPU.
Em segundo lugar, você está esperando por uma atualização de microcódigo (livre de bugs) para a sua CPU que permitiria que o IBRS e uma atualização do kernel realmente a usassem. Isso poderia vir ao longo de uma atualização de BIOS / firmware, ou você poderia ter o Linux instalar o microcódigo atualizado na inicialização. Atualização:
O Debian forneceu pacotes de compiladores atualizados com a funcionalidade completa de retpolina integrada. Para o Debian 8 (jessie), gcc-4.9
com retpoline backports foi lançado em 2018-02-17, e para o Debian 9 (stretch), gcc-6
com backports retpoline foi lançado em 2018-02-22.
Também em 2018-02-22, o Debian lançou uma atualização do kernel para o Debian 9 com mitigação completa de retpolina para o Specter Variant 2 e um array_index_mask_nospec
mitigação para o Specter Variant 1. Então, um conjunto completo de atenuações do Specter agora está disponível no Debian. 9, sem necessidade de atualizações de BIOS / microcódigo.
Portanto, o esforço de backport para os recursos necessários do compilador está em andamento. Infelizmente, a versão padrão do compilador para RHEL / CentOS 7 é gcc-4.8.5
: a disponibilidade de patches de backport para gcc-4.9
pode ser de alguma ajuda, mas ainda é necessário mais trabalho para obter os recursos necessários do compilador backported até gcc-4.8.5
.
Em 2018-02-20, a Intel publicou um conjunto de recomendações sobre atualizações de microcódigo para vários modelos de processadores . Ele também lista as versões de microcódigo lançadas em janeiro e que, desde então, são consideradas com bugs e, consequentemente, recomenda que qualquer implementação dessas versões de microcódigo específicas seja interrompida .