web-dev-qa-db-fra.com

Comment vérifier que KPTI est activé sur mon Ubuntu?

La vulnérabilité actuelle du processeur Meltdown Intel est actuellement corrigée en activant l'isolation de la table des pages. Il existe une question sur la façon de désactiver cette option: Comment désactiver l’isolation de la table des pages pour retrouver les performances perdues à cause du correctif de sécurité du processeur Intel?

Ma question est opposée: y a-t-il un moyen de vérifier sur un système en fonctionnement si le mécanisme PTI est efficace sur le système et donc que le système est protégé? Je recherche spécifiquement cat /proc/something ou cat /sys/something, sans vérifier la version du noyau, le paramètre de configuration ou autre.

61
Martin Vysny
  • Grepping CONFIG_PAGE_TABLE_ISOLATION dans la configuration du noyau sous la forme suggéré par Raniz n'aide pas sur le bureau Ubuntu, mais peut aider sur les instances dans le nuage:

    grep CONFIG_PAGE_TABLE_ISOLATION=y /boot/config-`uname -r` && \
    echo "patched :)" || echo "unpatched :("
    

  • Vous pouvez vérifier avec /proc/cpuinfo comme JonasCz a suggéré :

    grep -q "cpu_insecure\|cpu_meltdown\|kaiser" /proc/cpuinfo && echo "patched :)" \
    || echo "unpatched :("
    

  • Ou de dmesg (merci à Jason Creighton ):

    dmesg | grep -q "Kernel/User page tables isolation: enabled" \
    && echo "patched :)" || echo "unpatched :("
    

  • Vous pouvez compiler le programme de test à partir de Raphael Carvalho pour la détection de fusion:

    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
    

sur un système patché, il devrait se terminer par une sortie

...
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).

Sur le système corrigé, il devrait afficher les éléments suivants:

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'installez pas 4.4.0-108-generic sur Xenial! Il interrompt la fonctionnalité démarrage/redémarrage/arrêt/suspension !

Installez 4.4.0-109-generic ( voir USN-3522- pour plus de détails)!


Comme Robie Basak a déjà écrit , il y a une page à propos de état des vulnérabilités de Spectre et de Meltdown dans Ubunt .

De plus il y a:

63
N0rbert

Exécutez la commande suivante:

dmesg | grep 'page tables isolation'

S'il indique activé, alors PTI est activé. Si rien ne s'affiche ou si vous voyez "désactivé" dans le terminal, PTI est désactivé. Ubuntu n’ayant pas encore publié le correctif, il n’affiche aucun message.

18
AadhilRF

Vous pouvez vérifier avec cat /proc/cpuinfo, s'il indique cpu_insecure sous "bugs", alors PTI est activé.

S'il est vide (ou ne répertorie tout simplement pas cpu_insecure), alors vous utilisez probablement un noyau qui n'a pas encore été corrigé (Ubuntu n'a pas encore été corrigé), ou vous avez un processeur AMD (pour lequel cela ne sera pas activé, car ils ne sont pas vulnérables).

Actuellement tous les processeurs sont considérés comme vulnérables dans le dernier noyau 4.15.

12
JonasCz

J'ai trouvé ce bon script sh pour tester les vulnérabilités de Meltdown/spectre sur votre système:

https://github.com/speed47/spectre-meltdown-checker

Le script vérifie que votre système contient les correctifs Meltdown et Specter connus sur votre système pour vous indiquer si ces vulnérabilités sont désormais limitées par votre système d'exploitation.

8
Compte droid

Vous pouvez vérifier / proc/config.gz pour CONFIG_PAGE_TABLE_ISOLATION=y, ce qui signifie que le noyau a été compilé avec KPTI.

Ceci est sur mon système Arch Linux corrigé fonctionnant sous 4.14.11-1:

$ zgrep CONFIG_PAGE_TABLE_ISOLATION /proc/config.gz 
CONFIG_PAGE_TABLE_ISOLATION=y
2
Raniz

Sur mon instance AWS Ubuntu 14.04.5 LTS EC2, j'ai exécuté

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

Il devrait dire:

CONFIG_PAGE_TABLE_ISOLATION=y

Pour la mise à jour j'ai fait:

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

Je pense aussi que c'est OK:

Sudo apt-get update
Sudo apt-get dist-upgrade

Pour vérifier la version du noyau:

uname -r

Doit être .13.0-139-generic ou plus récent.

1
drKreso