Vérifier les permissions du fichier de sauvegarde passwd
Garantit que le fichier de sauvegarde /etc/passwd- n'est pas modifiable par le groupe/les autres et ne porte aucun bit exécutable ou spécial (setuid/setgid/sticky), soit le mode 0644 ou plus strict.
Vérifié sur ce qui est installé ou enregistré, paquets présents/absents, bases de comptes.
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
/etc/passwd- est la copie de sauvegarde de /etc/passwd et liste chaque compte, son UID/GID, son répertoire personnel et son shell de connexion. S'il est modifiable par le groupe/les autres, un attaquant pourrait falsifier un compte avec l'UID 0 ou changer un shell dans la sauvegarde ; si /etc/passwd est un jour restauré depuis celle-ci, ce changement devient effectif, une voie directe vers root. Le mode 0644 ou plus strict, appartenant à root, garde la sauvegarde résistante à la falsification.
Ce que vérifie Pavois
Pavois lit les bits de mode réels de /etc/passwd- via la ressource InSpec file, les permissions appliquées par le noyau, pas une valeur par défaut de paquet. Les fichiers de sauvegarde sont faciles à oublier et peuvent être laissés modifiables par des copies ad hoc ; inspecter l'inode réel le détecte. La garde only_if ignore le contrôle si aucune sauvegarde n'existe encore.
only_if { file('/etc/passwd-').exist? }
describe file('/etc/passwd-') 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_sticky }
endComment vérifier qu’elle est appliquée
Exécutez stat -c '%a %U %G %n' /etc/passwd-. La sortie attendue est 644 root root /etc/passwd- (ou plus strict, par exemple 600).
Inspecter et investiguer
La sauvegarde est régénérée par les outils de gestion de comptes (useradd, usermod, vipw, passwd) ; leur activité apparaît dans /var/log/auth.log (Debian/Ubuntu) ou /var/log/secure (famille RHEL). Suivez les changements de permissions via une règle auditd et grep passwd- /var/log/audit/audit.log.
Remédiation
Aucune remédiation automatique n'est définie ; appliquez-la manuellement : chown root:root /etc/passwd- && chmod u-x,g-wx,o-wx,a-s /etc/passwd- (un simple chmod 644 /etc/passwd- atteint le mode cible).
Pavois applique ceci avec son propre moteur harden, le plan ci-dessous, pas un script shell :
| mode | 0644 |
|---|---|
| path | /etc/passwd- |
| resource | file |
pavois harden plan localoù la cible est local, un alias SSH user@hôte, ou un conteneur , Docs
Impact & précautions
Risque en cas de non-application : une sauvegarde passwd modifiable peut être amorcée avec un compte UID 0 qui s'active à la restauration. Précautions : durcir ces permissions est sans danger, /etc/passwd- n'est lu que par les outils d'administration s'exécutant en root, et la valeur par défaut lisible par tous (0644) est acceptable car /etc/passwd lui-même est lisible par tous (il ne contient pas de hachages de mots de passe). Aucun service ne dépend d'un autre mode, donc aucun risque de blocage.
Mapping des normes
| Norme | Référence | Type | Version | Confiance |
|---|---|---|---|---|
| CIS | 2.2.6, 7.1.2 | direct | per OS, see the benchmark table | haute |
| NIST | AC-6 (1) | support | 800-53 Rev 5 · 800-171 Rev 2 (pinned) | moyenne |
| PCI DSS | 2.2.6 | 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.