← Toutes les règles
SOCLE-CLD-FSP-119// File permissionsmoyenneétat d’inventaire

Vérifier les permissions du fichier de sauvegarde shadow

Garantit que le fichier de sauvegarde /etc/shadow- n'est ni lisible, ni modifiable, ni exécutable par le propriétaire, le groupe et les autres, sans bit spécial, soit le mode 0000.

Vérifié sur ce qui est installé ou enregistré, paquets présents/absents, bases de comptes.

Un PASS prouve✓ actif maintenant✓ sur disque✓ survit au rebootle verdict qualifié →
Debian 12CIS 1.1.0Debian 13CIS 1.0.0FedoraRHEL 10 / Rocky 10 / AlmaLinux 10RHEL 8 / Rocky 8 / AlmaLinux 8CIS 4.0.0RHEL 9 / Rocky 9 / AlmaLinux 9CIS 2.0.0Ubuntu 22.04CIS 3.0.0Ubuntu 24.04CIS 1.0.0Ubuntu 26.04
Un seul check, mappé sur 3 normes

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/shadow- est la sauvegarde de /etc/shadow et contient les hachages de mots de passe de chaque compte local. Tout accès en lecture par le groupe ou les autres expose ces hachages à un cassage hors ligne par force brute/dictionnaire, et tout accès en écriture permet à un attaquant d'effacer ou de remplacer un mot de passe (par ex. vider celui de root) qui devient effectif si la sauvegarde est restaurée. Ce fichier doit être en mode 0000 (accédé uniquement par root via des outils privilégiés) et appartenir à root.

Ce que vérifie Pavois

Pavois lit les bits de mode réels de /etc/shadow- via la ressource InSpec file. Les matchers sont volontairement stricts, même la lecture/écriture du propriétaire est rejetée, car le fichier ne doit être atteint que par root via des outils setuid (passwd, vipw -s), qui contournent le DAC. Inspecter l'inode réel détecte une sauvegarde laissée lisible par une copie ou restauration négligente. La garde only_if ignore le contrôle si aucune sauvegarde n'existe.

only_if { file('/etc/shadow-').exist? }
describe file('/etc/shadow-') 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 }
end

Comment vérifier qu’elle est appliquée

Exécutez stat -c '%a %U %G %n' /etc/shadow-. La sortie attendue est 0 root root /etc/shadow- (mode 0000).

Inspecter et investiguer

La sauvegarde est régénérée par les outils de gestion de mots de passe (passwd, chpasswd, usermod, vipw -s) ; leur activité apparaît dans /var/log/auth.log (Debian/Ubuntu) ou /var/log/secure (famille RHEL). Suivez l'accès en lecture/permission via une règle auditd et grep shadow- /var/log/audit/audit.log.

Remédiation

Aucune remédiation automatique n'est définie ; appliquez-la manuellement : chown root:root /etc/shadow- && chmod 0000 /etc/shadow-. Root le lit toujours via des outils setuid privilégiés, donc le mode 0000 ne casse rien.

Pavois applique ceci avec son propre moteur harden, le plan ci-dessous, pas un script shell :

mode0640
path/etc/shadow-
resourcefile
pavois harden plan local

où la cible est local, un alias SSH user@hôte, ou un conteneur , Docs

Impact & précautions

Risque en cas de non-application : des hachages de mots de passe exposés peuvent être cassés hors ligne, et une sauvegarde modifiable peut effacer ou remplacer un mot de passe (y compris celui de root) lors d'une restauration, une voie complète de prise de contrôle de compte. Précautions : le mode 0000 est la valeur par défaut historique de shadow et est transparent, root et les outils d'authentification setuid (passwd, su, login) le lisent quels que soient les bits DAC. Aucun service ne le lit directement, donc aucun risque de blocage.

Mapping des normes

NormeRéférenceTypeVersionConfiance
CIS2.2.6, 7.1.6directper OS, see the benchmark tablehaute
NISTAC-6 (1)support800-53 Rev 5 · 800-171 Rev 2 (pinned)moyenne
PCI DSS2.2.6support4.0.1moyenne

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.

Sources & références