Apprenez l'audit du système Linux avec l'outil Auditd sur CentOS / RHEL

Apprenez l'audit du système Linux avec l'outil Auditd sur CentOS / RHEL

L'audit du système fait simplement référence à une analyse approfondie d'un système ciblé spécifique: un audit est composé d'un examen des différentes parties qui comprennent ce système, avec une évaluation critique (et des tests si nécessaire) dans différents domaines d'intérêt.

Lire aussi: Lynis - outil d'audit et de numérisation de sécurité pour les systèmes Linux

L'un des sous-systèmes critiques sur Rhel / centos le système d'audit Linux communément appelé auditd. Il met en œuvre un moyen de suivre les informations pertinentes à la sécurité sur un système: il utilise des règles préconfigurées pour collecter de grandes quantités d'informations sur les événements qui se produisent sur le système, et les enregistre dans un fichier journal, créant ainsi un essai d'audit.

Il peut enregistrer des informations telles que la date et l'heure, le type et le résultat d'un événement; utilisateurs qui ont provoqué l'événement, toute modification apportée aux fichiers / bases de données; Utilisations des mécanismes d'authentification du système, tels que PAM, LDAP, SSH et autres.

Auditd enregistre également toutes les modifications apportées aux fichiers de configuration d'audit ou à toute tentative d'accès à des fichiers journaux d'audit, et à tout effort pour importer ou exporter des informations dans ou depuis le système plus beaucoup d'autres informations liées à la sécurité.

Pourquoi le système d'audit Linux est-il important?

  1. Il ne nécessite pas de programmes ou de processus externes pour s'exécuter sur un système, ce qui la rend autonome.
  2. Il est hautement configurable vous permet donc d'afficher tout fonctionnement du (s).
  3. Il aide à détecter ou à analyser les compromis potentiels d'un système.
  4. Il est capable de travailler comme système de détection indépendante.
  5. Il peut fonctionner avec des systèmes de détection d'intrusion pour permettre la détection des intrusions.
  6. C'est un outil essentiel pour auditer les enquêtes médico-légales.

Les composants du système d'audit Linux

Le système d'audit a deux composants centraux, à savoir:

  • Applications et utilitaires / outils de l'espace utilisateur, et
  • Traitement des appels système côté noyau - Ceci accepte les appels système à partir d'applications d'espace utilisateur et les transmet à travers trois types de filtres, à savoir: utilisateur, tâche, sortie, ou exclure.

La partie la plus importante est le espace utilisateur Audit démon (auditd) qui rassemble des informations basées sur des règles préconfigurées, à partir du noyau et génère des entrées dans un fichier journal: le journal par défaut est / var / log / audit / audit.enregistrer.

