Surveiller les accès au fichier /etc/passwd avec auditd
I. Présentation
Je vais ici vous présenter une méthode pour surveiller les accès au fichier "/etc/passwd". Je note que je viens de découvrir l'outils qui a l'air de contenir des contextes d'utilisation vraiment étendues et intéressants et qui sert globalement à surveiller (auditer) les accès aux fichiers sous une distribution Linux (En sachant que sous Linux, tout est fichier). Notre contexte d'utilisation sera ici le fichier "/etc/passwd" mais on pourrait tout à fait adapter le tutoriel pour un autre fichier.
II. Installation
Nous allons maintenant installer l’outil (qui est nativement présent sur les distributions CentOS/RHEL).
Sous CentOS :
yum install auditd
Sous Debian :
apt-get install auditd
On retrouvera donc ensuite la configuration d'auditd dans "/etc/audit/auditd.conf" (Je pense que je ferais un tutoriel plus complet pour décrire complètement auditd un peu plus tard) et l'état des règles qui régissent le périmètre de surveillance d'auditd dans "/etc/audit/auditd.rules". On peut noter les règles dans ce fichier puis recharger la configuration ou alors les noter à la volée, auquel cas elles ne survivront pas à un relancement du daemon ou à un redémarrage. Cela suit un peu le fonctionnement d'IPtables pour les connaisseurs.
III. Utilisation concrète
Nous allons maintenant configurer quelques règles qui vont nous permettre de surveiller les accès au fichier "/etc/passwd". On va pour cela aller rajouter quelques lignes dans le fichier contenant les règles de surveillance ("/etc/audit/auditd.rules"). Celui-ci contient déjà deux lignes :
On ajoute donc à la suite de ces lignes la ligne suivante
-w /etc/passwd -p wra -k fichier_login
Concrètement, on demande à audit de regarder ("w" pour watch) les actions "write", "read" et "append" sur le fichier que l'on résumera par "fichier_login". Une fois cette ligne ajoutée, on pourra recharger la configuration d'auditd avec la ligne suivante :
service auditd restart
On pourra regarder que nos règles sont bien prises en compte via la commande suivante :
auditctl -l
- "-l" pour lister les règles actives
Nous allons alors déclencher un évènement auditd en allant lire le fichier /etc/passwd par exemple avec la commande suivante :
cat /etc/passwd
On va ensuite aller afficher les logs auditd via la commande suivante
ausearch -f /etc/passwd -i
On regarde avec cette commande les évènements loguer par auditd concernant la surveillance du fichier ("-f") /etc/passwd en interpretant les GID et UID affichés ("-i"). Voici le résultat que nous pouvons avoir :
Nous voila avec beaucoup d'informations, on retrouve le fichier lu, on connait le lecteur (UID et GID), l'heure de lecture, etc ... Voilà pour une utilisation brève de cet outil qui, je pense, peut être d'une grande utilité au niveau sécurité si bien maîtrisé !
Hello,
apt-get installation –> apt-get install
audtid –> auditd
auserach –> ausearch
Je connaissais pas, fort intéressant ! Merci !
Tcho !
C’est corrigé, merci =)
Bonjour,
Très bon article.
Peu être une petite précisiant sur « En sachant que sous Linux, tout est fichier ». En effet sous Linux tout est fichier sauf les interfaces réseaux.
Votre site est vraiment agréable.
Bonne continuation