← Toutes les règles
SOCLE-CLD-IAM-057// Sudomoyenneconfig persistante

S'assurer que sudo ignore les commandes du répertoire courant - sudo ignore_dot

Active l'option Defaults ignore_dot afin que sudo ignore toute entrée . (répertoire courant) présente dans PATH lors de la résolution de la commande à exécuter.

Vérifié sur le contenu d’un fichier de configuration persistant, la source de vérité qui survit aux redémarrages.

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 24.04CIS 1.0.0Ubuntu 26.04
Un seul check, mappé sur 1 norme

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 . fait partie du PATH, un attaquant capable d'écrire dans un répertoire où travaille un utilisateur peut y déposer un binaire malveillant portant le nom d'une commande courante. Lorsque l'utilisateur l'exécute via sudo, le binaire piégé s'exécute avec les privilèges root. ignore_dot retire le répertoire courant du chemin de recherche, fermant cette voie d'élévation de privilèges trivialement exploitable.

Ce que vérifie Pavois

Pavois recherche dans l'arborescence sudoers active, /etc/sudoers et chaque fichier sous /etc/sudoers.d/, une directive non commentée Defaults ... ignore_dot. Comme sudo fusionne sa politique à partir du fichier principal et de tous les drop-ins, parcourir toute l'arborescence reflète la politique effective plutôt qu'un seul fichier qu'un drop-in ultérieur pourrait écraser.

describe command('grep -rqE \'^[^#]*Defaults[^#]*\bignore_dot\b\' /etc/sudoers /etc/sudoers.d/ 2>/dev/null && echo ok || echo ko') do
  its('stdout.strip') { should eq 'ok' }
end

Comment vérifier qu’elle est appliquée

Exécutez sudo grep -rE '^[^#]*Defaults.*ignore_dot' /etc/sudoers /etc/sudoers.d/. Une ligne correspondante, non commentée, confirme que l'option est active (et non annulée par !ignore_dot).

Inspecter et investiguer

Les appels à sudo sont journalisés dans /var/log/auth.log (Debian/Ubuntu) ou /var/log/secure (RHEL), et via journalctl -t sudo. Le chemin absolu de la commande journalisé permet de confirmer que sudo a résolu le binaire système attendu et non un binaire du répertoire courant.

Remédiation

Le plan de durcissement de Pavois écrit une ressource file dans /etc/sudoers.d/99-Pavois-ignore_dot contenant Defaults ignore_dot, appartenant à root:root avec le mode 0440, et la valide avec visudo -cf avant qu'elle ne prenne effet. Appliquez-le avec pavois harden apply. Le drop-in dédié isole la modification et la rend réversible.

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

contentDefaults ignore_dot
grouproot
mode0440
ownerroot
path/etc/sudoers.d/99-pavois-ignore_dot
resourcefile
verifyvisudo -cf %{path}
pavois harden plan local

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

Impact & précautions

ignore_dot ne casse que rarement quelque chose, car compter sur . dans le PATH de sudo est déjà une mauvaise pratique. Seuls sont concernés les usages exécutant délibérément un binaire du répertoire courant via sudo, ils devraient l'appeler par chemin absolu (sudo ./outil). Le drop-in est validé par visudo avant activation : une erreur de syntaxe ne peut donc pas corrompre sudoers ni vous verrouiller.

Mapping des normes

NormeRéférenceTypeVersionConfiance
ANSSI BP-028R39direct2.0haute

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