← Toutes les règles
SOCLE-CLD-FSP-182// Filesystem (scan)moyenneétat du système de fichiers

Vérifier que les fichiers de commandes système ont root comme groupe propriétaire

Garantit que chaque exécutable des répertoires de commandes système (/bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin) a root comme groupe propriétaire.

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

Les binaires de /bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin et /usr/local/sbin sont exécutés par des utilisateurs privilégiés et des services système. Si l'un de ces fichiers appartient à un groupe non système, tout membre de ce groupe pourrait remplacer ou modifier le binaire et faire exécuter son code avec les privilèges de celui qui le lance, une voie directe vers l'élévation de privilèges ou la persistance. Les conserver avec root comme groupe garantit que seul le compte le plus fiable peut altérer les commandes système.

Ce que vérifie Pavois

Pavois lance find /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin -type f ! -group root et attend une sortie vide : tout chemin renvoyé est un binaire dont le groupe n'est pas root. Analyser les fichiers réellement sur le disque (et non la base de données de paquets) détecte les outils installés manuellement, les scripts déposés dans /usr/local/bin et les binaires dont le groupe a été modifié après installation, précisément les cas qu'un audit de manifeste de paquet manque.

describe command('timeout 90 find /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin -type f ! -group root 2>/dev/null') do
  its('exit_status') { should_not cmp 124 }  # timeout killed the scan: no evidence, not a pass
  its('stdout.strip') { should eq '' }
end

Comment vérifier qu’elle est appliquée

Lancez l'analyse manuellement :

find /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin -type f ! -group root

Sortie attendue : rien (vide). Tout chemin affiché est un binaire dont le groupe n'est pas root ; inspectez-le avec ls -l <fichier>.

Inspecter et investiguer

Listez les fautifs et leur groupe avec find /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin -type f ! -group root -printf '%g %p\n'. Sur les systèmes RPM, comparez aux métadonnées d'origine avec rpm -Vf <fichier> (drapeau G) ; sur Debian, les binaires empaquetés sont root par conception, donc un écart révèle une modification locale.

Remédiation

Aucun plan de durcissement automatisé n'est défini pour cette règle ; elle doit être appliquée manuellement. Après avoir identifié les fichiers fautifs, fixez leur groupe avec chgrp root <fichier> (uniquement pour les binaires qui doivent réellement appartenir à root). Cherchez pourquoi le groupe n'était pas root avant de le changer, un propriétaire inattendu peut signaler un binaire compromis ou mal installé.

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

commandfind /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin -type f \( ! -user root -o ! -group root \) -exec chown root:root {} + 2>/dev/null; true
namefix-bindir-ownership
not_iftest -z "$(find /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin -type f \( ! -user root -o ! -group root \) 2>/dev/null | head -1)"
resourceexec
pavois harden plan local

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

Impact & précautions

Risque en l'état : un binaire système modifiable permet à un membre d'un groupe non root de détourner tout processus privilégié qui l'exécute. Avant de corriger : confirmez que le fichier doit bien avoir root comme groupe, quelques paquets tiers livrent légitimement des utilitaires setgid appartenant à un groupe dédié, et leur appliquer chgrp root aveuglément peut casser l'outil ou son comportement setgid. Changez le propriétaire fichier par fichier, jamais par balayage récursif, et vérifiez d'abord l'intégrité du binaire (rpm -Vf / somme de contrôle connue).

Mapping des normes

NormeRéférenceTypeVersionConfiance
ANSSI BP-028R50direct2.0haute
NISTCM-5(6), CM-5(6).1support800-53 Rev 5 · 800-171 Rev 2 (pinned)moyenne
DISA STIGUBTU-22-232055, UBTU-24-300013directper OS STIG releasehaute

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