← Toutes les règles
SOCLE-CLD-KRN-056// Kernel buildélevéeruntime effectif

Supprimer la cartographie du noyau en mode utilisateur

Exige que le noyau en cours d'exécution soit compilé avec CONFIG_PAGE_TABLE_ISOLATION=y pour atténuer la vulnérabilité CPU Meltdown en isolant les tables de pages du noyau du mode utilisateur.

Vérifié sur l’état résolu en cours d’exécution (ex. sshd -T, sysctl, systemctl show), attrape les drop-ins et Include qu’une lecture de fichier raterait. Réserve : runtime ≠ persistance ; une valeur correcte maintenant peut ne pas survivre à un redémarrage.

Un PASS prouve✓ actif maintenant✓ sur disque✓ survit au rebootle verdict qualifié →
Debian 12CIS 1.1.0Debian 13CIS 1.0.0FedoraRHEL 10 / Rocky 10 / AlmaLinux 10RHEL 8 / Rocky 8 / AlmaLinux 8CIS 4.0.0RHEL 9 / Rocky 9 / AlmaLinux 9CIS 2.0.0Ubuntu 22.04CIS 3.0.0Ubuntu 24.04CIS 1.0.0Ubuntu 26.04
Un seul check, mappé sur 1 norme

Pavois vérifie la configuration effective, l’état résolu et réellement appliqué, pas un fichier. Les scanners basés fichier (OVAL/SCAP, Lynis) ratent les Include, drop-ins et défauts runtime ; ce check voit ce qui est réellement en vigueur.

Un mapping est une référence croisée vers l’endroit où chaque norme situe cette exigence, ancrée et recoupée, pas une affirmation d’équivalence. Un check réussi est une preuve vers ces références, comment le lire.

Pourquoi cette règle

L'isolation des tables de pages (PTI/KPTI) est la défense principale contre Meltdown (CVE-2017-5754), un canal auxiliaire CPU qui permet à un processus non privilégié de lire une mémoire noyau arbitraire, y compris mots de passe, clés et autres secrets. PTI maintient les tables de pages du noyau hors de la cartographie de l'espace utilisateur, de sorte que même si le CPU accède spéculativement à des adresses noyau, elles ne sont pas présentes pour fuir. Sans CONFIG_PAGE_TABLE_ISOLATION=y, les CPU vulnérables exposent toute la mémoire noyau à n'importe quel processus local, d'où la sévérité élevée de cette règle.

Ce que vérifie Pavois

Pavois lit la configuration de compilation du noyau en cours d'exécution via /boot/config-$(uname -r), avec repli sur /proc/config.gz, de sorte que le résultat reflète le noyau démarré. Pavois attend CONFIG_PAGE_TABLE_ISOLATION=y. Notez que la fonctionnalité peut tout de même être désactivée à l'exécution via le paramètre de démarrage pti=off/nopti, même compilée en dur.

describe command("C=/boot/config-$(uname -r); if [ -r \"$C\" ]; then cat \"$C\"; elif zcat /proc/config.gz 2>/dev/null | head -1 | grep -q .; then zcat /proc/config.gz; else echo PAVOIS_NO_KERNEL_CONFIG; fi | grep -E '^(CONFIG_PAGE_TABLE_ISOLATION=|PAVOIS_NO_KERNEL_CONFIG)'") do
  its('stdout') { should_not match(/PAVOIS_NO_KERNEL_CONFIG/) }
  its('stdout') { should match(/^CONFIG_PAGE_TABLE_ISOLATION=y$/) }
end

Comment vérifier qu’elle est appliquée

À la compilation : grep '^CONFIG_PAGE_TABLE_ISOLATION=' /boot/config-$(uname -r)CONFIG_PAGE_TABLE_ISOLATION=y. État à l'exécution : cat /sys/devices/system/cpu/vulnerabilities/meltdown doit indiquer Mitigation: PTI, et dmesg | grep -i 'page table isolation' doit montrer son activation.

Inspecter et investiguer

L'état de l'atténuation à l'exécution est dans /sys/devices/system/cpu/vulnerabilities/meltdown. Messages de démarrage : dmesg | grep -i 'page table isolation' (par ex. Kernel/User page tables isolation: enabled). Vérifiez cat /proc/cmdline pour un éventuel nopti/pti=off qui le désactiverait.

Remédiation

Aucune remédiation automatique : CONFIG_PAGE_TABLE_ISOLATION est une option de compilation du noyau, activée dans tous les noyaux de distribution actuels. Elle ne peut pas être activée à l'exécution. Si le noyau en cours indique PTI désactivé, vérifiez la ligne de commande du noyau pour nopti/pti=off et supprimez-le (modification distincte de cmdline/GRUB), puis redémarrez. À appliquer manuellement ; pavois harden apply ne peut pas modifier un paramètre compilé en dur.

Pavois applique ceci avec son propre moteur harden, le plan ci-dessous, pas un script shell :

resourcekernel_build
pavois harden plan local

où la cible est local, un alias SSH user@hôte, ou un conteneur , Docs

Impact & précautions

Si PTI est absent ou désactivé, tout utilisateur local (y compris un conteneur ou un script) peut lire la mémoire noyau via Meltdown et voler des identifiants, une attaque grave et pleinement réaliste sur les CPU Intel affectés. Le compromis est la performance : PTI ajoute un surcoût aux appels système et aux changements de contexte (quelques pour cent, davantage sur les charges intensives en syscalls). Précaution : ne désactivez jamais PTI sur du matériel vulnérable pour gagner en performance ; si vous devez mesurer le coût, faites-le sur des hôtes isolés et non sensibles. Aucun risque de blocage d'accès, c'est transparent pour les applications.

Mapping des normes

NormeRéférenceTypeVersionConfiance
ANSSI BP-028R25direct2.0haute

Chaque référence est une référence croisée ancrée dans le benchmark amont et recoupée avec le SCAP Security Guide et ansible-lockdown, pas une affirmation d’équivalence. Direct = une exigence prescriptive au niveau de la ligne ; support = une famille de contrôle abstraite (NIST) vers laquelle le check apporte une preuve. Comment lire un mapping.

Sources & références