Vérifier l'utilisateur propriétaire du fichier /var/log/messages
Garantit que le journal système général /var/log/messages est détenu par root (UID 0).
Vérifié sur les métadonnées d’un chemin, mode, propriétaire, groupe, SUID/SGID.
Pourquoi cette règle
/var/log/messages est le journal système général principal sur les systèmes de la famille RHEL, enregistrant les messages du noyau, les événements de service et les erreurs. S'il n'appartient pas à root (UID 0), un processus non privilégié ou compromis pourrait lire des détails opérationnels sensibles ou modifier/supprimer des entrées, masquant les signes d'une panne ou d'une intrusion et compromettant l'analyse d'incident.
Ce que vérifie Pavois
Pavois vérifie que l'UID propriétaire de /var/log/messages est 0 (root) lorsque le fichier existe (only_if), ce journal étant spécifique à RHEL. Il lit le propriétaire réel du système de fichiers (stat) sur la cible plutôt qu'une valeur par défaut de paquet, ainsi un chown issu de la rotation des logs ou d'un outil de déploiement est rapporté comme l'état effectif sur le disque.
only_if { file('/var/log/messages').exist? }
describe command("stat -c %U /var/log/messages 2>/dev/null") do
its('stdout.strip') { should be_in ['root', 'root'] }
endComment vérifier qu’elle est appliquée
Confirmez le propriétaire avec :
stat -c '%U %u' /var/log/messages
La sortie attendue est root 0.
Inspecter et investiguer
Ce fichier est lui-même le journal système principal. Inspectez la propriété et le contenu :
ls -l /var/log/messages
tail -n 50 /var/log/messages
L'écrivain est rsyslog (systemctl status rsyslog). Les changements de propriété peuvent être suivis avec grep 'messages' /var/log/audit/audit.log si des surveillances auditd sont configurées.
Remédiation
Aucun plan de remédiation automatisé n'est défini ; cette règle doit donc être appliquée manuellement. Restaurez la propriété root avec :
chown root /var/log/messages
(pavois harden apply ne modifiera pas ce fichier tant qu'une ressource de remédiation n'aura pas été ajoutée.)
Pavois applique ceci avec son propre moteur harden, le plan ci-dessous, pas un script shell :
| command | chown root /var/log/messages 2>/dev/null; true |
|---|---|
| name | log-owner-var-log-messages |
| not_if | stat -c %U /var/log/messages 2>/dev/null | grep -qxE 'root|root' |
| path | /var/log/messages |
| resource | exec |
pavois harden plan localoù la cible est local, un alias SSH user@hôte, ou un conteneur , Docs
Impact & précautions
Conséquences en cas de mauvaise configuration : un propriétaire non-root peut lire des données opérationnelles ou altérer le journal système principal, masquant pannes ou intrusions sur les hôtes de la famille RHEL.
Précautions avant application : réattribuer à root est sûr, sur RHEL, rsyslog écrit /var/log/messages en root par défaut, donc le correctif correspond au propriétaire attendu à l'exécution et n'interrompt pas la journalisation. La garde only_if ignore les hôtes où le fichier est absent.