65 votes

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

La vulnérabilité actuelle du processeur Intel Meltdown est actuellement corrigée par l'activation de l'isolation de la table des pages. La question se pose de savoir comment la désactiver : Comment désactiver l'isolation de la table des pages pour retrouver les performances perdues en raison du correctif de la faille de sécurité du processeur Intel ?

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

63voto

N0rbert Points 86925
  • Extraction de CONFIG_PAGE_TABLE_ISOLATION dans la configuration du noyau en tant que Raniz a suggéré n'est pas utile sur Ubuntu de bureau, mais peut l'être sur les instances en nuage :

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

  • Vous pouvez vérifier auprès de /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 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

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 un système corrigé, il devrait afficher ce qui suit :

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 casse la fonctionnalité de démarrage/redémarrage/arrêt/suspension !

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


En Robie Basak a déjà écrit il y a une page sur État des vulnérabilités Spectre et Meltdown dans Ubuntu .

Il y en a aussi :

18voto

Aadhil RF Points 394

Exécutez la commande suivante :

dmesg | grep 'page tables isolation'

S'il affiche "enabled", alors le PTI est activé. Si rien ne s'affiche ou si vous voyez 'disabled' dans le terminal, alors PTI est désactivé. Ubuntu n'a pas encore publié le correctif, donc il n'affichera pas de message.

13voto

JonasCz Points 3897

Vous pouvez vérifier auprès de cat /proc/cpuinfo si elle rapporte cpu_insecure sous "bugs", alors PTI est activé.

S'il est vide (ou s'il n'est pas listé) cpu_insecure ), alors il est probable que vous utilisez un noyau qui n'a pas encore été corrigé (celui d'Ubuntu ne l'a pas été), ou que vous avez un processeur AMD (pour lequel cela ne sera pas activé, puisqu'ils ne sont pas vulnérables).

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

8voto

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

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

Le script vérifie les correctifs connus de Meltdown et spectre sur votre système pour vous dire si ces vulnérabilités sont maintenant atténuées par votre OS.

8voto

Michal Przybylowicz Points 2953

Vous pouvez exécuter la commande ci-dessous pour voir toutes les mesures d'atténuation disponibles (non seulement pour PTI mais aussi pour d'autres vulnérabilités) :

$ cat /sys/devices/system/cpu/vulnerabilities/*
Mitigation: PTE Inversion
Mitigation: Clear CPU buffers; SMT vulnerable
Mitigation: PTI
Mitigation: Speculative Store Bypass disabled via prctl and seccomp
Mitigation: usercopy/swapgs barriers and __user pointer sanitization
Mitigation: Full generic retpoline, IBPB: conditional, IBRS_FW, STIBP: conditional, RSB filling

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X