← Toutes les règles
SOCLE-CLD-FSP-099// File ownershipmoyenneétat du système de fichiers

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 PASS prouve✓ actif maintenant✓ sur disque✓ survit au rebootle verdict qualifié →
Debian 12CIS 1.1.0Debian 13CIS 1.0.0Ubuntu 22.04CIS 3.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

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'] }
end

Comment 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 :

commandchown root /var/log/cloud-init.log 2>/dev/null; true
namelog-owner-var-log-cloud-init.log
not_ifstat -c %U /var/log/cloud-init.log 2>/dev/null | grep -qxE 'root|syslog'
path/var/log/cloud-init.log
resourceexec
pavois harden plan local

où 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

NormeRéférenceTypeVersionConfiance
CIS6.1.4.1, 6.2.2.1directper OS, see the benchmark tablehaute

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