Manuel FreeBSD
Précédent | Chapitre 17. Audit des événements relatifs à la sécurité du système | Suivant

# 17.5. Administration du système d'audit

## 17.5.1. Consultation des traces d'audit

Les traces d'audit sont stockées sous le format binaire BSM (“Basic Security Module”), aussi il sera nécessaire d'utiliser des outils pour modifier ou convertir en texte les fichiers de trace. La commande praudit(1) convertit les fichiers de trace en simple texte; la commande auditreduce(1) peut être utilisée pour réduire le fichier de trace en vue d'une analyse, d'un archivage, ou d'une impression. La commande `auditreduce` supporte une variété de paramètres de sélection, parmi lesquels le type d'événement, la classe de l'événement, l'utilisateur, la date ou l'heure de l'événement, et le chemin d'accès ou l'objet sur lequel on agit.

Par exemple, l'utilitaire `praudit` affichera sous forme de texte brut l'intégralité du contenu du fichier journal d'audit précisé:

    # praudit /var/audit/AUDITFILE

Où ``AUDITFILE`` est le journal à afficher.

Les traces d'audit consistent en une série d'enregistrements constitués de champs que la commande `praudit` affiche de manière séquentielle, un par ligne. Chaque champ est spécifique, comme `header` contenant l'entête de l'enregistrement, ou `path` contenant le chemin d'accès. Ce qui suit est un exemple d'événement `execve`:

    header,133,10,execve(2),0,Mon Sep 25 15:58:03 2006, + 384 msec
    exec arg,finger,doug
    path,/usr/bin/finger
    attribute,555,root,wheel,90,24918,104944
    subject,robert,root,wheel,root,wheel,38439,38032,42086,128.232.9.100
    return,success,0
    trailer,133

Cet audit représente un appel réussi à `execve`, lors de l'exécution de la commande `finger doug`. Le champ pour les arguments contient la ligne de commande présentée par l'interpréteur de commandes au noyau. Le champ `path` contient le chemin d'accès à l'exécutable comme le voit le noyau. Le champ `attribute` décrit le binaire, et en particulier, précise les permissions sur le fichier qui permettent de déterminer si l'application avait les permissions “setuid”. Le champ `subject` décrit le sujet de l'audit, et conserve sous la forme d'une séquence l'identifiant (ID) de l'utilisateur audité, les identifiants groupe et utilisateur effectifs, les identifiants groupe et utilisateur réels, l'ID du processus, l'ID de la session, l'ID du port, et l'adresse correspondant à la session. Notez que l'ID de l'utilisateur pour l'audit diffère de l'ID réel de l'utilisateur: l'utilisateur `robert` est passé en `root` avant l'exécution de la commande, mais l'audit se fait par rapport à l'utilisateur authentifié original. Et enfin, le champ `return` indique la réussite de l'exécution, et le champ `trailer` termine l'enregistrement.

Sous FreeBSD 6.3 et versions suivantes, `praudit` supporte également un format de sortie XML, qui peut être sélectionné en utilisant l'argument `-x`.

## 17.5.2. Réduction des traces d'audit

Comme les journaux d'audit peuvent être très gros, un administrateur voudra ne conserver qu'une partie des enregistrements, comme par exemple les enregistrements associés à un utilisateur particulier:

    # auditreduce -u trhodes /var/audit/AUDITFILE | praudit

Cette commande sélectionnera tous les enregistrements stockés dans le fichier ``AUDITFILE`` et concernant l'utilisateur `trhodes`.

## 17.5.3. Délégation des droits d'accès aux résultats des audits

Les membres du groupe `audit` sont autorisés à lire les traces d'audit présentes dans le répertoire `/var/audit`; par défaut ce groupe est vide, par conséquent seul l'utilisateur `root` pourra lire les traces d'audit. Des utilisateurs peuvent être ajoutés au groupe `audit` afin de déléguer les droits de lecture des audits à ses utilisateurs. Comme la possibilité de suivre le contenu des fichiers journaux de l'audit donne un aperçu significatif du comportement des utilisateurs et des processus, il est donc recommandé de déléguer avec prudence les droits de lecture des audits.

## 17.5.4. Surveillance en direct à l'aide de tubes d'audit

