Le support pour l'audit des événements est installé avec le
système de base de FreeBSD. Le support présent dans le noyau
GENERIC
par défaut, et auditd(8) peut
être activé en ajoutant la ligne suivante au fichier
/etc/rc.conf
:
auditd_enable="YES"
Puis, le daemon d'audit peut être lancé:
#
service auditd start
Les utilisateurs préférant compiler un noyau sur mesure doivent ajouter la ligne suivante dans le fichier de configuration du noyau:
options AUDIT
Les expressions de sélection sont utilisées à plusieurs endroits dans la configuration du système d'audit pour déterminer quels événements doivent être suivis. Les expressions contiennent une liste de classes d'événements devant correspondre. Les expressions de sélection sont évaluées de gauche à droite, et deux expressions sont combinées en ajoutant l'une à la suite de l'autre.
Tableau 18.1, « Classes d'événements par défaut » résume les classes d'événements présentes par défaut
Classe | Description | Action |
---|---|---|
all | tout | correspond à toutes les classes d'événements. |
aa | authentification et autorisation | |
ad | administration | Actions d'administration du système. |
ap | application | Action définie par l'application. |
cl | fermeture de fichiers | Enregistre les utilisations de l'appel système
close . |
ex | exécution | Enregistre les exécutions de programmes. L'audit
des arguments en ligne de commande et des variables
d'environnement est contrôlé par via
audit_control(5) en utilisant les paramètres
argv et envv
pour l'entrée policy . |
fa | accès à aux attributs des fichiers | enregistre l'accès aux attributs des objets comme stat(1), pathconf(2). |
fc | création de fichiers | Enregistre les événements ayant pour résultat la création d'un fichier. |
fd | suppression de fichiers | Enregistre les événements pour lesquels une suppression de fichier a lieu. |
fm | modification des attributs d'un fichier | Enregistre les événements lors desquels une modification des attributs d'un fichier intervient, comme l'utilisation de chown(8), chflags(1), et flock(2). |
fr | lecture de fichiers | Enregistre les événements qui donnent lieu à la lecture de données, l'ouverture de fichiers pour la lecture. |
fw | écriture de fichiers | Enregistre les événements qui donnent lieu à l'écriture de données ou à l'écriture ou la modification de fichiers. |
io | ioctl | Enregistre l'utilisation de l'appel système
ioctl . |
ip | ipc | Enregistre les différentes utilisations de communication inter-processus, dont les utilisations des tubes POSIX et les opérations IPC Système V. |
lo | login_logout | Enregistre les ouvertures et fermeture de session (login(1) et logout(1)). |
na | non attributable | Enregistre les événements non-attribuables. |
no | classe invalide | Ne correspond à aucun des événements surveillés. |
nt | réseau | Enregistre les événements relatifs au réseau, comme l'utilisation des fonctions connect(2) et accept(2). |
ot | autre | Enregistre les événements divers. |
pc | processus | Enregistre les opérations sur les processus, comme l'utilisation des fonctions exec(3) et exit(3). |
Ces classes d'événement peuvent être
personnalisées en modifiant les fichiers de
configuration audit_class
et
audit_event
.
Chaque classe d'audit peut être combinée avec un préfixe indiquant si les opérations réussies/échouées sont sélectionnées, et si l'entrée ajoute ou supprime une sélection pour la classe ou le type concerné. Tableau 18.2, « Prefixes pour les classes d'audit » résume les préfixes disponibles.
Prefixe | Action |
---|---|
+ | Enregistre les événements réussis de cette classe. |
- | Enregistre les événements de cette classe qui ont échoué. |
^ | N'enregistre ni les événements réussis ni les échecs de cette classe. |
^+ | Ne pas enregistrer les événements réussis de cette classe. |
^- | Ne pas enregistrer les événements de cette classe qui ont échoué. |
Si aucun préfixe n'est présent, les succès et le échecs de l'événement seront enregistrés.
L'exemple suivant d'expression de sélection permet la sélection des ouvertures et fermetures de session réussies ou échouées, et uniquement les exécutions ayant réussies:
lo,+ex
Les fichiers de configuration suivants pour l'audit
d'événements en rapport avec la
sécurité se trouvent dans le répertoire
/etc/security
.
audit_class
: contient les
définitions des classes d'audit.
audit_control
: contrôle les
caractéristiques du système d'audit comme les
classes d'audit par défaut, l'espace disque minimal
à conserver sur le volume réservé aux
journaux, la taille maximale des traces d'audit.
audit_event
: les noms et la
description des événements systèmes
audités ainsi qu'une liste de classes auxquelles
appartiennent chaque événement.
audit_user
: les classes
d'événement à auditer pour des
utilisateurs spécifiques, qui s'ajoutent aux
paramètres généraux fixés par
défaut à l'ouverture de session.
audit_warn
: une procédure
modifiable utilisée par
auditd(8) pour générer
des messages d'alerte lors des situations exceptionnelles
comme un espace disque faible pour les fichiers journaux
d'audit ou quand il y a eu rotation de ces fichiers
journaux.
Les fichiers de configuration de l'audit devraient être modifiés et gérés avec prudence étant donné que des erreurs dans la configuration pourraient donner lieu à un enregistrement incorrect des événements.
Dans la plupart des cas, les administrateurs ne devront
modifier que audit_control
et
audit_user
. Le premier contrôle
les propriétés et les stratégies au
niveau du système et le second peut être
utilisé pour affiner l'audit pour chaque
utilisateur.
Un certain nombre de paramètres par défaut pour le
système d'audit sont spécifiés dans le fichier
audit_control
:
dir:/var/audit dist:off flags:lo,aa minfree:5 naflags:lo,aa policy:cnt,argv filesz:2M expire-after:10M
L'option dir
est utilisée pour
déclarer un ou plusieurs répertoires dans
lesquels seront stockés les fichiers journaux. Si
l'on mentionne plus d'un répertoire, ces derniers
seront utilisés dans l'ordre à mesure qu'ils
se remplissent. Il est classique de configurer le
système d'audit pour le stockage des fichiers
journaux sur un système de fichiers
dédié, afin d'éviter toute
interférence entre le système d'audit et
d'autres systèmes si le système de fichiers
est plein.
Si le champ dist
est fixé à
on
ou yes
, des liens
matériel seront créés pour tous les fichiers de trace
d'audit de /var/audit/dist
.
Le champ flags
fixe le masque
général de présélection
utilisé par défaut pour les
événements attribuables. Dans l'exemple
ci-dessus, les ouvertures et fermetures de sessions
réussies ou échouées ainsi que les authentifications et
autorisations sont
enregistrées pour tous les utilisateurs.
L'option minfree
définit le
pourcentage minimal d'espace libre du système de
fichiers sur lequel les traces d'audit sont stockées.
L'entrée naflags
indique les
classes à surveiller pour les
événements non-attribués, comme les
processus d'ouverture et de fermeture de session et les
authentifications et autorisations.
L'entrée policy
donne une
liste d'indicateurs de stratégie contrôlant
divers aspect du comportement de l'audit
séparés par une virgule. L'indicateur
cnt
indique que le système devrait
continuer à fonctionner en dépit d'un
échec dans l'audit (l'emploi de cet indicateur est
hautement recommandé). L'autre indicateur
argv
, provoque l'audit des arguments
passés à l'appel système execve(2)
lors de l'audit de l'exécution des commandes.
L'entrée filez
indique la
taille maximale en octets autorisée pour un fichier
de trace avant qu'il soit interrompu et que le
système provoque sa rotation. La valeur par
défaut, 0
, désactive la rotation automatique
des journaux. Si la taille de fichier est
inférieure à 512K, elle
sera ignorée et un message sera
généré.
Le champ expire-after
indique quand un
fichier de trace expirera et sera supprimé.
L'administrateur peut spécifier des exigences
supplémentaires qu niveau de l'audit pour des utilisateurs
spécifiques dans le fichier audit_user
.
Chaque ligne paramètre l'audit
pour un utilisateur par l'intermédiaire de deux
champs: le champ
alwaysaudit
, qui indique l'ensemble des
événements qui devraient toujours être
surveillés pour l'utilisateur, le
champ, neveraudit
, indique un ensemble
d'événements qui ne devrait jamais être
audité pour cet utilisateur.
L'exemple suivant d'entrées
permet le suivi des
ouvertures et fermetures de sessions et l'exécution
de commandes avec succès de l'utilisateur
root
, et audite la création de
fichiers et l'exécution de commandes avec
succès pour l'utilisateur www
.
Si utilisé avec le
fichier
audit_control
par défaut, l'entrée
lo
pour root
est
redondante, et les événements relatifs aux
ouvertures et aux fermetures de sessions seront
également enregistrés pour l'utilisateur
www
.
root:lo,+ex:no www:fc,+ex:no
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>.