← Toutes les règles
SOCLE-CLD-FSP-091// File ownershipmoyenneétat du système de fichiers

Vérifier le propriétaire du fichier /boot/grub2/grub.cfg

Garantit que le fichier de configuration de démarrage GRUB2 /boot/grub2/grub.cfg appartient à root (uid 0).

Vérifié sur les métadonnées d’un chemin, mode, propriétaire, groupe, SUID/SGID.

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 4 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

Le fichier de configuration GRUB2 /boot/grub2/grub.cfg définit le noyau démarré, sa ligne de commande et un éventuel mot de passe de démarrage. Si un utilisateur non-root peut posséder (et donc réécrire) ce fichier, un attaquant peut ajouter des paramètres comme init=/bin/sh pour obtenir un shell root au démarrage, désactiver les protections du noyau ou supprimer le mot de passe GRUB, transformant un simple accès local en contrôle total de la machine, avant même le chargement du moindre contrôle d'accès. Restreindre la propriété à root (uid 0) garantit que seul le superutilisateur peut modifier les paramètres de démarrage.

Ce que vérifie Pavois

Pavois examine l'objet de fichier réel /boot/grub2/grub.cfg et vérifie que l'uid de son propriétaire est 0. Le contrôle est protégé par only_if, donc il est ignoré sur les systèmes (par ex. Debian/Ubuntu en UEFI) où ce chemin n'existe pas. Pavois lit le propriétaire effectif du fichier tel que le noyau le rapporte (stat), et non une valeur déclarée dans un manifeste de gestion de configuration, ainsi toute dérive introduite par un chown manuel, une restauration de sauvegarde ou un paquet défectueux est détectée immédiatement.

only_if { file('/boot/grub/grub.cfg').exist? }
describe file('/boot/grub/grub.cfg') do
  its('uid') { should eq 0 }
end

Comment vérifier qu’elle est appliquée

Exécutez stat -c '%U %u' /boot/grub2/grub.cfg. Sortie attendue : root 0. Vous pouvez aussi utiliser ls -l /boot/grub2/grub.cfg et vérifier que la troisième colonne (propriétaire) affiche root.

Inspecter et investiguer

Il n'existe pas de journal continu pour la propriété d'un fichier ; interrogez l'état courant avec stat /boot/grub2/grub.cfg. Si auditd surveille /boot (auditctl -w /boot -p wa), les changements de propriété apparaissent dans /var/log/audit/audit.log, recherchez le chemin avec grep grub.cfg /var/log/audit/audit.log.

Remédiation

Aucun plan de durcissement automatisé n'est défini pour cette règle, elle doit donc être appliquée manuellement : exécutez chown root:root /boot/grub2/grub.cfg en tant que root. (Sur les systèmes utilisant update-grub/grub2-mkconfig, le fichier est normalement régénéré avec root comme propriétaire.)

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

ownerroot
path/boot/grub/grub.cfg
resourcefile
pavois harden plan local

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

Impact & précautions

Si le fichier appartient à un utilisateur non-root, celui-ci peut réécrire le menu de démarrage et compromettre silencieusement le système au prochain redémarrage. Corriger la propriété présente peu de risques : un chown root:root ne modifie pas le contenu du fichier et n'empêchera pas le démarrage. Précaution : vérifiez que le chemin contient bien la configuration GRUB (et non un lien symbolique vers un autre emplacement) et évitez de changer le groupe/les permissions en même temps sauf intention contraire, afin de ne pas priver d'accès les outils qui le lisent légitimement.

Mapping des normes

NormeRéférenceTypeVersionConfiance
ANSSI BP-028R29direct2.0haute
CIS1.4.2, 2.2.6directper OS, see the benchmark tablehaute
NIST3.4.5, AC-6(1), CM-6(a)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