Vérifier l'utilisateur propriétaire du fichier shadow
Garantit que la base des empreintes de mots de passe /etc/shadow appartient à root (UID 0).
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
Le fichier /etc/shadow liste les comptes locaux et stocke leurs empreintes de mots de passe et métadonnées de vieillissement. Si un compte non-root le possède, cet utilisateur pourrait lire les empreintes (permettant un cassage hors-ligne) ou les modifier pour définir/effacer des mots de passe, une voie directe de compromission d'identifiants et d'escalade de privilèges. Définir root (UID 0) comme propriétaire maintient ce fichier hautement sensible sous contrôle privilégié exclusif.
Ce que vérifie Pavois
Pavois inspecte le système de fichiers réel via la ressource InSpec file('/etc/shadow') et vérifie uid == 0, protégé par only_if. Lire le propriétaire réel de l'inode (et non un modèle de provisionnement) révèle l'état effectif sur le disque et détecte tout chown post-déploiement qui exposerait les empreintes de mots de passe.
only_if { file('/etc/shadow').exist? }
describe file('/etc/shadow') do
its('uid') { should eq 0 }
endComment vérifier qu’elle est appliquée
Exécutez stat -c '%U %u %n' /etc/shadow. Sortie attendue : root 0 /etc/shadow. Le 0 numérique confirme la propriété par root.
Inspecter et investiguer
Les distributions livrent généralement une règle d'audit sur ce fichier (clé identity) ; inspectez /var/log/audit/audit.log avec grep 'key="identity"'. Si absente, ajoutez auditctl -w /etc/shadow -p wa -k identity. Les changements de mot de passe sont aussi journalisés par PAM dans /var/log/auth.log / journalctl (passwd, pam_unix).
Remédiation
Aucune remédiation automatisée n'est fournie pour cette règle. Appliquez-la manuellement avec chown root /etc/shadow (en root ou via sudo) ; le fichier doit être en groupe shadow (Debian/Ubuntu) ou root (RHEL) et mode 0640/0000 selon la distribution, n'élargissez jamais ses permissions.
Pavois applique ceci avec son propre moteur harden, le plan ci-dessous, pas un script shell :
| owner | root |
|---|---|
| path | /etc/shadow |
| resource | file |
pavois harden plan localoù la cible est local, un alias SSH user@hôte, ou un conteneur , Docs
Impact & précautions
Un propriétaire non-root de /etc/shadow expose directement chaque empreinte de mot de passe et permet la prise de contrôle de comptes. Risque à l'application : très faible, la propriété root est la valeur par défaut et ne casse pas l'authentification. Précaution : ne corrigez que le propriétaire ; ne relâchez PAS le groupe/mode (Debian utilise le groupe shadow avec 0640, RHEL utilise 0000), les élargir est lui-même un écart.
Mapping des normes
| Norme | Référence | Type | Version | Confiance |
|---|---|---|---|---|
| ANSSI BP-028 | R50 | direct | 2.0 | haute |
| CIS | 2.2.6, 7.1.5 | direct | per OS, see the benchmark table | haute |
| NIST | AC-6(1), CM-6(a) | 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.