Vérifier les permissions du fichier /var/log/auth.log
Garantit que /var/log/auth.log n'est pas modifiable par le groupe/les autres, n'est pas lisible par les autres, et ne porte aucun bit d'exécution/setuid/setgid/sticky.
Vérifié sur le contenu d’un fichier de configuration persistant, la source de vérité qui survit aux redémarrages.
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, les sessions SSH et les événements d'authentification PAM. Si les autres peuvent le lire, un attaquant énumère les noms d'utilisateurs valides, les sources de connexion et les schémas d'authentification utiles pour des attaques ciblées ; il capture parfois même des mots de passe saisis par erreur à l'invite de nom d'utilisateur. Si des utilisateurs non-root peuvent y écrire, ils peuvent falsifier ou effacer les preuves d'authentification. Il ne doit être modifiable que par root et non lisible par les autres.
Ce que vérifie Pavois
Pavois lit le mode effectif de l'inode de /var/log/auth.log et vérifie l'absence d'écriture groupe/autres, l'absence de lecture pour les autres et l'absence de bits spéciaux. Lire le fichier réel vaut mieux qu'un manifeste : logrotate recrée ce journal à chaque rotation, donc son mode est déterminé à l'exécution et peut dériver de toute valeur par défaut documentée.
only_if { file('/var/log/auth.log').exist? }
describe file('/var/log/auth.log') 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_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 '%U %G %a' /var/log/auth.log. Attendu : propriétaire root, groupe adm, mode 640 (ou plus strict 600), aucune écriture pour le groupe/les autres et aucune lecture pour les autres.
Inspecter et investiguer
Ce fichier est le journal d'authentification : suivez-le avec tail -f /var/log/auth.log, ou utilisez journalctl -u ssh / journalctl _COMM=sudo pour les mêmes événements via le journal. Après rotation, revérifiez le mode du fichier nouvellement créé.
Remédiation
Aucune remédiation automatique n'est fournie pour cette règle. Restreignez manuellement : chown root:adm /var/log/auth.log && chmod 640 /var/log/auth.log. Pour que cela persiste après les rotations, assurez-vous que /etc/logrotate.d/rsyslog utilise une directive create 640 root adm.
Pavois applique ceci avec son propre moteur harden, le plan ci-dessous, pas un script shell :
| mode | 0640 |
|---|---|
| path | /var/log/auth.log |
| resource | file |
pavois harden plan localoù la cible est local, un alias SSH user@hôte, ou un conteneur , Docs
Impact & précautions
Des journaux d'authentification lisibles par tous divulguent les noms d'utilisateurs et les schémas de connexion ; des journaux modifiables permettent aux attaquants d'effacer leurs traces. Définir 640 root:adm est la valeur par défaut de Debian/Ubuntu et sans danger. Précaution : les membres du groupe adm (et les outils qui s'en servent) conservent l'accès en lecture, ne passez pas à 600 si un lecteur de journaux non-root ou un agent SIEM lit via le groupe adm, sous peine de perdre la visibilité. Vérifiez le mode create de logrotate pour que le durcissement survive à la prochaine rotation.
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.