Come verificare che KPTI sia abilitato sul mio Ubuntu?

60

L'attuale vulnerabilità del processore Meltdown Intel è attualmente rimediata con l'isolamento della tabella di pagine abilitato. C'è una domanda su come disattivarlo: Come disattivare l'isolamento del Table Page per recuperare le prestazioni perse a causa della patch del foro di sicurezza della CPU Intel?

La mia domanda è opposta: esiste un modo per verificare su un sistema in esecuzione se il meccanismo PTI è efficace sul sistema e quindi il sistema è protetto? Sto cercando in particolare cat /proc/something o cat /sys/something , non verificando la versione del kernel o il parametro config o simili.

    
posta Martin Vysny 04.01.2018 - 08:55

6 risposte

63
  • Grepping CONFIG_PAGE_TABLE_ISOLATION nella configurazione del kernel come suggerito da Raniz non aiuta su Ubuntu desktop, ma può essere d'aiuto nelle istanze cloud:

    grep CONFIG_PAGE_TABLE_ISOLATION=y /boot/config-'uname -r' && \
    echo "patched :)" || echo "unpatched :("
    
  • Puoi controllare con /proc/cpuinfo come suggerito da JonasCz :

    grep -q "cpu_insecure\|cpu_meltdown\|kaiser" /proc/cpuinfo && echo "patched :)" \
    || echo "unpatched :("
    
  • O da dmesg (grazie a Jason Creighton ):

    dmesg | grep -q "Kernel/User page tables isolation: enabled" \
    && echo "patched :)" || echo "unpatched :("
    
  • Puoi compilare il programma di test da Raphael Carvalho per il rilevamento di Meltdown:

    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
    

sul sistema con patch dovrebbe finire con l'output

...
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).
  • Verifica con lo strumento link :

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

Sul sistema con patch dovrebbe mostrare quanto segue:

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)

Non installare 4.4.0-108-generico su Xenial! È interrompe l'avvio / riavvio / arresto / sospende la funzionalità !

Installa 4.4.0-109-generic ( vedi USN-3522-3 per dettagli) !

Poiché ha già scritto Robie Basak , c'è una pagina su Stato di vulnerabilità di Spectre e Meltdown in Ubuntu .

Inoltre ci sono:

risposta data N0rbert 12.01.2018 - 21:47
18

Esegui il seguente comando:

dmesg | grep 'page tables isolation'

Se viene visualizzato abilitato, allora PTI è abilitato. Se non viene visualizzato nulla o viene visualizzato "disabilitato" nel terminale, PTI è disabilitato. Ubuntu non ha ancora pubblicato la patch, quindi non mostrerà alcun messaggio.

    
risposta data AadhilRF 04.01.2018 - 09:33
12

Puoi verificare con cat /proc/cpuinfo , se riporta cpu_insecure sotto "bug", quindi PTI è abilitato.

Se è vuoto (o semplicemente non elenca cpu_insecure ), molto probabilmente stai facendo girare un kernel che non è stato ancora aggiornato (non di Ubuntu), o hai un processore AMD (per il quale questo sarà probabilmente non essere abilitato, dal momento che non sono vulnerabili).

Attualmente tutte le CPU sono considerate vulnerabili nell'ultimo kernel 4.15.

    
risposta data JonasCz 04.01.2018 - 09:16
8

Ho trovato questo fantastico script SH per testare le vulnerabilità di Meltdown / Spectre sul tuo sistema:

link

Lo script controlla il tuo sistema con le note patch Meltdown e Spectre sul tuo sistema per dirti se queste vulnerabilità sono ora mitigate dal tuo sistema operativo

    
risposta data Compte droid 10.01.2018 - 10:34
2

Puoi controllare /proc/config.gz per CONFIG_PAGE_TABLE_ISOLATION=y , il che significa che il kernel è stato compilato con KPTI.

Questo è sul mio sistema Arch Linux con patch in esecuzione 4.14.11-1:

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

Nella mia istanza AWS di Ubuntu 14.04.5 LTS EC2, ho eseguito

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

Dovrebbe dire:

CONFIG_PAGE_TABLE_ISOLATION=y

Per l'aggiornamento che ho fatto:

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

Penso anche che sia OK:

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

Per verificare la versione del kernel:

uname -r

Deve essere 3.13.0-139-generic o più recente.

    
risposta data drKreso 12.01.2018 - 11:17

Leggi altre domande sui tag