S'assurer que tous les groupes du système ont un GID unique
Garantit que chaque groupe du système possède un GID distinct, afin qu'aucun couple de groupes ne se confonde en une seule identité.
Vérifié sur ce qui est installé ou enregistré, paquets présents/absents, bases de comptes.
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 noyau applique les permissions par GID, pas par nom de groupe. Si deux entrées de groupe partagent le même GID, le système les considère comme le même groupe : un fichier possédé par l'un est accessible aux membres de l'autre, et les pistes d'audit ne peuvent plus attribuer un accès à un seul groupe. Des GID uniques sont ce qui rend le contrôle d'accès par groupe et la traçabilité réellement utiles.
Ce que vérifie Pavois
Pavois lit toutes les entrées de groupe résolues et signale tout GID apparaissant plus d'une fois. Examiner la base de groupes effective (telle qu'exposée par le système) plutôt que de se fier à un seul fichier garantit que les doublons introduits via des sources NSS sont aussi détectés.
describe command('awk -F: \'($3 in s){print $3}{s[$3]}\' /etc/group') do
its('stdout.strip') { should eq '' }
endComment vérifier qu’elle est appliquée
Listez tout GID dupliqué :
awk -F: '($3 in s){print $3}{s[$3]}' /etc/group, la sortie attendue est vide.getent group | cut -d: -f3 | sort | uniq -d, ne doit rien afficher (aucun GID répété).
Inspecter et investiguer
Les modifications de groupes sont visibles dans les journaux de gestion des comptes :
grep -E 'groupadd|groupmod' /var/log/auth.log(Debian/Ubuntu) //var/log/secure(RHEL), affiche la création ou la renumérotation des groupes.getent groupfournit la carte de référence des GID courants.
Remédiation
Aucun plan de durcissement automatisé n'est défini pour cette règle ; elle doit être appliquée manuellement : choisissez l'un des deux groupes en conflit et attribuez-lui un GID libre avec groupmod -g <nouveaugid> <groupe>, puis réattribuez ses fichiers (find / -xdev -gid <ancien gid> -exec chgrp <groupe> {} +). Choisissez le groupe à renuméroter selon celui qui possède le moins de fichiers.
Pavois applique ceci avec son propre moteur harden, le plan ci-dessous, pas un script shell :
| command | cut -d: -f3 /etc/group | sort | uniq -d # groupmod -g <new-gid> <group> (and fix file groups), manual |
|---|---|
| reason | duplicate GIDs need a deliberate renumber, never auto-change a GID |
| resource | manual |
pavois harden plan localoù la cible est local, un alias SSH user@hôte, ou un conteneur , Docs
Impact & précautions
Risque si non appliqué : deux groupes partageant un GID fusionnent silencieusement leurs droits d'accès et détruisent la traçabilité par groupe.
Précautions avant application : avant groupmod, inventoriez les fichiers possédés par l'ancien GID afin de pouvoir les re-chgrp ; sinon ils deviennent orphelins ou retombent sous le groupe survivant. Évitez de renuméroter les groupes système codés en dur par des paquets ou services ; préférez renuméroter le groupe créé localement. Appliquez pendant une fenêtre de maintenance et vérifiez les services concernés après la modification.
Mapping des normes
| Norme | Référence | Type | Version | Confiance |
|---|---|---|---|---|
| CIS | 7.2.6, 8.2.1, 7.2.5 | direct | per OS, see the benchmark table | haute |
| PCI DSS | 8.2.1 | 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.