← Toutes les règles
SOCLE-CLD-FSP-130// File permissionsmoyenneconfig persistante

Vérifier les permissions de /boot/grub2/user.cfg

Garantit que le fichier de mot de passe GRUB /boot/grub2/user.cfg appartient à root et n'est ni lisible, ni modifiable, ni exécutable par le groupe ou les autres, sans bits setuid/setgid/sticky, afin que seul root puisse lire ou modifier le hachage du mot de passe d'amorçage.

Vérifié sur le contenu d’un fichier de configuration persistant, la source de vérité qui survit aux redémarrages.

Un PASS prouve? actif maintenant✓ sur disque✓ survit au rebootle verdict qualifié →
FedoraRHEL 10 / Rocky 10 / AlmaLinux 10RHEL 8 / Rocky 8 / AlmaLinux 8CIS 4.0.0RHEL 9 / Rocky 9 / AlmaLinux 9CIS 2.0.0
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

/boot/grub2/user.cfg stocke le mot de passe d'amorçage GRUB sous forme de hachage PBKDF2 (GRUB2_PASSWORD=grub.pbkdf2...). S'il est lisible par le groupe ou les autres, ce hachage peut être extrait et cassé hors ligne, mettant en échec le mot de passe d'amorçage qui protège le mode mono-utilisateur et l'édition des arguments du noyau. S'il est modifiable par le groupe ou les autres, un attaquant peut remplacer le hachage par un qu'il connaît et obtenir un accès interactif au chargeur d'amorçage. Restreindre l'accès à root maintient le mot de passe d'amorçage secret et inviolable.

Ce que vérifie Pavois

Pavois lit l'inode réel via file('/boot/grub2/user.cfg') et vérifie l'absence d'accès groupe/autres et de bits spéciaux, avec une garde only_if qui l'ignore si le fichier est absent (il n'existe qu'une fois un mot de passe GRUB défini). Inspecter les permissions effectives sur le disque détecte la dérive introduite lorsque le fichier est régénéré ou restauré depuis une sauvegarde, qui peut réinitialiser le mode, au lieu de supposer la valeur d'après la documentation.

only_if { file('/boot/grub2/user.cfg').exist? }
describe file('/boot/grub2/user.cfg') do
  it { should_not be_setuid }
  it { should_not be_executable.by('group') }
  it { should_not be_writable.by('group') }
  it { should_not be_readable.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' /boot/grub2/user.cfg. Attendu : mode 600 (ou plus strict, ex. 700), propriétaire root, groupe root, aucune lecture/écriture/exécution pour group ni other, et aucun bit setuid/setgid/sticky.

Inspecter et investiguer

Aucun journal de service ne s'applique ; inspectez avec stat /boot/grub2/user.cfg ou ls -l /boot/grub2/user.cfg. Pour détecter une altération, ajoutez une surveillance auditd (auditctl -w /boot/grub2/user.cfg -p wa -k grub) et recherchez key="grub" dans /var/log/audit/audit.log.

Remédiation

Aucune remédiation automatique n'est définie ; appliquez-la manuellement : chown root:root /boot/grub2/user.cfg && chmod 600 /boot/grub2/user.cfg. Relancez le scan pour confirmer que la règle passe.

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

mode0700
path/boot/grub2/user.cfg
resourcefile
pavois harden plan local

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

Impact & précautions

Risque si laissé mal configuré : un user.cfg lisible expose le hachage du mot de passe GRUB à un cassage hors ligne ; modifiable, il permet à un attaquant d'y placer un mot de passe connu et de s'approprier le chargeur d'amorçage. Précautions : durcir à root:root 600 est sans danger, GRUB lit ce fichier lors de l'amorçage précoce depuis le firmware, pas en tant qu'utilisateur normal, donc le mot de passe d'amorçage continue de fonctionner. Revérifiez après régénération de la configuration GRUB, qui peut réinitialiser le mode.

Mapping des normes

NormeRéférenceTypeVersionConfiance
ANSSI BP-028R29direct2.0haute
NIST3.4.5support800-53 Rev 5 · 800-171 Rev 2 (pinned)moyenne
CIS1.4.2directper OS, see the benchmark tablehaute

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