S'assurer que /dev/shm est configuré
Vérifie que /dev/shm est monté explicitement afin que des options de durcissement (nodev, nosuid, noexec) puissent être appliquées à la mémoire partagée.
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
/dev/shm est un tmpfs de mémoire partagée accessible en écriture à tous, où n'importe quel utilisateur peut déposer et exécuter des fichiers, comme /tmp. Le monter explicitement permet d'appliquer nodev, nosuid et noexec, le rendant inutile pour installer du code exécutable, bloquant les courses sur liens physiques contre des binaires setuid et réduisant son usage comme rampe de lancement d'attaques.
Ce que vérifie Pavois
Pavois utilise la ressource InSpec mount('/dev/shm'), lisant la table de montage effective (/proc/self/mountinfo) plutôt que /etc/fstab. Cela montre le tmpfs tel que le noyau l'a réellement monté, y compris les options appliquées à chaud ou via systemd, ce qu'une simple analyse de fstab ne pourrait confirmer.
describe mount('/dev/shm') do
it { should be_mounted }
endComment vérifier qu’elle est appliquée
Exécutez :
findmnt /dev/shm
Attendu : un tmpfs monté sur /dev/shm, idéalement avec nodev,nosuid,noexec dans la colonne des options. Aucune sortie signifie que /dev/shm n'est pas configuré comme un montage à part.
Inspecter et investiguer
Vérifiez le montage actif avec findmnt /dev/shm ou mount | grep /dev/shm ; la configuration persistante est dans /etc/fstab (ou une unité systemd dev-shm.mount). Les changements de montage sont visibles via journalctl -u dev-shm.mount et journalctl -k.
Remédiation
Aucun plan de durcissement automatisé n'est fourni pour cette règle : appliquez-la manuellement. Ajoutez une entrée tmpfs /dev/shm tmpfs defaults,nodev,nosuid,noexec 0 0 à /etc/fstab, puis mount -o remount /dev/shm. Contrairement aux autres partitions, /dev/shm est un tmpfs et ne nécessite aucun repartitionnement disque.
Pavois applique ceci avec son propre moteur harden, le plan ci-dessous, pas un script shell :
| command | # /dev/shm should be its OWN filesystem (isolation + mount options). This needs (re)partitioning , # offline disk/LVM work, not a safe runtime change. findmnt /dev/shm >/dev/null 2>&1 && echo '/dev/shm is already a mount point' || echo '/dev/shm is NOT separate' # Then: dedicate an LVM volume / disk to /dev/shm and add it to /etc/fstab. # /dev/shm can instead be a tmpfs, add: tmpfs /dev/shm tmpfs defaults,rw,nosuid,nodev,noexec 0 0 |
|---|---|
| reason | a separate /dev/shm filesystem needs partitioning/LVM/tmpfs, not a safe runtime change |
| resource | manual |
pavois harden plan localoù la cible est local, un alias SSH user@hôte, ou un conteneur , Docs
Impact & précautions
Ajouter noexec à /dev/shm est généralement sans danger, mais quelques applications (certains installeurs, runtimes ou bacs à sable) exécutent du code depuis la mémoire partagée et peuvent casser. Précautions : testez les services critiques après le remontage, et en cas d'échec identifiez le coupable avant d'assouplir l'option plutôt que de retirer noexec à l'aveugle. Le remontage est à chaud et réversible.
Mapping des normes
| Norme | Référence | Type | Version | Confiance |
|---|---|---|---|---|
| CIS | 1.1.2.2.1 | 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.