Auditer les activités du système

Sur une machine ayant des données sensible, il serait intéressant de surveiller les changements qui pourrait y avoir dan un dossier ou même dans un fichier.

Installation

Ce dont nous aurons besoin c'est du paquet suivant :

apt install auditd

Il n'y a pas besoin de la configuré d'avantage. Par défaut les paramètres sont correcte. Les activités aperçus seront listé dans le fichier /var/log/audit/audit.log

Il y a pas mal d'infos qui transite et le mieux est de surveiller avec la commande suivante (par exemple) :

tail -f /var/log/audit/audit.log  |grep -e 'SYSCALL' -e 'PATH'

Les règles

Temporaire

Elles peuvent s'ajouter, se lister, se supprimer, … grâce à auditctl

  • Lister les règles :
auditctl -l
  • Supprimer toutes les règles :
auditctl -D
  • Charger des règles depuis un fichier :
auditctl -R file.conf
  • Ajouter la règle permettant de surveiller les changements d'attibues dans le dossiers /tmp :
auditctl -a exit,always -F path=/tmp -F perm=a

L'option perm peut avoir ces options :

a = changement d'attribut
w = ecriture
r = lecture
x = execution

Définitive

Rien de plus simple. L'astuce est d'ajouter les règles temporairement pour les tester puis de les lister pour finalement les ajouter dans la configuration générale. Ainsi :

auditctl -l
-w /var/tmp -p a

On ajoute la règle à la fin du fichier suivant :

vim /etc/audit/audit.rules

Il reste plus qu'a redémarrer le service :

/etc/init.d/auditd reload

Analyser les logs

Chaque ligne dans le log décrit les appels système et on peut effectuer des recherches détaillés :

  • Sur un fichier spécifique :
ausearch -f /var/mon-fichier.txt
  • Convertir un appel système :
ausyscall x86_64 <$syscall_ID>