Ajouter l'option nodev à /boot
Monte la partition /boot avec l'option nodev, afin que le noyau refuse d'interpréter tout fichier spécial de périphérique qui y serait placé.
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.
Pourquoi cette règle
Les nœuds de périphériques légitimes n'appartiennent qu'à /dev. Si /boot est monté sans nodev, un attaquant capable d'y écrire pourrait y déposer un fichier de périphérique caractère ou bloc malveillant (par exemple un nœud d'accès brut au disque) et l'utiliser pour contourner les contrôles d'accès et atteindre directement la mémoire noyau ou le stockage. L'option nodev fait ignorer par le noyau les fichiers de périphériques de ce montage, supprimant ce vecteur d'élévation et de divulgation sans inconvénient fonctionnel pour une partition de démarrage.
Ce que vérifie Pavois
Pavois inspecte le montage effectif via la ressource InSpec mount('/boot'), en lisant la table de montage vivante du noyau (comme findmnt//proc/mounts). Cela montre comment /boot est réellement monté à cet instant, capturant les remontages et surcharges à l'exécution qu'un examen du seul /etc/fstab pourrait manquer.
describe mount('/boot') do
its('options') { should include 'nodev' }
end
describe command("{ findmnt --fstab -no OPTIONS /boot 2>/dev/null; grep -hsE '[[:space:]]/boot[[:space:]]' /etc/fstab 2>/dev/null; systemctl show -p Options -- $(systemd-escape -p --suffix=mount /boot 2>/dev/null) 2>/dev/null; } | grep -ow 'nodev'") do
its('stdout') { should match(/\S/) }
endComment vérifier qu’elle est appliquée
Exécutez findmnt /boot (ou mount | grep ' /boot '). La sortie attendue liste nodev parmi les options de montage. Assurez-vous que l'option figure aussi dans la ligne /boot de /etc/fstab afin qu'elle persiste après les redémarrages.
Inspecter et investiguer
Il n'existe pas de journal d'événements dédié ; confirmez l'état vivant avec findmnt /boot. Les opérations de montage et de remontage apparaissent dans journalctl -k / dmesg, et la définition persistante se trouve dans /etc/fstab.
Remédiation
Aucun plan de durcissement automatisé n'est défini ; cela doit donc être appliqué manuellement : ajoutez nodev aux options de l'entrée /boot dans /etc/fstab, puis appliquez-le à chaud avec mount -o remount /boot (ou redémarrez). Vérifiez avec findmnt /boot.
Pavois applique ceci avec son propre moteur harden, le plan ci-dessous, pas un script shell :
| command | awk -v m=/boot -v o=nodev '$0!~/^[[:space:]]*#/&&$2==m{n=split($4,a,",");h=0;for(i=1;i<=n;i++)if(a[i]==o)h=1;if(!h)$4=$4","o}{print}' /etc/fstab >/etc/.fstab.pav && cat /etc/.fstab.pav >/etc/fstab && rm -f /etc/.fstab.pav; mountpoint -q /boot && mount -o remount,nodev /boot || true |
|---|---|
| name | mount-boot-nodev |
| not_if | awk -v m=/boot '$2==m&&$0!~/^[[:space:]]*#/{print $4}' /etc/fstab | tr , '\n' | grep -qx nodev |
| resource | exec |
pavois harden plan localoù la cible est local, un alias SSH user@hôte, ou un conteneur , Docs
Impact & précautions
C'est un changement à faible risque : /boot contient des noyaux, des images initramfs et des fichiers de chargeur d'amorçage, jamais de nœuds de périphériques ; nodev n'a donc aucun effet fonctionnel sur le fonctionnement normal ou le démarrage. Notez que /boot doit exister en tant que montage séparé pour que cela s'applique ; s'il fait partie du système de fichiers racine, placez l'option sur l'entrée appropriée. Comme toujours, éditez /etc/fstab avec soin et testez avec mount -a avant de redémarrer pour éviter un échec de montage au démarrage.