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.
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).
Vérifiez avec l'outil de https://github.com/speed47/spectre-meltdown-checker :
cd /tmp
wget https://raw.githubusercontent.com/speed47/spectre-meltdown-checker/master/spectre-meltdown-checker.sh
Sudo sh /tmp/spectre-meltdown-checker.sh
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)
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:
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.
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.
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.
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
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.