Como verificar se o KPTI está habilitado no meu Ubuntu?

59

A atual vulnerabilidade do processador Intel Meltdown é atualmente sanada com o isolamento da tabela de páginas ativado. Há uma pergunta sobre como desativar isso: Como desativar o isolamento de tabela de página para recuperar o desempenho perdido devido ao patch de falhas de segurança da CPU Intel?

Minha pergunta é oposta: existe uma maneira de verificar em um sistema em execução se o mecanismo da PTI é eficaz no sistema e, portanto, o sistema está protegido? Estou procurando especificamente cat /proc/something ou cat /sys/something , não estou verificando a versão do kernel ou o parâmetro config ou algo semelhante.

    
por Martin Vysny 04.01.2018 / 08:55

6 respostas

62
  • Grepping CONFIG_PAGE_TABLE_ISOLATION na configuração do kernel como O sugerido pelo Raniz não ajuda no Ubuntu do desktop, mas pode ajudar nas instâncias da nuvem:

    grep CONFIG_PAGE_TABLE_ISOLATION=y /boot/config-'uname -r' && \
    echo "patched :)" || echo "unpatched :("
    
  • Você pode verificar com /proc/cpuinfo como JonasCz sugeriu :

    grep -q "cpu_insecure\|cpu_meltdown\|kaiser" /proc/cpuinfo && echo "patched :)" \
    || echo "unpatched :("
    
  • Ou de dmesg (graças a Jason Creighton ):

    dmesg | grep -q "Kernel/User page tables isolation: enabled" \
    && echo "patched :)" || echo "unpatched :("
    
  • Você pode compilar o programa de teste de Raphael Carvalho para detecção de falhas:

    sudo apt-get install git build-essential
    cd /tmp
    git clone https://github.com/raphaelsc/Am-I-affected-by-Meltdown.git
    cd Am-I-affected-by-Meltdown
    make
    sudo sh -c "echo 0  > /proc/sys/kernel/kptr_restrict"
    ./meltdown-checker
    

no sistema corrigido, ele deve terminar com a saída

...
so far so good (i.e. meltdown safe) ...

System not affected (take it with a grain of salt though as false negative
may be reported for specific environments; Please consider running it once again).
  • Verifique com a ferramenta link :

    cd /tmp
    wget https://raw.githubusercontent.com/speed47/spectre-meltdown-checker/master/spectre-meltdown-checker.sh
    sudo sh /tmp/spectre-meltdown-checker.sh
    

No sistema corrigido, ele deve mostrar o seguinte:

Spectre and Meltdown mitigation detection tool v0.27

Checking for vulnerabilities against live running kernel Linux 4.4.0-109-generic #132-Ubuntu SMP Tue Jan 9 19:52:39 UTC 2018 x86_64
...
CVE-2017-5754 [rogue data cache load] aka 'Meltdown' aka 'Variant 3'
* Kernel supports Page Table Isolation (PTI):  YES 
* PTI enabled and active:  YES 
> STATUS:  NOT VULNERABLE  (PTI mitigates the vulnerability)

Não instale o genérico 4.4.0-108 no Xenial! interrompe a funcionalidade de inicialização / reinicialização / desligamento / suspensão !

Instale o 4.4.0-109-generic ( consulte USN-3522-3 para obter detalhes) !

Como Robie Basak já escreveu , há uma página sobre Status de vulnerabilidades de Specter e Meltdown no Ubuntu .

Também existem:

por N0rbert 12.01.2018 / 21:47
18

Execute o seguinte comando:

dmesg | grep 'page tables isolation'

Se estiver ativado, o PTI está ativado. Se nada for exibido ou aparecer 'desativado' no terminal, a PTI será desativada. O Ubuntu ainda não publicou o patch, por isso não exibirá nenhuma mensagem.

    
por AadhilRF 04.01.2018 / 09:33
12

Você pode verificar com cat /proc/cpuinfo , se ele reportar cpu_insecure em "bugs", então o PTI está habilitado.

Se estiver em branco (ou apenas não listar cpu_insecure ), então provavelmente você está executando um kernel que ainda não foi corrigido (o do Ubuntu não), ou você tem um processador AMD (para o qual isso será previsivelmente não estar habilitado, já que eles não estão vulneráveis).

Atualmente, todas as CPUs são tratadas como vulneráveis no último kernel 4.15.

    
por JonasCz 04.01.2018 / 09:16
8

Eu encontrei este ótimo script sh para testar as vulnerabilidades do Meltdown / specter no seu sistema:

link

O script verifica seu sistema para saber sobre os problemas conhecidos do Meltdown e do specter em seu sistema para informar se essas vulnerabilidades agora são atenuadas pelo seu sistema operacional

    
por Compte droid 10.01.2018 / 10:34
2

Você pode verificar /proc/config.gz para CONFIG_PAGE_TABLE_ISOLATION=y , o que significa que o kernel foi compilado com o KPTI.

Isso está no meu sistema Arch Linux corrigido, executando 4.14.11-1:

$ zgrep CONFIG_PAGE_TABLE_ISOLATION /proc/config.gz 
CONFIG_PAGE_TABLE_ISOLATION=y
    
por Raniz 04.01.2018 / 09:28
1

Na minha instância do AWS Ubuntu 14.04.5 LTS EC2, eu corri

grep CONFIG_PAGE_TABLE_ISOLATION /boot/config-$(uname -r)

Deveria dizer:

CONFIG_PAGE_TABLE_ISOLATION=y

Para atualização eu fiz:

sudo apt-get update && sudo apt-get install linux-image-generic

Eu também acho que está tudo bem:

sudo apt-get update
sudo apt-get dist-upgrade

Para verificar a versão do kernel:

uname -r

Precisa ser 3.13.0-139-generic ou mais recente.

    
por drKreso 12.01.2018 / 11:17