Atualmente, a vulnerabilidade do processador Intel Meltdown é corrigida com o isolamento da tabela de páginas ativado. Há uma pergunta sobre como desativar isso: Como desativar o isolamento da tabela de páginas para recuperar o desempenho perdido devido ao patch da falha de segurança da CPU Intel?
Minha pergunta é oposta: existe uma maneira de verificar em um sistema em execução se o mecanismo PTI é eficaz no sistema e, portanto, o sistema está protegido? Estou procurando especificamente cat /proc/something
ou cat /sys/something
não verificando a versão do kernel ou o parâmetro de configuração ou algo semelhante.
Grepping CONFIG_PAGE_TABLE_ISOLATION na configuração do kernel, como sugerido por Raniz, não ajuda no Ubuntu de desktop, mas pode ajudar nas instâncias da nuvem:
Você pode verificar
/proc/cpuinfo
como o JonasCz sugeriu :Ou de
dmesg
(graças a Jason Creighton ):Você pode compilar o programa de teste de Raphael Carvalho para detectar Meltdown:
no sistema corrigido, deve terminar com saída
Verifique com a ferramenta https://github.com/speed47/spectre-meltdown-checker :
No sistema corrigido, ele deve mostrar o seguinte:
Não instale o 4.4.0-108-generic no Xenial! Ele interrompe a funcionalidade de inicialização / reinicialização / desligamento / suspensão !
Instale 4.4.0-109-generic ( consulte USN-3522-3 para obter detalhes)!
Como Robie Basak já escreveu , há uma página sobre o status das vulnerabilidades Spectre e Meltdown no Ubuntu .
Também existem:
fonte
dmesg | grep isolation && echo "patched :)" || echo "unpatched :("
comando listado é desnecessariamente perigoso : não mostra qual linha foi realmente correspondida e também imprimia "patched :)" felizmente se uma outra instância aleatória de "isolamento" fosse correspondida .../proc/cpuinfo
para cpu_insecure). Se você colocar isso em um script e você tem uma CPU no futuro, onde o problema é corrigido na sua microarquitetura,/proc/cpuinfo
deixarão de dizercpu_insecure
e seu script vai acreditar o kernel é não corrigida mesmo que seja corrigido . Eu também recomendaria contra a terceira sugestão, pois é muito provável que possa haver a palavraisolation
nadmesg
saída em algum momento sem ela se referir ao isolamento da tabela de páginas do kernel.isolation
corresponderá a ambosKernel/User page tables isolation: enabled
eKernel/User page tables isolation: disabled on command line
.Execute o seguinte comando:
Se exibir ativado, o PTI está ativado. Se nada for exibido ou você vir 'desativado' no terminal, o PTI estará desativado. O Ubuntu ainda não publicou o patch, portanto não exibirá nenhuma mensagem.
fonte
dmesg
saída. Veja/var/log/kern.log*
se ele volta o suficiente para receber as mensagens de inicialização. O Ubuntu costumava gravar admesg
saída no momento da inicialização/var/log/dmesg
, mas parece não fazer mais isso.dmesg: invalid option -- 'w'
.-H
também é inválido. Removendo as bandeiras funcionou bem para mim, como em esta respostaVocê pode verificar com
cat /proc/cpuinfo
, se reportarcpu_insecure
em "bugs", o PTI está ativado.Se estiver em branco (ou simplesmente não
cpu_insecure
estiver listado ), provavelmente você está executando um kernel que ainda não foi corrigido (o Ubuntu não tem) ou possui um processador AMD (para o qual isso não será habilitado, visto que eles não é vulnerável).Atualmente, todas as CPUs são tratadas como vulneráveis no kernel 4.15 mais recente.
fonte
cpu_insecure
para qualquer CPU x86; 4.14.12 e mais recentes só irá definir-lo para Intel CPUs (incluindo os muito velhos ou muito primitiva a ser vulnerável Ambos irão configurá-lo mesmo se KPTI está desativado..Encontrei este ótimo script sh para testar as vulnerabilidades de fusão / espectro no seu sistema:
https://github.com/speed47/spectre-meltdown-checker
O script verifica se o seu sistema possui patches conhecidos de fusão e espectro no seu sistema para informar se essas vulnerabilidades agora foram mitigadas pelo seu sistema operacional.
fonte
Você pode verificar /proc/config.gz para
CONFIG_PAGE_TABLE_ISOLATION=y
o que significa que o kernel foi compilado com KPTI.Este está no meu sistema Arch Linux corrigido, executando 4.14.11-1:
fonte
/proc/
não é ativada por padrão nos kernels do Ubuntu. A solução alternativa (muito menos elegante) é a grepping/boot/config-$( uname -r )
.Na minha instância do AWS Ubuntu 14.04.5 LTS EC2, executei
Deveria dizer:
Para atualização, fiz:
Eu também acho que isso é bom:
Para verificar a versão do kernel:
Precisa ser 3.13.0-139-genérico ou mais recente.
fonte