Vérifier l'utilisateur propriétaire du fichier /var/log/cloud-init.log
Garantit que le répertoire/fichier de log cloud-init /var/log/cloud-init est détenu par l'utilisateur syslog.
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 journal de cloud-init enregistre des informations détaillées de provisionnement et de débogage, métadonnées d'instance, configuration réseau, et parfois des données utilisateur injectées telles que des scripts d'amorçage ou des identifiants temporaires. S'il n'appartient pas à syslog, un utilisateur non privilégié pourrait lire des secrets ayant fuité dans la trace de provisionnement, ou altérer le journal pour masquer la façon dont une instance fraîchement provisionnée a été configurée ou compromise.
Ce que vérifie Pavois
Pavois vérifie que le propriétaire de /var/log/cloud-init est syslog, uniquement lorsque le chemin existe (only_if), car cloud-init est surtout présent sur les images cloud. Il lit le propriétaire réel du système de fichiers (stat) sur la cible plutôt qu'une valeur par défaut du paquet cloud-init, le résultat reflète donc l'état réel après toute rotation ou provisionnement au premier démarrage ayant pu réécrire la propriété.
only_if { file('/var/log/cloud-init.log').exist? }
describe command("stat -c %U /var/log/cloud-init.log 2>/dev/null") do
its('stdout.strip') { should be_in ['root', 'syslog'] }
endComment vérifier qu’elle est appliquée
Confirmez le propriétaire avec :
stat -c '%U' /var/log/cloud-init
La sortie attendue est syslog.
Inspecter et investiguer
Inspectez la propriété et la trace de provisionnement directement :
ls -l /var/log/cloud-init.log /var/log/cloud-init/
tail -n 50 /var/log/cloud-init.log
L'état du service cloud-init est affiché par cloud-init status et systemctl status cloud-init. Les changements de propriété peuvent être suivis avec grep 'cloud-init' /var/log/audit/audit.log si des surveillances de fichiers auditd sont configurées.
Remédiation
Le plan de durcissement de Pavois utilise une ressource file pour définir le propriétaire de /var/log/cloud-init sur syslog. Lancez pavois harden apply pour l'appliquer, le moteur Chef exécute l'équivalent de chown syslog /var/log/cloud-init, sans toucher au contenu ni au groupe.
Pavois applique ceci avec son propre moteur harden, le plan ci-dessous, pas un script shell :
| command | chown root /var/log/cloud-init.log 2>/dev/null; true |
|---|---|
| name | log-owner-var-log-cloud-init.log |
| not_if | stat -c %U /var/log/cloud-init.log 2>/dev/null | grep -qxE 'root|syslog' |
| path | /var/log/cloud-init.log |
| resource | exec |
pavois harden plan localoù la cible est local, un alias SSH user@hôte, ou un conteneur , Docs
Impact & précautions
Conséquences en cas de mauvaise configuration : des secrets injectés lors du provisionnement peuvent être lisibles par des utilisateurs non privilégiés, et la piste de provisionnement peut être altérée pour masquer une falsification sur une nouvelle instance.
Précautions avant application : le changement est à faible risque, cloud-init s'exécute tôt en root et ne dépend pas de ce propriétaire à l'exécution. Vérifiez que l'utilisateur syslog existe avant d'appliquer. Sur les hôtes où cloud-init est absent, la garde only_if ignore la règle, donc l'appliquer ne crée jamais de fichiers parasites.
Mapping des normes
| Norme | Référence | Type | Version | Confiance |
|---|---|---|---|---|
| CIS | 6.1.4.1, 6.2.2.1 | direct | per OS, see the benchmark table | 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.