linux_auditd

Auditd & Auditbeat - Surveillance système d'un poste linux

CréationNicolas THOREZ 2020/02/14 14:07

auditd est quasiment une référence en terme d'audit de système Linux. Il enregistre toutes les informations, actions, des utilisateurs et des services. L'analyse de ces logs permet alors à un administrateur système se savoir précisément ce qu'il s'est passé sur une machine.

Compatibilité

auditd est compatible PCI-DSS.

auditd est livré avec des outils de gestion tels que :

  • ausearch : permet de chercher des informations dans les logs de auditd.
  • aureport : affiche un rapport (statistique) des données de auditd.

Les logs de auditd dépendent des règles appliquées et ces derniers peuvent être assez difficile à comprendre. C'est pour cela, qu'on traitera les données de auditd au travers de ElasticSearch & Kibana via le plugin auditbeat.

  • Référence : Elastic
  • Tutoriel pour l'installation de ElasticSearch & Kibana : Lien

Environnement

Cette procédure a été réalisée et testée sur une VM debian 9 sur ESXi, une debian 10 sur ESXi et un ubuntu 18.04.4 LTS sur Hyper-V.

Droits

Cette procédure nécessite des droits root. Faîtes donc attention à ce que vous faîtes.
  • On met à jour le cache APT :

apt-get update

  • On installe les paquets nécessaires :

apt-get install -y auditd audispd-plugins

  • Status :

systemctl status auditd.service

  • Démarrage

systemctl start auditd.service

  • Arrêt :

systemctl stop auditd.service

Les règles peuvent être gérées directement via la ligne de commande avec auditctl. Par exemple :

  • L'option -l, liste les règles existantes :

auditctl -l

  • L'option -D, supprime toutes les règles existantes :

auditctl -D

  • Pour surveiller le fichier /etc/passwd :

auditctl -a exit,always -F path=/etc/passwd -F perm=wa

Je vous laisse vous référer à la documentation de auditd pour connaître l'ensemble des commandes.

Les règles peuvent aussi être inscrites directement dans le fichier de configuration /etc/audit/rules.d/audit.rules. Il existe par ailleurs sur Internet des exemples de fichier de configuration :

Redémarrage

N'oubliez pas de redémarrer auditd après chaque modification de règles afin qu'elles soient prise en compte.

Si vous souhaitez n'utiliser que auditd et ses outils, vous pouvez vous arrêter là. Les données de auditd sont enregistrées dans le fichier /var/log/audit/audit.log.

Sinon, il faut préparer auditd pour qu'il soit piloté par auditbeat et Kibana. Pour cela :

  • On arrête le service :

systemctl stop auditd.service

  • On désactive le démarrage automatique de auditd

systemctl disable auditd

On peut désormais installer auditbeat :

  • A partir des sources ajoutées avec ElasticSearch, on met à jour le dépôt APT :

apt-get update

  • On installe les paquets nécessaires :

apt-get install -y auditbeat

systemctl daemon-reload
systemctl enable auditbeat

  • Status :

systemctl status auditbeat.service

  • Démarrage

systemctl start auditbeat.service

  • Arrêt :

systemctl stop auditbeat.service

  • On commence par arrêter le service :

systemctl stop auditbeat.service

  • Le fichier de configuration de auditbeat est /etc/auditbeat/auditbeat.yml.
  • A l'intérieur, on trouve la section Modules configuration, suivie de auditbeat.modules et enfin module: auditd.
  • C'est là que l'on peux copier les règles inscrites dans le fichier de configuration de auditd à savoir /etc/audit/rules.d/audit.rules.
  • Une fois modifié, on peut vérifier les règles inscrite avec la commande :

auditbeat show auditd-rules

  • On peut aussi tester ces règles avec la commande :

auditbeat -e test config

  • Si tout va bien, on arrête le test CTRL+C et on redémarre le service :

systemctl start auditbeat.service

  • On édite le fichier de configuration :

nano /etc/auditbeat/auditbeat.yml

  • On cherche avec CTRL+W la section setup.kibana
  • On décommente le champ host et on modifie sa valeur avec l'adresse du serveur Kibana sans oublier le port.
  • On cherche avec CTRL+W la section output.elasticsearch
  • On décommente le champ hosts et on modifie sa valeur avec l'adresse du serveur Kibana sans oublier le port.
  • On enregistre CTRL+O et on quitte CTRL+X
  • On redémarre le service :

systemctl restart auditbeat.service

  • On commence par ce rendre sur la page web de Kibana.
  • Dans le bandeau de gauche, on clique sur le menu SIEM :
  • Si la page SIEM n'a jamais reçu de données, on cliquera sur le gros bouton bleu Add Data au milieu de la page sinon se bouton se trouve en haut à droite de la page :
  • Dans la nouvelle page, on clique sur Auditbeat :
  • Tout en bas de la page, on clique sur Check data (ça peut demander quelques minutes depuis la configuration de auditbeat avant que Kibana ne reçoive des données) :
  • Si tout va bien, un message nous confirme la réception des données. On peut alors repartir dans le menu SIEM en cliquant sur le bouton SIEM App :
  • Plus bas dans la page de SIEM, on peut voir un graphique statistique des données reçues ainsi que le nombre de données systèmes et réseaux. On pourra alors cliquer sur :
    • View events pour chercher et analyser les données.
    • View hosts pour avoir une analyse par hôte.
    • View network pour avoir une analyse par réseau.
  • On cliquera donc sur View events pour analyser nos données. La nouvelle page présente quelques graphiques mais surtout une carte Events en bas de page. La barre de recherche et les filtres nous permettent alors de trouver les évènements qui nous intéressent. La recherche se fait au moyen du langage Kibana Query Language (KQL) par défaut mais on peut aussi utiliser le langage Lucene.

Installation

Félicitation. Vos données d'audit sont désormais intégrées à Kibana.

L'article suivant donne quelques requête de recherche pour certains cas pratiques (Lien)

Entrer votre commentaire. La syntaxe wiki est autorisée:
 
  • linux_auditd.txt
  • Dernière modification : 2021/03/05 20:39
  • de nekan