Ajouter l'option nosuid à /boot/efi
Monte la partition système EFI /boot/efi avec l'option nosuid, afin que le noyau ignore les bits setuid/setgid de tout exécutable qui y serait stocké.
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
La partition système EFI contient des fichiers de chargeur d'amorçage, pas des programmes utilisateur, et ne doit jamais être une source de binaires privilégiés. Sans nosuid, un attaquant capable d'écrire un binaire setuid-root sur /boot/efi obtient une voie d'élévation de privilèges. Monter avec nosuid fait ignorer par le noyau l'effet setuid/setgid de tout fichier de cette partition, fermant ce vecteur d'élévation sans aucun impact sur le démarrage.
Ce que vérifie Pavois
Pavois inspecte le montage effectif via la ressource InSpec mount('/boot/efi'), qui lit la table de montage vivante du noyau (les mêmes données que findmnt//proc/mounts). Cela reflète la manière dont le système de fichiers est réellement monté en ce moment, y compris les options appliquées à l'exécution, plutôt que de se fier à /etc/fstab, qui peut diverger de l'état en cours.
describe mount('/boot/efi') do
its('options') { should include 'nosuid' }
end
describe command("{ findmnt --fstab -no OPTIONS /boot/efi 2>/dev/null; grep -hsE '[[:space:]]/boot/efi[[:space:]]' /etc/fstab 2>/dev/null; systemctl show -p Options -- $(systemd-escape -p --suffix=mount /boot/efi 2>/dev/null) 2>/dev/null; } | grep -ow 'nosuid'") do
its('stdout') { should match(/\S/) }
endComment vérifier qu’elle est appliquée
Exécutez findmnt /boot/efi (ou mount | grep /boot/efi). La sortie attendue liste nosuid parmi les options de montage. Vérifiez qu'elle est aussi persistée dans /etc/fstab afin de survivre à un redémarrage.
Inspecter et investiguer
Il n'existe pas de journal d'événements dédié ; vérifiez l'état vivant avec findmnt /boot/efi. Les actions de montage/remontage sont visibles 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 nosuid aux options de l'entrée /boot/efi dans /etc/fstab, puis appliquez-le à chaud avec mount -o remount /boot/efi (ou redémarrez). Vérifiez avec findmnt /boot/efi.
Pavois applique ceci avec son propre moteur harden, le plan ci-dessous, pas un script shell :
| command | awk -v m=/boot/efi -v o=nosuid '$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/efi && mount -o remount,nosuid /boot/efi || true |
|---|---|
| name | mount-boot-efi-nosuid |
| not_if | awk -v m=/boot/efi '$2==m&&$0!~/^[[:space:]]*#/{print $4}' /etc/fstab | tr , '\n' | grep -qx nosuid |
| resource | exec |
pavois harden plan localoù la cible est local, un alias SSH user@hôte, ou un conteneur , Docs
Impact & précautions
Ce changement présente un faible risque : la partition EFI ne contient que des binaires de chargeur d'amorçage exécutés par le firmware, et non par l'OS via setuid ; nosuid n'affecte donc pas le démarrage. La principale précaution est d'éditer /etc/fstab avec soin, une entrée mal formée peut empêcher le système de monter ses systèmes de fichiers au démarrage. Testez la ligne avec mount -a (et findmnt /boot/efi) avant de redémarrer, et gardez un support de récupération à portée de main.