Les tubes (“pipes”) d'audit sont des pseudo-périphériques “clonables” du système de fichiers des périphériques qui autorisent aux applications l'accès au flux d'enregistrement des audits en cours. C'est de tout premier intérêt pour les auteurs d'applications de détection des intrusions et de surveillance du système. Pour l'administrateur, le tube d'audit est un moyen pratique d'autoriser la surveillance en direct sans avoir à faire face aux problèmes de permissions ou de rotation des fichiers journaux interrompant le flux des enregistrements des événements. Pour suivre le flux des enregistrements de l'audit en cours, utiliser la ligne de commande suivante:

    # praudit /dev/auditpipe

Par défaut, les fichiers spéciaux de périphériques correspondant aux tubes d'audit ne sont accessibles qu'à l'utilisateur `root`. Pour les rendre accessibles aux membres du groupe `audit`, ajoutez une règle `devfs` au fichier `devfs.rules`:

    add path 'auditpipe*' mode 0440 group audit

Consultez la page de manuel devfs.rules(5) pour plus d'information sur la configuration du système de fichiers devfs.

> Avertissement : Il est relativement simple de produire un effet de boucle sans fin, dans lequel la consultation de chaque événement enregistré par le système d'audit provoque la génération de nouveaux événements d'audit. Par exemple, si toutes les entrées/sorties réseau sont surveillées, et que praudit(1) est exécuté depuis une session SSH, alors un flux continu d'événements sera généré suivant une fréquence importante, chaque événement affiché générant un autre événement. Il est recommandé d'exécuter `praudit` sur un tube par l'intermédiaire de sessions sans surveillance précise des entrées/sortie afin d'éviter que ne survienne un tel problème.

## 17.5.5. Rotation des fichiers de trace d'audit

Les traces d'audit ne sont écrites que par le noyau, et ne sont gérées que par le “démon” d'audit, auditd. Les administrateurs ne devraient donc pas tenter d'utiliser newsyslog.conf(5) ou tout autre outil pour assurer la rotation directe des journaux d'audit. A la place, l'utilitaire `audit` devrait être employé pour stopper l'audit, reconfigurer le système d'audit et effectuer la rotation des journaux. La commande suivante provoque la création d'un nouveau fichier journal d'audit par le “démon” et signale au noyau d'utiliser le nouveau fichier pour les enregistrements. L'ancien fichier journal sera fermé et renommé et pourra, à partir de cet instant, être manipulé par l'administrateur.

    # audit -n

> Avertissement : Si le “démon” auditd ne tourne pas, cette commande échouera et un message d'erreur sera généré.

Ajouter la ligne suivante au fichier `/etc/crontab` provoquera la rotation des fichiers toutes les douze heures à l'aide de cron(8):

    0     */12       *       *       *       root    /usr/sbin/audit -n

La modification sera prise en compte une fois que aurez sauvegardé le nouveau fichier `/etc/crontab`.

La rotation automatique du fichier d'une trace d'audit basée sur la taille du fichier est possible à l'aide de l'option `filesz` de audit_control(5), cette option est décrite dans la section de ce chapitre concernant les fichiers de configuration.

## 17.5.6. Compresser les traces d'audit

Les fichiers de trace d'audit peuvent devenir très gros, il est souvent désirable de les compresser ou sinon de les archiver une fois qu'ils ont été fermés par le “démon” d'audit. La procédure `audit_warn` peut être employée pour effectuer des opérations personnalisées pour une variété d'événements relatifs à l'audit, y compris l'arrêt propre des traces d'audit lors de leur rotation. Par exemple, ce qui suit peut être ajouté à la procédure `audit_warn` pour compresser les traces d'audit à leur fermeture:

    #
    # Compression des fichiers de trace d'audit à leur fermeture.
    #
    if [ "$1" = closefile ]; then
            gzip -9 $2
    fi

D'autres activités d'archivage pourront inclure la copie des fichiers de trace vers un serveur central, la suppression d'anciennes traces, ou la réduction des traces pour supprimer les enregistrements inutiles. La procédure ne sera exécutée que lorsque les fichiers de trace d'audit auront été proprement arrêtés, et ne sera pas exécutée sur les traces interrompues en cours d'utilisation suite à un arrêt incorrect du système.

Précédent | Sommaire | Suivant
Configuration de l'audit | Niveau supérieur | Stockage des données

Ce document, ainsi que d'autres peut être téléchargé sur ftp.FreeBSD.org/pub/FreeBSD/doc/.

Pour toutes questions à propos de FreeBSD, lisez la documentation avant de contacter <questions@FreeBSD.org>.
Pour les questions sur cette documentation, contactez <doc@FreeBSD.org>.