← Toutes les règles
SOCLE-CLD-GEN-043// Hardening (misc)moyenneétat du système de fichiers

Vérifier qu'aucun fichier .netrc n'existe

Garantit qu'aucun fichier .netrc n'existe sous /root ou /home, éliminant les identifiants distants stockés en clair.

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

Un fichier ~/.netrc stocke des identifiants (login et mot de passe en clair) pour des serveurs FTP/HTTP distants afin que des outils comme ftp, curl et git s'authentifient sans interaction. Comme les mots de passe ne sont pas chiffrés, quiconque lit le fichier, via une erreur de permissions, une sauvegarde ou la compromission du compte, récolte instantanément des identifiants réutilisables sur d'autres systèmes. Un hôte durci ne doit contenir aucun fichier .netrc ; utilisez plutôt un assistant d'identifiants ou un coffre de secrets.

Ce que vérifie Pavois

Pavois lance un find en direct sur /root et /home (un seul système de fichiers via -xdev) pour tout fichier nommé .netrc. Énumérer les fichiers réellement présents sur le disque détecte les fichiers d'identifiants dans chaque répertoire personnel, y compris les comptes récents ou non standard, au lieu de se fier à une liste fixe d'utilisateurs.

describe command('find /root /home -xdev -name .netrc 2>/dev/null') do
  its('stdout.strip') { should eq '' }
end

Comment vérifier qu’elle est appliquée

Recherchez tout fichier netrc :

  • find /root /home -xdev -name .netrc 2>/dev/null, la sortie attendue est vide (aucun chemin affiché).

Inspecter et investiguer

L'usage de .netrc n'est pas journalisé en soi ; la détection est donc basée sur le système de fichiers et idéalement couplée à une surveillance d'intégrité :

  • find /root /home -xdev -name .netrc -printf '%p %u %m\n', liste chaque fichier avec propriétaire et droits pour examen.
  • Si auditd est configuré, une surveillance des répertoires personnels (/var/log/audit/audit.log) enregistre la création de nouveaux fichiers cachés.

Remédiation

Aucun plan de durcissement automatisé n'est défini pour cette règle ; elle doit être appliquée manuellement : examinez chaque fichier trouvé (find /root /home -xdev -name .netrc), faites tourner tout identifiant qu'il expose car il doit être considéré comme compromis, puis supprimez le fichier avec rm <chemin>. Remplacez le flux de travail par un assistant d'identifiants ou un gestionnaire de secrets.

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

commandfind /home /root -maxdepth 2 -name .netrc 2>/dev/null # rm -f <path> per file (or chmod 600) after review
reasona .netrc holds credentials, review each before deleting
resourcemanual
pavois harden plan local

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

Impact & précautions

Risque si non appliqué : des identifiants en clair pour des services distants restent sur le disque, prêts à être récoltés et réutilisés pour des déplacements latéraux.

Précautions avant application : des tâches automatisées (sauvegardes, runners CI, scripts FTP) peuvent dépendre d'un .netrc. Identifiez ces consommateurs et migrez-les vers un coffre de secrets ou un assistant d'identifiants par appel avant de supprimer, sinon la tâche échouera. Considérez tout mot de passe trouvé comme déjà exposé et faites-le tourner dans tous les cas.

Mapping des normes

NormeRéférenceTypeVersionConfiance
CIS7.2.10, 7.2.9directper OS, see the benchmark tablehaute
NISTCM-6(a), IA-5(1)(c), IA-5(7), IA-5(h)support800-53 Rev 5 · 800-171 Rev 2 (pinned)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.

Sources & références