Etant donné que les traces d'audit sont stockées sous le format
binaire BSM (« Basic Security Module »),
plusieurs outils sont disponibles pour modifier ou convertir
en texte ces fichiers de trace.
Pour convertir les fichiers de trace en en texte simple,
utiliser la commande praudit
.
Pour réduire le fichier de trace en vue
d'une analyse, d'un archivage, ou d'une impression, utiliser
la commande auditreduce
. Cet utilitaire
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, pour afficher 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
(l'entête de l'enregistrement), ou path
(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
exec arg
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 précise les permissions sur le fichier. Le champ
subject
conserve 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 étant donné que
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. Le champ
return
indique la réussite de
l'exécution et le champ trailer
termine l'enregistrement.
Le format de sortie XML est également
supporté et peut être sélectionné en
utilisant l'argument -x
.
Comme les journaux d'audit peuvent être très
gros, un sous-ensemble d'enregistrements peut être sélectionné
en utilisant auditreduce
. Cet exemple
sélectionne tous les enregistrements produits pour
l'utilisateur trhodes
et
stockés dans le fichier
AUDITFILE
:
#
auditreduce -u
trhodes
/var/audit/AUDITFILE
| praudit
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
peut 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.
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.
Les tubes (« pipes ») d'audit sont des pseudo-périphériques « clonables » 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. Cependant, le tube d'audit est un moyen pratique pour l'administrateur pour 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:
#
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
/etc/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.
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
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. Pour cette raison, il
est recommandé d'exécuter praudit
sur un tube par
l'intermédiaire de sessions sans surveillance
précise des entrées/sorties.
Les traces d'audit sont écrites par le noyau, et sont
gérées par le « démon » d'audit,
auditd(8). 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
Si auditd(8) ne tourne pas, cette commande échouera et un message d'erreur sera généré.
Ajouter la ligne suivante au fichier
/etc/crontab
provoquera cette rotation
toutes les douze heures:
0 */12 * * * root /usr/sbin/audit -n
La modification sera prise en compte une fois que aurez
sauvegardé le 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
comme décrit dans
Section 18.3.2.1, « Le fichier audit_control
».
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é au fichier
/etc/security/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. Cette 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.
Ce document, ainsi que d'autres peut être téléchargé sur ftp://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>.