Comment auditer Linux avec l'outil Auditd et Ausearch

En tant qu'administrateurs système, personnel de groupe de support ou simplement comme mesure pour maintenir les meilleurs niveaux de contrôle à la fois du serveur et des ordinateurs clients de l'organisation, il audite constamment le système d'exploitation afin d'avoir une longueur d'avance sur les défaillances qui peuvent survenir. et ainsi préserver l'intégrité et la disponibilité du système ainsi que ses rôles, services et éléments qui y sont stockés.

Qu'est-ce qu'un audit LinuxLorsque nous parlons d'un système d'audit dans un environnement Linux, nous parlons d'un mécanisme qui permet de suivre les informations relatives à la sécurité dans ledit système d'exploitation.

Un audit est composé d'un examen des différentes parties qui composent spécifiquement ce système, avec une évaluation critique, et des tests si nécessaire, dans différents domaines d'intérêt.

Sur la base de ce concept, Solvetic analysera aujourd'hui deux des meilleurs outils pour le processus d'audit sous Linux : auditd et ausearch.

Il est important de préciser que l'audit ne fournit pas de sécurité supplémentaire au système d'exploitation mais peut être utilisé pour découvrir des violations des politiques de sécurité utilisées dans le système et donc avoir une connaissance adéquate de celles-ci.

AuditéAuditd est le système d'audit Linux qui s'appuie sur des règles préconfigurées pour générer des entrées de journal et ainsi stocker autant d'informations que possible sur les événements qui se produisent dans le système.

Ces informations collectées sont cruciales pour les environnements critiques afin de déterminer le contrevenant à la politique de sécurité et les actions qu'ils ont prises et ainsi permettre à toutes les actions de sécurité et aux nouvelles politiques créées dans l'organisation de se concentrer sur l'amélioration de l'ensemble de l'environnement d'exploitation.

Auditd est capable d'enregistrer les fichiers journaux suivants

  • Date, heure, type et résultat d'un événement.
  • Étiquettes de sensibilité aux sujets et aux objets.
  • Association d'un événement à l'identité de l'utilisateur qui a exécuté l'événement.
  • Déployez toutes les modifications de la configuration d'audit et tentez d'accéder aux fichiers journaux d'audit.
  • Stockez toutes les utilisations des mécanismes d'authentification, tels que SSH, Kerberos et autres.
  • Il est possible de basculer vers n'importe quelle base de données de confiance, telle que /etc/passwd.
  • Enregistre toute tentative d'importation ou d'exportation d'informations vers ou depuis le système.
  • Inclut ou exclut les événements en fonction de l'identité de l'utilisateur, des balises d'objet et d'objet et d'autres attributs.

ExigencesDe la même manière, l'utilisation du système d'audit est également une exigence nécessaire pour une série de certifications liées à la sécurité si elle est requise à un moment donné. L'audit est conçu pour satisfaire ou dépasser les exigences des directives ou certifications de conformité mondiales suivantes :

  • Profil de protection d'accès contrôlé (CAPP)
  • Profil de protection de sécurité étiqueté (LSPP)
  • Contrôle d'accès à la base de l'ensemble de règles (RSBAC)
  • Manuel d'exploitation du programme national de sécurité industrielle (NISPOM)
  • Loi fédérale sur la gestion de la sécurité de l'information (FISMA)
  • Industrie des cartes de paiement - Norme de sécurité des données (PCI-DSS)
  • Guides techniques de mise en œuvre de la sécurité (STIG)

Bénéfices supplémentairesCertains des avantages supplémentaires de l'utilisation du système d'audit Linux sont les suivants :

  • Il ne nécessite pas de programmes ou de processus externes pour s'exécuter sur un système qui le rend autonome.
  • Il est hautement configurable, c'est pourquoi il nous permet de voir n'importe quel fonctionnement du système que nous voulons.
  • Il permet de détecter ou d'analyser les compromissions potentielles, au niveau de la sécurité, d'un système.
  • Il est capable de fonctionner comme un système de détection indépendant.
  • Il peut fonctionner avec des systèmes de détection d'intrusion pour permettre la détection d'intrusion.
  • C'est un outil essentiel pour l'audit d'enquête médico-légale.

