Vérifier les permissions du fichier /var/log/messages
Garantit que /var/log/messages n'est lisible/inscriptible que par root, aucun bit d'exécution, setuid, setgid ou sticky, ni lecture/écriture pour le groupe ou les autres, protégeant le journal système principal de RHEL.
Vérifié sur le contenu d’un fichier de configuration persistant, la source de vérité qui survit aux redémarrages.
Pourquoi cette règle
/var/log/messages est le journal système fourre-tout principal des systèmes de la famille RHEL et contient souvent des détails opérationnels sensibles (noms d'hôtes, erreurs de service, parfois des identifiants reproduits par des démons défaillants). S'il est lisible par le groupe ou les autres, des utilisateurs non privilégiés obtiennent une source de reconnaissance ; s'il est inscriptible, ils peuvent forger ou supprimer des entrées pour masquer une attaque. Le restreindre à root préserve à la fois la confidentialité et l'intégrité de la piste d'audit.
Ce que vérifie Pavois
Pavois lit l'inode réel de /var/log/messages et vérifie que le groupe et les autres n'ont ni lecture, ni écriture, ni exécution, et qu'aucun bit setuid/setgid/sticky n'est posé. Examiner l'objet réel du système de fichiers (et non /etc/rsyslog.conf) détecte un fichier dérivé vers 0644 après une édition manuelle ou un logrotate raté, le mode effectif est ce qui expose réellement les données.
only_if { file('/var/log/messages').exist? }
describe file('/var/log/messages') do
it { should_not be_executable.by('owner') }
it { should_not be_setuid }
it { should_not be_executable.by('group') }
it { should_not be_writable.by('group') }
it { should_not be_readable.by('group') }
it { should_not be_setgid }
it { should_not be_executable.by('other') }
it { should_not be_writable.by('other') }
it { should_not be_readable.by('other') }
it { should_not be_sticky }
endComment vérifier qu’elle est appliquée
Exécutez stat -c '%A %U:%G' /var/log/messages. Attendez -rw------- (0600) appartenant à root:root, aucun r/w/x pour le groupe ou les autres, et aucun bit s/t.
Inspecter et investiguer
Ce fichier est le journal ; inspectez-le avec tail -n 50 /var/log/messages ou journalctl (RHEL conserve aussi le journal). Pour détecter une altération des permissions, ajoutez auditctl -w /var/log/messages -p wa et consultez /var/log/audit/audit.log. État courant : ls -l /var/log/messages.
Remédiation
Aucun plan de durcissement automatisé n'est fourni pour cette règle ; elle doit donc être appliquée manuellement : chown root:root /var/log/messages et chmod 0600 /var/log/messages.
Pavois applique ceci avec son propre moteur harden, le plan ci-dessous, pas un script shell :
| mode | 0600 |
|---|---|
| path | /var/log/messages |
| resource | file |
pavois harden plan localoù la cible est local, un alias SSH user@hôte, ou un conteneur , Docs
Impact & précautions
Des permissions laxistes divulguent les internes du système à tout utilisateur local et permettent la réécriture des journaux. Précautions : assurez-vous que $FileCreateMode 0600 de rsyslog et la directive logrotate create 0600 root root correspondante sont définis, sinon la prochaine rotation réintroduit un mode permissif. Durcir à 0600 peut casser les agents de collecte de journaux qui lisent /var/log/messages en tant qu'utilisateur non-root (collecteurs de supervision, par exemple), exécutez ces agents en root ou accordez-leur l'accès via une ACL plutôt que d'élargir le mode du fichier.