De plus, le audispd (démon de répartiteur d'audit) est un multiplexeur d'événements qui interagit avec auditd et envoie des événements à d'autres programmes qui souhaitent effectuer un traitement d'événements en temps réel.

Il y a un certain nombre de espace utilisateur Outils pour gérer et récupérer des informations du système d'audit:

  • auditctl - un utilitaire pour contrôler le système d'audit du noyau.
  • ausearch - Un utilitaire pour rechercher des fichiers journaux d'audit pour des événements spécifiques.
  • aureport - Un utilitaire pour créer des rapports d'événements enregistrés.

Comment installer et configurer l'outil d'audit dans RHEL / CENTOS / FEDORA

Assurez-vous d'abord de vérifier que l'outil d'audit est installé sur votre système à l'aide de la commande RPM et de l'utilitaire GREP comme suit:

# RPM -QA | Audit Grep 
Vérifier l'outil Auditd

Si vous n'avez pas les packages ci-dessus installés, exécutez cette commande en tant qu'utilisateur racine pour l'installer.

# Yum Installer l'audit 

Ensuite, vérifiez si auditd est activé et en cours d'exécution, émettez les commandes SystemCTL ci-dessous sur le terminal.

--------------- Sur Centos / Rhel 7 --------------- # SystemCTL AUDITD IS-RÉPADÉ # SystemCTL Status Auditd # SystemCTL Démarrer Auditd [Démarrage] # SystemCTL Activer AUDITD [Activer] --------------- Sur Centos / Rhel 6 --------------- # Service Auditd Status # Service Auditd Démarrer [Démarrer] # ChkConfig Auditd sur [Activer] 
Vérifier l'état de l'outil Auditd

Maintenant, nous verrons comment configurer auditd Utilisation du fichier de configuration principal / etc / Audit / Auditd.confli. Les paramètres ici vous permettent de contrôler la façon dont le service s'exécute, comme la définition de l'emplacement du fichier journal, le nombre maximum de fichiers journaux, le format de journal, comment gérer les disques complets, la rotation du journal et bien d'autres options.

# vi / etc / Audit / Auditd.confli 

À partir de l'échantillon de sortie ci-dessous, les paramètres sont explicites.

Fichier de configuration auditd

Comprendre les règles d'audit

Comme nous l'avons mentionné plus tôt sur, auditd utilise des règles pour recueillir des informations spécifiques du noyau. Ces règles sont essentiellement auditctl Options (voir la page de l'homme) que vous pouvez pré-configurer les règles dans le / etc / audit / règles.D / Audit.règles fichier (sur Centos 6, utilisez le / etc / audit / audit.règles fichier), afin qu'ils soient chargés au démarrage.

Il existe trois types de règles d'audit que vous pouvez définir:

  • Règles de contrôle - Ceux-ci permettent de modifier le comportement du système d'audit et quelques-unes de ses configurations.
  • Règles du système de fichiers (également appelé Watchs de fichiers) - Activer l'audit de l'accès à un certain fichier ou à un répertoire.
  • Règles d'appel système - Permet la journalisation des appels système effectués par n'importe quel programme.

Ouvrez maintenant le fichier de configuration principale pour l'édition:

# vi / etc / audit / règles.D / Audit.règles 

Notez que la première section de ce fichier doit contenir règles de contrôle. Ensuite, ajoutez vos règles d'audit (montres de fichier et règles d'appel système) dans la section centrale, et enfin la dernière section contient des paramètres d'immuabilité qui sont également des règles de contrôle.

Exemples de règles de contrôle AuditD

-D #Removes Toutes les règles précédentes -B 3074 #define Tize de tampon -f 4 #panic sur l'échec -R 120 #create au plus 120 messages d'audit par seconde 

Exemples de règles du système de fichiers auditd

Vous pouvez définir des montres de fichiers à l'aide de cette syntaxe:

-w / path / to / file / ou / / répertoire -p permissions -k key_name 

Où l'option:

  • w - est utilisé pour spécifier un fichier ou un répertoire pour surveiller.
  • p - autorisation des autorisations, r - pour l'accès en lecture, w - pour l'accès à l'écriture, X - pour exécuter l'accès et un - pour le changement de fichier ou d'attribut de directeur.
  • -k - vous permet de définir une chaîne facultative pour identifier quelle règle (ou un ensemble de règles) a créé une entrée de journal spécifique.

Ces règles permettent à l'audit de regarder des événements apporter des modifications à ces fichiers système critiques.

-w / etc / passwd -p wa -k passwd_changes -w / etc / groupe -p wa -k group_changes -w / etc / shadow -p wa -k shadow_changes -w / etc / sudoers -p wa -k sudoers_changes 

Exemples de règles d'appel du système AuditD

Vous pouvez définir une règle d'appel système à l'aide du formulaire ci-dessous:

-une action, filtre -s system_call -f champ = valeur -k key_name 

où:

  • action - a deux valeurs possibles: toujours ou jamais.
  • filtre - Spécifie le filtre de correspondance de règles du noyau (tâche, sortie, utilisateur et exclusion) est appliqué à l'événement.
  • appel système - nom d'appel système.
  • champ - Spécifie des options supplémentaires telles que l'architecture, le PID, le GID, etc. pour modifier la règle.