Bien que certains termes puissent sembler étranges, si nous sommes attachés à la sécurité, c'est sans aucun doute l'une des meilleures options.

1. Composants du système d'audit Linux auditd


Le système d'audit comporte deux éléments de base qui sont :
  • Applications utilisateur et utilitaires ou outils
  • Traitement des appels système au niveau du noyau, qui accepte les appels système des applications de l'espace utilisateur et les fait passer par trois types de filtres : utilisateur, tâche, sortie ou exclusion.
La partie la plus importante est le démon d'audit utilisateur (auditd) qui collecte les 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.log
En plus de cela, audispd 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 existe plusieurs outils de l'espace utilisateur pour gérer et récupérer les informations du système d'audit qui sont :

AuditctlC'est un utilitaire pour contrôler le système d'audit du noyau.
RechercheIl s'agit d'un utilitaire permettant de rechercher dans les fichiers journaux d'audit des événements spécifiques.
AureportC'est un utilitaire pour créer des rapports d'événements enregistrés.

Pour cette analyse, nous utiliserons CentOS 7

2. Installer et configurer auditd sur CentOS 7


La première étape consiste à s'assurer que l'outil d'audit est installé sur le système à l'aide de la commande rpm et de l'utilitaire grep comme ceci :
 tr/min -qa | audit grep
Le résultat sera :

Si vous ne disposez pas des packages d'audit, nous devons exécuter la commande suivante en tant qu'utilisateur root :

 miam l'audit de l'installation
Une fois installé, nous devons configurer si auditd est activé, pour cela, nous exécuterons l'une des commandes suivantes dans leur ordre :

Sur CentOS ou RHEL 7

 systemctl is-enabled auditdsystemctl status auditdsystemctl start auditd (démarre le service) systemctl enable auditd (active le service)

Sur CentOS ou RHEL 6

 service auditd statusservice auditd start (démarre le service) chkconfig auditd on (active le service)

Nous pouvons voir que son statut est actif.

3. Configuration auditée


Pour configurer auditd, nous devons utiliser le fichier de configuration principal /etc/audit/auditd.conf car il sera possible de contrôler le fonctionnement du service tel que la définition de l'emplacement du fichier journal, le nombre maximum de fichiers journaux, le format d'enregistrement , comment gérer les disques pleins, enregistrer la rotation et plus d'options.
Pour cela, nous utiliserons l'éditeur préféré :
 nano /etc/audit/auditd.conf
Là, nous verrons ce qui suit :

Nous pouvons voir que chaque ligne nous permet d'indiquer une action spécifique et nous pouvons la modifier si nécessaire.

4. Règles d'audit sous Linux


Comme indiqué ci-dessus, auditd utilise des règles pour collecter des informations spécifiques à partir du noyau. Ces règles sont essentiellement des options auditctl qui peuvent être préconfigurées dans le fichier /etc/audit/rules.d/audit.rules.

Il existe trois types de règles d'audit qui peuvent être définies qui sont :

Règles de contrôleCeux-ci permettent de modifier le comportement du système d'audit et certains de ses paramètres.
Règles du système de fichiersCes règles permettent l'audit de l'accès à un fichier ou un répertoire spécifique.
Règles d'appel systèmeCeux-ci permettent l'enregistrement des appels système effectués par n'importe quel programme.

Pour accéder à ces règles, nous allons emprunter la route suivante en utilisant l'éditeur souhaité :

 nano /etc/audit/rules.d/audit.rules
Nous verrons ce qui suit :

Dans ce fichier, dans la première section, nous devons ajouter des règles de contrôle. Ensuite, ajoutez les règles d'audit dans la section du milieu et enfin la dernière section contient les paramètres d'immuabilité qui sont également des règles de contrôle.

