Vérifier le propriétaire de cron.d
Garantit que le répertoire de drop-ins cron /etc/cron.d appartient à l'utilisateur root (UID 0).
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
Le répertoire /etc/cron.d contient des fragments de crontab exécutés en tant que root avec une planification complète et un champ utilisateur. S'il n'appartient pas à root, un utilisateur non privilégié pourrait y déposer un fichier de tâche et faire exécuter des commandes arbitraires en root au moment de son choix, une voie directe vers l'élévation de privilèges et la persistance. La propriété root de ce répertoire de drop-ins est essentielle.
Ce que vérifie Pavois
Pavois lit le propriétaire effectif de /etc/cron.d via la ressource file d'InSpec et vérifie uid == 0, uniquement si le répertoire existe (only_if). L'inspection de la propriété réelle de l'inode reflète l'état exact sur le disque et détecte une dérive due à des installations de paquets ou des changements manuels, au lieu d'une valeur par défaut supposée.
only_if { file('/etc/cron.d').exist? }
describe file('/etc/cron.d') do
its('uid') { should eq 0 }
endComment vérifier qu’elle est appliquée
Exécutez stat -c '%U %u' /etc/cron.d. Résultat attendu : root 0. Sinon, ls -ld /etc/cron.d doit afficher root dans la colonne du propriétaire.
Inspecter et investiguer
La propriété ne génère aucun journal de service. Vérifiez l'état avec stat -c '%U %u' /etc/cron.d. Pour tracer les changements, une surveillance auditd telle que auditctl -w /etc/cron.d -p wa -k cron-dir enregistre les écritures/changements d'attributs dans /var/log/audit/audit.log ; l'exécution cron est journalisée via journalctl -u cron (Debian/Ubuntu) ou journalctl -u crond (famille RHEL).
Remédiation
Aucun plan de durcissement automatisé n'est défini pour cette règle ; elle doit être appliquée manuellement : exécutez chown root /etc/cron.d en root pour fixer le propriétaire à root.
Pavois applique ceci avec son propre moteur harden, le plan ci-dessous, pas un script shell :
| owner | root |
|---|---|
| path | /etc/cron.d |
| resource | file |
pavois harden plan localoù la cible est local, un alias SSH user@hôte, ou un conteneur , Docs
Impact & précautions
En cas de mauvaise configuration, un utilisateur non root pourrait y placer un fichier de tâche exécutant des commandes arbitraires en root, menant à une élévation ou une persistance.
Précautions avant application : chown root /etc/cron.d est sûr et réversible, sans redémarrage de service. Appliquez-le au répertoire ; si vous utilisez -R, examinez les fragments existants pour ne pas réattribuer des fichiers gérés par des paquets.
Mapping des normes
| Norme | Référence | Type | Version | Confiance |
|---|---|---|---|---|
| CIS | 2.2.6, 2.4.1.7, 2.4.1.8 | direct | per OS, see the benchmark table | haute |
| NIST | AC-6(1), CM-6(a) | support | 800-53 Rev 5 · 800-171 Rev 2 (pinned) | moyenne |
| PCI DSS | 2.2.6 | 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.