Désactiver l'enregistrement des vidages mémoire (core dumps)
Définit kernel.core_pattern=|/bin/false pour que les processus qui plantent redirigent leur core vers un gestionnaire sans effet, de sorte qu'aucun core dump n'est jamais écrit sur disque.
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
Un core dump est une image mémoire écrite lorsque le noyau termine une application après un plantage. Cette image peut contenir des mots de passe, des clés, des jetons ou d'autres données sensibles en mémoire, et n'est généralement utile qu'aux développeurs qui déboguent une panne. Définir kernel.core_pattern=|/bin/false redirige chaque core vers /bin/false, qui se termine immédiatement sans rien écrire, aucun fichier de core n'est donc jamais stocké sur disque, éliminant une voie courante de fuite de données sensibles.
Ce que vérifie Pavois
Pavois lit la valeur effective du noyau via la ressource kernel_parameter (équivalent à sysctl kernel.core_pattern), et non /etc/sysctl.conf ou un drop-in *.conf. Sur les hôtes systemd, le pattern est souvent défini à |/usr/lib/systemd/systemd-coredump ... au démarrage, ce qui peut écraser silencieusement une valeur déclarée dans un fichier ; lire le noyau en cours d'exécution révèle le gestionnaire réellement en vigueur.
describe kernel_parameter('kernel.core_pattern') do
its('value') { should cmp '|/bin/false' }
end
describe command("grep -hsE '^[[:space:]]*kernel.core_pattern[[:space:]]*=[[:space:]]*\|/bin/false([[:space:]]|$)' /etc/sysctl.conf /etc/sysctl.d/*.conf /run/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf 2>/dev/null") do
its('stdout') { should match(/\S/) }
endComment vérifier qu’elle est appliquée
Exécutez sysctl kernel.core_pattern, sortie attendue kernel.core_pattern = |/bin/false.
Inspecter et investiguer
Lisez la valeur courante avec sysctl kernel.core_pattern ou cat /proc/sys/kernel/core_pattern. Avec le gestionnaire sans effet, les plantages sont toujours journalisés dans dmesg / journalctl -k, mais journalctl -u systemd-coredump ne montrera aucun dump stocké et coredumpctl list devrait être vide.
Remédiation
Le plan de durcissement de Pavois définit la clé sysctl kernel.core_pattern à |/bin/false, la persiste dans un drop-in géré et l'applique à chaud, de sorte que le noyau en cours d'exécution comme les démarrages futurs l'utilisent. Appliqué avec pavois harden apply.
Pavois applique ceci avec son propre moteur harden, le plan ci-dessous, pas un script shell :
| key | kernel.core_pattern |
|---|---|
| resource | sysctl |
| value | |/bin/false |
pavois harden plan localoù la cible est local, un alias SSH user@hôte, ou un conteneur , Docs
Impact & précautions
Risque opérationnel faible : vous perdez la capacité de collecter des core dumps pour déboguer les plantages sur cet hôte. Sur les systèmes systemd, cela écrase systemd-coredump, donc coredumpctl n'aura rien à afficher. Si vous devez diagnostiquer un plantage précis, restaurez temporairement le pattern par défaut, reproduisez, puis ré-appliquez. À noter qu'un service au démarrage peut réinitialiser core_pattern ; le drop-in géré le ré-impose. Réversible en modifiant la clé.
Mapping des normes
| Norme | Référence | Type | Version | Confiance |
|---|---|---|---|---|
| PCI DSS | 3.3.1.1 | support | 4.0.1 | moyenne |
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.