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 :

Auditd01

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

Auditd02

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 :

Auditd03

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é !

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Mickael Dorigny

Co-fondateur d'IT-Connect.fr. Auditeur/Pentester chez Orange Cyberdéfense.

Nombre de posts de cet auteur : 526.Voir tous les posts

3 thoughts on “Surveiller les accès au fichier /etc/passwd avec auditd

  • Hello,

    apt-get installation –> apt-get install
    audtid –> auditd
    auserach –> ausearch

    Je connaissais pas, fort intéressant ! Merci !

    Tcho !

    Répondre
  • 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

    Répondre

Répondre à Cascador Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.