Vérifier l'utilisateur propriétaire du fichier /var/log/waagent.log
Garantit que le journal de l'agent invité Azure /var/log/waagent 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
/var/log/waagent.log est écrit par l'agent invité Linux Azure et enregistre le provisionnement, les installations d'extensions et l'activité de l'agent, des données pouvant révéler la configuration cloud de l'hôte et, occasionnellement, des détails d'amorçage sensibles. S'il n'appartient pas à syslog, un utilisateur non privilégié pourrait lire ces renseignements opérationnels ou altérer le journal pour masquer la façon dont la VM a été configurée ou compromise.
Ce que vérifie Pavois
Pavois vérifie que le propriétaire de /var/log/waagent est syslog, uniquement lorsque le fichier existe (only_if), waagent n'étant présent que sur les VM Azure. Il lit le propriétaire réel (stat) sur la cible plutôt qu'une valeur par défaut, ainsi un chown issu de l'agent, de la rotation ou d'un script de déploiement est détecté comme l'état effectif sur le disque.
only_if { file('/var/log/waagent.log').exist? }
describe command("stat -c %U /var/log/waagent.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/waagent.log
La sortie attendue est syslog.
Inspecter et investiguer
Ce fichier est lui-même le journal de l'agent. Inspectez la propriété et le contenu :
ls -l /var/log/waagent.log
tail -n 50 /var/log/waagent.log
L'état de l'agent est affiché par systemctl status walinuxagent (ou waagent). Les changements de propriété peuvent être suivis avec grep 'waagent' /var/log/audit/audit.log si des surveillances 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/waagent sur syslog. Lancez pavois harden apply pour l'appliquer, le moteur Chef exécute l'équivalent de chown syslog /var/log/waagent, 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/waagent.log 2>/dev/null; true |
|---|---|
| name | log-owner-var-log-waagent.log |
| not_if | stat -c %U /var/log/waagent.log 2>/dev/null | grep -qxE 'root|syslog' |
| path | /var/log/waagent.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 : une propriété erronée expose les détails de provisionnement Azure et permet à un processus hors journalisation d'altérer le journal de l'agent, masquant la configuration ou la compromission de la VM.
Précautions avant application : le changement est à faible risque. Notez que l'agent invité Azure (waagent) s'exécute et écrit généralement son journal en root, et non syslog ; sur une véritable VM Azure, forcer le propriétaire à syslog ne correspond au référentiel que si rsyslog est configuré pour posséder le fichier, vérifiez que l'agent peut toujours écrire après application afin de ne pas perturber le provisionnement. La garde only_if ignore entièrement les hôtes non-Azure.
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.