Voici quelques règles que vous pouvez définir.

-A toujours, exit -f arch = b64 -s adjtimex -s settimeofday -k time_change -a toujours, exit -s sethostname -s setDomainName -K system_locale 

Ajoutez ensuite les paramètres d'immuabilité à la fin du fichier, par exemple:

-E 1 #Enable Audit -e 2 #Make La configuration IMMUTABLE - Le redémarrage est nécessaire pour modifier les règles d'audit 
Exemple de fichier de configuration des règles Auditd
Fichier de configuration des règles auditd

Comment définir les règles AuditD à l'aide de l'utilitaire Auditctl

Alternativement, envoyez les options à auditd Pendant qu'il s'exécute, en utilisant le auditctl Comme dans les exemples suivants. Ces commandes peuvent remplacer les règles dans le fichier de configuration.

Pour répertorier toutes les règles d'audit actuellement chargées, passez le -l drapeau:

# auditctl -l 

Ensuite, essayez d'ajouter quelques règles:

# auditctl -w / etc / passwd -p wa -k passwd_changes # auditctl -w / etc / groupe -p wa -k group_changes # auditctl -w / etc / sudoers -p wa -k sudoers_changes # auditctl -l 
Ajouter des règles auditd à l'aide d'Auditctl

Comprendre les fichiers journaux Auditd

Tous les messages d'audit sont enregistrés dans / var / log / audit / audit.enregistrer fichier par défaut. Pour comprendre le format d'entrée de journal, nous allons charger une règle et vérifier l'entrée du journal générée après un événement correspondant à la règle.

En supposant que nous ayons un répertoire de sauvegarde secret, cette règle d'audit enregistrera toute tentative d'accéder ou de modifier ce répertoire:

# Auditctl -w / Backups / Secret_Files / -p RWA -K Secret_backup 

Maintenant, à l'aide d'un autre compte système, essayez de passer dans le répertoire ci-dessus et d'exécuter la commande LS:

$ CD / Backups / Secret_files / $ ls 

L'entrée du journal ressemblera à.

Vérifiez les journaux d'audit pour les modifications

L'événement ci-dessus est composé de trois types d'enregistrements d'audit. Le premier est type = syscall:

type = syscall msg = Audit (1505784331.849: 444): Arch = C000003E Syscall = 257 Success = Oui Exit = 3 A0 = FFFFFFFFFFFFFFFF9C A1 = 8AD5C0 A2 = 90800 A3 = 0 Éléments = 1 PPID = 2191 PID = 2680 AUID = 1000 UID = 1000 GID = 1000 EUID = 1000 SUID = 1000 FSUID = 1000 EGID = 1000 SGID = 1000 FSGID = 1000 TTY = PTS1 SES = 3 COMM = "LS" EXE = "/ USR / BIN / LS" Subj = non ingéré.c1023 key = "Secret_backup" 

Le second est type = cwd.

Type = CWD MSG = Audit (1505784331.849: 444): CWD = "/ BACKUPS / SECRET_FILES" 

Et le dernier est Type = chemin:

type = chemin msg = audit (1505784331.849: 444): item = 0 name = "."Inode = 261635 dev = 08: 01 mode = 040755 OUID = 0 ogid = 0 rdev = 00: 00 obj = non conçu_u: objet_r: default_t: s0 objType = Normal 

Vous pouvez trouver une liste complète de tous les champs d'événements (tels que MSG, Arch, SES etc…) et leurs significations dans la référence du système d'audit.

C'est tout pour le moment. Dans le prochain article, nous examinerons comment utiliser AUSEARCH pour interroger les fichiers journaux d'audit: nous expliquerons comment rechercher des informations spécifiques à partir des journaux d'audit. Si vous avez des questions, veuillez nous joindre via la section des commentaires ci-dessous.