Garantir que le module noyau overlayfs n'est pas disponible
Garantit que le module noyau overlay/overlayfs ne peut pas être chargé, retirant le système de fichiers overlay sur les hôtes qui n'exécutent pas de conteneurs.
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.
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
Le système de fichiers overlay/overlayfs a un historique de CVE connues, dont plusieurs permettent une élévation de privilèges locale via une mauvaise gestion des fichiers setuid et des interactions de namespaces. Le désactiver réduit la surface d'attaque locale en retirant la prise en charge d'un type de système de fichiers inutile et atténue l'exécution non autorisée de fichiers setuid. Réserve importante : overlayfs est le backend de stockage de Docker, Podman et de la plupart des moteurs de conteneurs, le mettre en blacklist cassera les conteneurs, donc cette règle ne s'applique qu'aux hôtes n'exécutant aucune charge conteneurisée.
Ce que vérifie Pavois
Pavois utilise la ressource InSpec kernel_module('overlayfs') pour confirmer que le module n'est pas chargé et qu'il est désactivé (blacklist plus une redirection install ... /bin/true). Cela reflète l'état effectif du noyau via lsmod et modprobe --showconfig, important ici car un moteur de conteneurs peut charger overlay à la demande, ce qu'une lecture statique de /etc/modprobe.d/ raterait.
describe kernel_module('overlay') do
it { should_not be_loaded }
it { should be_disabled }
endComment vérifier qu’elle est appliquée
Exécutez modprobe -n -v overlay, la sortie doit afficher install /bin/true. Vérifiez qu'il n'est pas chargé avec lsmod | grep overlay (aucune sortie attendue). modprobe --showconfig | grep overlay doit afficher une ligne blacklist et une ligne install overlay /bin/true. (Le module noyau s'appelle overlay ; overlayfs en est l'alias historique.)
Inspecter et investiguer
Les tentatives de chargement et l'activité de montage overlay apparaissent dans le tampon noyau : dmesg | grep overlay ou journalctl -k | grep overlay. La politique modprobe effective est affichée par modprobe --showconfig | grep overlay ; les échecs d'un moteur de conteneurs dus à un backend overlay absent apparaissent dans journalctl -u docker ou journalctl -u podman.
Remédiation
pavois harden apply utilise la ressource kernel_module pour mettre overlayfs en blacklist : il écrit un drop-in sous /etc/modprobe.d/ avec une ligne blacklist et install overlay /bin/true, et décharge le module s'il est chargé. Comme le module peut déjà être actif (ou retenu par un conteneur en cours d'exécution), reboot_required est vrai pour garantir un état propre.
Pavois applique ceci avec son propre moteur harden, le plan ci-dessous, pas un script shell :
| action | blacklist |
|---|---|
| name | overlay |
| reboot_required | true |
| resource | kernel_module |
pavois harden plan localoù la cible est local, un alias SSH user@hôte, ou un conteneur , Docs
Impact & précautions
Risque en l'absence d'application : un système de fichiers au passif de CVE d'élévation de privilèges locale reste chargeable.
- Précaution critique : n'appliquez PAS sur un hôte exécutant Docker, Podman, des nœuds Kubernetes, LXC/LXD ou tout moteur de conteneurs, overlayfs est leur pilote de stockage par défaut et le mettre en blacklist empêchera les conteneurs de démarrer.
- N'appliquez que sur des hôtes nus, sans conteneurs ; vérifiez avec
docker info/podman info(pilote de graphe) avant de procéder. - Un redémarrage est requis pour un effet complet ; planifiez-le dans une fenêtre de maintenance.
Mapping des normes
| Norme | Référence | Type | Version | Confiance |
|---|---|---|---|---|
| CIS | 1.1.1.6 | direct | per OS, see the benchmark table | haute |
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.