Vérifier que le umask de sudo est approprié - umask sudo
Force sudo à créer les fichiers avec un umask restrictif de 0027, afin que les commandes privilégiées ne laissent pas de fichiers lisibles par le groupe ou tous.
Vérifié sur le contenu d’un fichier de configuration persistant, la source de vérité qui survit aux redémarrages.
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 umask contrôle les permissions par défaut attribuées aux fichiers créés par un processus. Lorsque des commandes sont exécutées via sudo, elles tournent avec des privilèges élevés : tout fichier qu'elles créent peut donc hériter de droits trop permissifs si le umask est trop large. Définir Defaults umask=0027 (avec umask_override pour le forcer quel que soit le shell appelant) garantit que les commandes privilégiées créent des fichiers non lisibles ni modifiables par le groupe ou les autres, réduisant le risque que des données sensibles écrites par une commande root soient exposées à des utilisateurs non autorisés.
Ce que vérifie Pavois
Pavois vérifie la politique sudo effective en recherchant, dans /etc/sudoers et chaque drop-in de /etc/sudoers.d/, une ligne Defaults ... umask active. Comme sudo résout sa configuration depuis le fichier principal et tous les drop-ins @includedir, analyser l'ensemble (plutôt qu'un seul fichier) reflète la politique réellement appliquée par sudo à l'exécution.
describe command('grep -rqE \'^[^#]*Defaults[^#]*\bumask\b\' /etc/sudoers /etc/sudoers.d/ 2>/dev/null && echo ok || echo ko') do
its('stdout.strip') { should eq 'ok' }
endComment vérifier qu’elle est appliquée
Exécutez sudo grep -rE '^[^#]*Defaults[^#]*\bumask\b' /etc/sudoers /etc/sudoers.d/, vous devez obtenir une ligne telle que Defaults umask=0027. Vous pouvez aussi confirmer que le fichier est valide avec sudo visudo -cf /etc/sudoers.d/99-Pavois-umask (attendu : parsed OK).
Inspecter et investiguer
L'activité de sudo est journalisée dans /var/log/auth.log (Debian) ou /var/log/secure (RHEL) ; consultez les entrées avec journalctl _COMM=sudo. Le réglage umask lui-même ne génère pas de ligne de log, mais vous pouvez en observer l'effet sur les permissions des fichiers créés par les commandes lancées via sudo.
Remédiation
Le plan de durcissement de Pavois écrit un fichier drop-in /etc/sudoers.d/99-Pavois-umask (propriétaire root:root, mode 0440) contenant Defaults umask=0027 et Defaults umask_override, et le valide avec visudo -cf avant de l'activer. Appliqué avec pavois harden apply.
Pavois applique ceci avec son propre moteur harden, le plan ci-dessous, pas un script shell :
| content | Defaults umask=0027 Defaults umask_override |
|---|---|
| group | root |
| mode | 0440 |
| owner | root |
| path | /etc/sudoers.d/99-pavois-umask |
| resource | file |
| verify | visudo -cf %{path} |
pavois harden plan localoù la cible est local, un alias SSH user@hôte, ou un conteneur , Docs
Impact & précautions
Impact opérationnel faible : un umask à 0027 ne fait que restreindre les permissions des fichiers nouvellement créés ; il ne change ni les propriétaires ni les fichiers existants. Certains outils attendant une sortie lisible par le groupe depuis des commandes lancées via sudo pourraient être affectés : vérifiez les automatisations qui dépendent de fichiers lisibles par le groupe ou tous. Le drop-in est validé avec visudo -cf avant activation, n'éditez jamais sudoers directement sans visudo, car une erreur de syntaxe peut casser complètement sudo et vous priver de toute élévation de privilèges.
Mapping des normes
| Norme | Référence | Type | Version | Confiance |
|---|---|---|---|---|
| ANSSI BP-028 | R39 | 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.