Vérifier l'utilisateur propriétaire du fichier /var/log/auth.log
Garantit que le journal d'authentification /var/log/auth.log est détenu par l'utilisateur syslog, afin que seul le démon de journalisation puisse y écrire.
Vérifié sur les métadonnées d’un chemin, mode, propriétaire, groupe, SUID/SGID.
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
/var/log/auth.log enregistre les tentatives de connexion, l'usage de sudo et les événements d'authentification PAM, précisément les données qu'un attaquant veut lire (pour récolter des noms d'utilisateurs et des horaires) ou écrire (pour falsifier ou effacer les traces d'une intrusion). Si le fichier n'appartient pas au compte dédié syslog, un processus non privilégié ou compromis pourrait altérer la piste d'authentification, détruisant les preuves nécessaires à l'investigation forensique et à la traçabilité.
Ce que vérifie Pavois
Pavois vérifie que le propriétaire de /var/log/auth.log est syslog, mais uniquement lorsque le fichier existe (only_if). Il lit le propriétaire réel rapporté par le système de fichiers (stat) sur la cible, pas une valeur par défaut de paquet ni un modèle logrotate, ainsi, même si une tâche cron, un agent d'expédition de logs ou un hook de rotation défaillant a fait un chown sur le fichier, le contrôle reflète l'état effectif sur le disque au moment du scan.
only_if { file('/var/log/auth.log').exist? }
describe command("stat -c %U /var/log/auth.log 2>/dev/null") do
its('stdout.strip') { should be_in ['root', 'syslog'] }
endComment vérifier qu’elle est appliquée
Confirmez le propriétaire avec :
stat -c '%U' /var/log/auth.log
La sortie attendue est syslog.
Inspecter et investiguer
Ce fichier est le journal d'authentification. Inspectez son contenu et sa propriété directement :
ls -l /var/log/auth.log
tail -n 50 /var/log/auth.log
Le démon rsyslog qui le possède peut être vérifié avec systemctl status rsyslog. Les changements de propriété peuvent être suivis, si des surveillances de fichiers auditd sont configurées, avec grep 'auth.log' /var/log/audit/audit.log.
Remédiation
Le plan de durcissement de Pavois utilise une ressource file pour définir le propriétaire de /var/log/auth.log sur syslog. Lancez pavois harden apply pour l'appliquer, le moteur Chef exécute l'équivalent de chown syslog /var/log/auth.log et laisse le fichier inchangé par ailleurs (contenu et groupe préservés).
Pavois applique ceci avec son propre moteur harden, le plan ci-dessous, pas un script shell :
| command | chown root /var/log/auth.log 2>/dev/null; true |
|---|---|
| name | log-owner-var-log-auth.log |
| not_if | stat -c %U /var/log/auth.log 2>/dev/null | grep -qxE 'root|syslog' |
| path | /var/log/auth.log |
| 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 : une propriété erronée permet à un utilisateur hors journalisation de lire des données d'authentification sensibles ou de modifier/effacer la piste d'audit, compromettant la traçabilité et la réponse aux incidents.
Précautions avant application : changer le propriétaire en syslog est sûr et sans interruption, rsyslog s'exécute déjà sous syslog sur Debian/Ubuntu, il continue donc d'écrire normalement. Assurez-vous que l'utilisateur syslog existe (c'est le cas sur une installation rsyslog standard) avant d'appliquer ; si vous expédiez les logs avec un agent s'exécutant sous un autre utilisateur, vérifiez que cet agent lit via le groupe ou root plutôt qu'en s'appuyant sur la propriété du fichier, afin que le chown ne casse pas la collecte.
Mapping des normes
| Norme | Référence | Type | Version | Confiance |
|---|---|---|---|---|
| CIS | 6.1.4.1, 6.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.