Désactiver les patchs de sécurité Meltdown & co
Suite à Meltdown & co, le kernel Linux a implémenté de nombreux patches qu'il est possible de désactiver afin de retrouver des performances correctes. Ce paramètre a été introduit en backports 4.14.x, 4.19.x ou ou 5.2 "officiellement".
Des benchmarks sont disponibles ici
Application
Pour changer les paramètres, il faut éditer le fichier /etc/default/grub
et rajouter ceci :
GRUB_CMDLINE_LINUX_DEFAULT="quiet mitigations=off"
Si vous disposez d'un kernel inférieur à 5.2, alors voici la ligne à mettre
GRUB_CMDLINE_LINUX_DEFAULT="quiet noibrs noibpb nopti nospectre_v2 nospectre_v1 l1tf=off nospec_store_bypass_disable no_stf_barrier mds=off tsx_async_abort=off mitigations=off"
Puis il faut lancer une regénération du grub :
update-grub
Voici les paramètres mitigés via un mitigations=off dans un kernel récent :
nopti
[X86,PPC] - Control Page Table Isolation of user and kernel address spaces. Disabling this feature removes hardening, but improves performance of system calls and interrupts.kpti
=0 [ARM64] - Control page table isolation of user and kernel address spaces.nobp
=0 [S390] - Undocumented. Does something on S390 systems, nobody knows what.nospectre_v1
[X86,PPC] - Disable mitigations for Spectre Variant 1 (bounds check bypass). With this option data leaks are possible in the system.nospectre_v2
[X86,PPC,S390,ARM64] - Disable all mitigations for the Spectre variant 2 (indirect branch prediction) vulnerability. System may allow data leaks with this option.spectre_v2_user=off
[X86] - Control mitigation of Spectre variant 2 (indirect branch speculation) vulnerability between user space tasksspec_store_bypass_disable=off
[X86,PPC] - Control Speculative Store Bypass (SSB) Disable mitigation (Speculative Store Bypass vulnerability)ssbd=force-off
[ARM64] - Speculative Store Bypass Disable controll1tf=off
[X86] - Control mitigation of the L1TF vulnerability on affected CPUsmds=off
[X86] - Control mitigation for the Micro-architectural Data Sampling (MDS) vulnerability.tsx_async_abort=off
[X86] - Control mitigation for the Micro-architectural TSX (MDS) vulnerability.
Vérification
Pour vérifier que les vulnérabilités ne sont plus mitigées, il faut se pencher du côté du dossier /sys/devices/system/cpu/vulnerabilities/
λ yann ~ → ls /sys/devices/system/cpu/vulnerabilities/
itlb_multihit l1tf mds meltdown spec_store_bypass spectre_v1 spectre_v2 tsx_async_abort
Si nous regardons le contenu du fichier spectre_v1 par exemple avant correction du kernel :
λ yann ~ → cat /sys/devices/system/cpu/vulnerabilities/spectre_v1
Mitigation: usercopy/swapgs barriers and __user pointer sanitization
Nous voyons ici que la vulnérabilité est mitigée. Sur un serveur non-mitigé, voici le message que nous auront :
λ yann ~ → cat /sys/devices/system/cpu/vulnerabilities/spectre_v1
Vulnerable: __user pointer sanitization and usercopy barriers only; no swapgs barriers
Nous voyons ici que le patch kernel a été désactivé et que nous sommes donc '"vulnérable'" à la faill Spectre V1