Tous les fichiers et répertoires du home doivent avoir un propriétaire valide
Garantit que tous les fichiers et répertoires (récursivement) du home de chaque utilisateur interactif appartiennent à cet utilisateur.
Vérifié sur les métadonnées d’un chemin, mode, propriétaire, groupe, SUID/SGID.
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
Si les utilisateurs interactifs ne possèdent pas tous les fichiers de leur home, des utilisateurs non autorisés peuvent y accéder. Des fichiers appartenant à un autre UID (ou orphelins) sont aussi un fort indicateur de compromission, par exemple un logiciel malveillant déposé par un autre compte ou des restes d'un utilisateur supprimé.
Ce que vérifie Pavois
Pavois lit l'UID et le home de chaque utilisateur interactif depuis le /etc/passwd réel, puis exécute un find -P "$h" ! -uid "$u" ! -type l récursif (liens symboliques exclus). La comparaison à l'UID effectif du propriétaire repère les fichiers profonds appartenant à un autre compte ou à un compte supprimé n'importe où dans l'arborescence, ce qu'un contrôle de modèle de fichier manquerait.
describe command('awk -F: \'($3>=1000 && $3!=65534 && $6!="/"){print $3":"$4":"$6}\' /etc/passwd | while IFS=: read u g h; do [ -d "$h" ] && timeout 60 find -P "$h" ! -uid "$u" ! -type l -print 2>/dev/null; done | head -1') do
its('exit_status') { should_not cmp 124 } # timeout killed the scan: no evidence, not a pass
its('stdout.strip') { should eq '' }
endComment vérifier qu’elle est appliquée
Pour un utilisateur, exécutez find ~user ! -uid $(id -u user) ! -type l -printf '%p %u\n'. Attendu : aucune sortie. Les fichiers orphelins (sans entrée passwd) apparaissent avec un UID numérique via find ~user -nouser.
Inspecter et investiguer
L'appartenance est inspectée directement, non journalisée. Auditez récursivement avec find ~user ! -uid $(id -u user) -printf '%p %u\n' et repérez les orphelins avec find ~user -nouser. Avec l'audit d'intégrité activé, les événements chown sur les chemins du home apparaissent dans /var/log/audit/audit.log sous la clé de surveillance concernée.
Remédiation
Aucune remédiation automatique n'est fournie (remediation est vide) : appliquez manuellement. Pour chaque utilisateur signalé, reprenez la propriété sur tout son home, par ex. find ~user ! -uid $(id -u user) ! -type l -exec chown $(id -un user) {} +. Considérez les fichiers étrangers ou orphelins comme suspects et examinez-les avant un chown de masse.
Pavois applique ceci avec son propre moteur harden, le plan ci-dessous, pas un script shell :
| command | # Files under each home should be owned by that user: review, then chown -R deliberately per user. awk -F: '($3>=1000){print $1" "$6}' /etc/passwd |
|---|---|
| reason | re-owning a user's whole home is per-user and risky, verify before acting |
| resource | manual |
pavois harden plan localoù la cible est local, un alias SSH user@hôte, ou un conteneur , Docs
Impact & précautions
Des fichiers du home mal attribués peuvent fuiter des données et masquer une intrusion. Précautions avant application : relevez d'abord l'appartenance actuelle pour l'investigation (find ~user ! -uid $(id -u user) -printf '%p %u\n'), et méfiez-vous des collisions d'UID après migration et de la récursion dans des montages liés sous le home, un chown global pourrait réattribuer des fichiers appartenant ailleurs. Examinez les fichiers orphelins (-nouser) plutôt que de les revendiquer silencieusement.
Mapping des normes
| Norme | Référence | Type | Version | Confiance |
|---|---|---|---|---|
| ANSSI BP-028 | R50 | direct | 2.0 | haute |
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.