Voici quelques exemples de ces règles :

Supprimer toutes les règles précédentes

 -RÉ

Définir la taille du tampon

 -b 3074

L'échec génère une option de panique

 -f 4

Créez un maximum de 120 messages d'audit par seconde

 -r 120

Voici un exemple de règle :

Là, nous avons les éléments suivants :

Utilisé pour spécifier un fichier ou un répertoire à surveiller.

 -w

AutorisationsCe sont les autorisations à enregistrer, r - pour l'accès en lecture, w - pour l'accès en écriture, x - pour l'accès en exécution et - pour le changement d'attribut de fichier ou de directeur.

 -p

Identifier un ensemble de règlesVous 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 registre spécifique.

 -k

Une fois les règles définies, nous utilisons la combinaison de touches Ctrl + O pour enregistrer le fichier et Ctrl + X pour le quitter. Nous allons ajouter ces règles, en reprenant celles de l'exemple en exécutant les lignes suivantes en tant que root :

 auditctl -w / etc / passwd -p wa -k passwd_changesauditctl -w / etc / group -p wa -k group_changesauditctl -w / etc / sudoers -p wa -k sudoers_changes
Afin de voir les règles actuelles, nous exécuterons les opérations suivantes :
 sudo auditctl -l

De cette façon, auditd devient un outil d'audit précieux dans CentOS 7.

5. Ausearch Linux


L'utilitaire ausearch a été conçu pour permettre la recherche dans les fichiers journaux d'audit d'événements spécifiques en fonction d'événements et de différents critères de recherche tels que l'identifiant d'événement, l'identifiant de clé, l'architecture CPU, le nom de commande, le nom d'hôte, le nom de groupe ou l'ID de groupe.

Par défaut, ausearch regarde dans le fichier /var/log/audit/audit.log. Vous pouvez spécifier un fichier différent en utilisant la commande ausearch options -if filename. Fournir plusieurs options dans une commande ausearch équivaut à utiliser l'opérateur AND.

Pour utiliser la valeur par défaut et voir les journaux actuels, nous exécuterons l'une des commandes suivantes :

 cat /var/log/audit/audit.logcat /var/log/audit/audit.log | moins

Comme on peut le voir, les données représentées ici peuvent prêter à confusion, c'est pourquoi ausearch utilise la syntaxe ausearch (option) pour filtrer ces résultats et obtenir une vision beaucoup plus facile à gérer.

Nous avons des options telles que :

Vérifier l'exécution des journaux de processusLà, nous pouvons utiliser le paramètre -p plus le PID pour obtenir un résultat spécifique :

 ausearch -p 579

Vérification du fichier journal d'audit pour les tentatives de connexionDans ce cas, nous devons utiliser le paramètre -m pour identifier des messages spécifiques et -sv pour définir les résultats réussis.

 ausearch -m USER_LOGIN -sv non

Rechercher l'activité des utilisateurs dans le fichier journal AuditdPour ce résultat, nous utiliserons le paramètre -ua plus le nom d'utilisateur :

 ausearch -ua Solvetic

Rechercher les modifications apportées aux utilisateurs, aux groupes et aux rôlesAvec cette option, il sera possible de revoir toutes les modifications du système utilisées avec les comptes d'utilisateurs, les groupes et les rôles; Nous pouvons spécifier plusieurs types de messages séparés par des virgules comme suit :

 ausearch -m ADD_USER, DEL_USER, USER_CHAUTHTOK, ADD_GROUP, DEL_GROUP, CHGRP_ID, ROLE_ASSIGN, ROLE_REMOVE -i
Nous verrons ce qui suit :

Voir l'aide d'ausearchPour voir les différentes options de cet utilitaire, nous allons exécuter ce qui suit :

 homme ausearch

Ainsi, nous pouvons voir les différentes options lors de la réalisation d'un audit complet et efficace dans CentOS ou RedHat.

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave