915 lines
32 KiB
XML
915 lines
32 KiB
XML
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
<!--
|
|
The FreeBSD Documentation Project
|
|
The FreeBSD French Documentation Project
|
|
|
|
$FreeBSD$
|
|
Original revision: 44395
|
|
-->
|
|
<!-- Need more documentation on praudit, auditreduce, etc. Plus more info
|
|
on the triggers from the kernel (log rotation, out of space, etc).
|
|
And the /dev/audit special file if we choose to support that. Could use
|
|
some coverage of integrating MAC with Event auditing and perhaps discussion
|
|
on how some companies or organizations handle auditing and auditing
|
|
requirements. -->
|
|
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="audit">
|
|
<info><title>Audit des événements relatifs à la
|
|
sécurité du système</title>
|
|
<authorgroup>
|
|
<author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Ecrit par </contrib></author>
|
|
<author><personname><firstname>Robert</firstname><surname>Watson</surname></personname></author>
|
|
</authorgroup>
|
|
</info>
|
|
|
|
|
|
&trans.a.fonvieille;
|
|
|
|
<sect1 xml:id="audit-synopsis">
|
|
<title>Synopsis</title>
|
|
|
|
<indexterm><primary>AUDIT</primary></indexterm>
|
|
<indexterm>
|
|
<primary>Audit des événements relatifs à la
|
|
sécurité du système</primary>
|
|
<see>MAC</see>
|
|
</indexterm>
|
|
|
|
<para>&os; dispose d'un
|
|
support pour l'audit d'événements relatifs
|
|
à la sécurité du système. L'audit
|
|
d'événements permet un enregistrement fiable et
|
|
configurable d'une grande variété
|
|
d'événements système en rapport avec la
|
|
sécurité, parmi lesquels les ouvertures de
|
|
session, les modifications de la configuration, et les
|
|
accès aux fichiers et au réseau. Ces
|
|
enregistrements ou journaux peuvent être d'une très
|
|
grande aide pour la surveillance d'un système, pour la
|
|
détection d'intrusion, et les analyses post-mortem. &os;
|
|
implémente l'<acronym>API</acronym> et le format de fichiers
|
|
<acronym>BSM</acronym> (<emphasis>Basic Security
|
|
Module</emphasis>) publiés par &sun; qui sont
|
|
interopérables avec les implémentations d'audits
|
|
de &solaris; de &sun; et de &macos; X d'&apple;.</para>
|
|
|
|
<para>Ce chapitre se concentre sur l'installation et la
|
|
configuration de l'audit des événements. Il
|
|
explique les stratégies utilisées pour l'audit, et
|
|
propose un exemple de configuration.</para>
|
|
|
|
<para>Après la lecture de ce chapitre, vous saurez:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Ce qu'est l'audit d'événements et comment
|
|
cela fonctionne.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Comment configurer l'audit d'événements
|
|
sous &os; pour les utilisateurs et les processus.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Comment lire une trace d'audit en utilisant les outils
|
|
de réduction et de lecture.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para>Avant de lire ce chapitre, vous devrez:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Comprendre les fondements d'&unix; et de &os;
|
|
(<xref linkend="basics"/>).</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Etre familier avec la configuration et la compilation du
|
|
noyau (<xref linkend="kernelconfig"/>).</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Avoir quelques notions de sécurité et
|
|
savoir comment les appliquer à &os; (<xref linkend="security"/>).</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<warning>
|
|
<para>La fonctionnalité d'audit connaît des limitations.
|
|
Tous les événements
|
|
systèmes en rapport avec la sécurité ne
|
|
peuvent pas être soumis à un audit, et que certains
|
|
mécanismes d'ouverture de session, comme les
|
|
gestionnaires de procédures de connexions basés
|
|
sur <application>Xorg</application> et des <quote>démons</quote> tiers, ne permettent
|
|
pas une configuration correcte de l'audit pour les ouvertures de
|
|
session utilisateur.</para>
|
|
|
|
<para>Le système d'audit des événements
|
|
permet la génération d'enregistrements
|
|
détaillés de l'activité du système.
|
|
Sur un système occupé, un fichier journal d'audit
|
|
peut être très important quand le système
|
|
est configuré pour un haut niveau de détail,
|
|
dépassant plusieurs gigaoctets par semaine sur certaines
|
|
configurations. Les administrateurs système devraient
|
|
prendre en compte les besoins en espace disque associés
|
|
avec les configurations d'audit à haut niveau de
|
|
détail. Par exemple, il peut être
|
|
recommandé de dédier un système de fichiers
|
|
à <filename class="directory">/var/audit</filename> de
|
|
manière à ce que les autres systèmes de
|
|
fichiers ne soient pas affectés si le système de
|
|
fichiers pour les audits est plein.</para>
|
|
</warning>
|
|
</sect1>
|
|
|
|
<sect1 xml:id="audit-inline-glossary">
|
|
<title>Mots-clés</title>
|
|
|
|
<para>Les termes suivants sont relatifs à
|
|
l'audit des événements:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para><emphasis>événement</emphasis>: un
|
|
événement pouvant être audité est
|
|
n'importe quel événement pouvant faire l'objet
|
|
d'un suivi par le système d'audit. La création
|
|
d'un fichier, la mise en place d'une connection réseau,
|
|
ou une ouverture de session sont des exemples
|
|
d'événements relatifs à la
|
|
sécurité. Les événements sont
|
|
considérés soit comme
|
|
<quote>attribuables</quote>, quand on peut les relier à
|
|
un utilisateur authentifié, soit
|
|
<quote>non-attribuables</quote> quand on ne peut pas les
|
|
relier à un utilisateur authentifié. Des
|
|
événements comme ceux qui apparaissent avant
|
|
l'authentification durant le processus d'ouverture de session,
|
|
tels que les tentatives avec un mauvais mot de passe, sont des
|
|
exemples d'événements non-attribuables.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><emphasis>classe</emphasis>: désigne à l'aide
|
|
d'un nom particulier des ensembles
|
|
d'événements en rapport les uns avec les
|
|
autres et sont utilisées dans les expressions de
|
|
sélection des événements. Les classes
|
|
d'événement généralement
|
|
utilisées sont la <quote>création de
|
|
fichiers</quote> (fc) l'<quote>exécution</quote> (ex)
|
|
et l'<quote>ouverture/fermeture de session</quote>
|
|
(lo).</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><emphasis>enregistrement</emphasis>:
|
|
une entrée du fichier de trace d'audit
|
|
décrivant un événement relatif à
|
|
la sécurité. Les enregistrements contiennent
|
|
le type d'événement, des informations sur
|
|
l'auteur (l'utilisateur) de l'action, la date et l'heure,
|
|
des informations sur tout objet ou argument en relation avec
|
|
l'action, et une condition de succès ou
|
|
d'échec.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><emphasis>trace d'audit</emphasis>: un
|
|
fichier journal consistant en une série
|
|
d'enregistrements décrivant les
|
|
événements relatifs à la
|
|
sécurité. Les traces
|
|
sont organisées de manière chronologiques par
|
|
rapport à l'horaire de fin des
|
|
événements. Seuls les processus
|
|
autorisés peuvent ajouter des enregistrements aux
|
|
fichiers journaux d'audit.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><emphasis>expression de sélection</emphasis>: une
|
|
chaîne de
|
|
caractères contenant une liste de préfixes et
|
|
de classes d'événement d'audit utilisés
|
|
pour désigner des événements.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><emphasis>préselection</emphasis>: le processus
|
|
par lequel le système identifie quels
|
|
événements intéressent l'administrateur.
|
|
La configuration de la
|
|
présélection utilise une série
|
|
d'expressions de sélection pour déterminer
|
|
quelles classes d'événement sont à
|
|
auditer et pour quels utilisateurs, ainsi que le
|
|
paramétrage global qui s'applique aux processus
|
|
authentifiés et non-authentifiés.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><emphasis>réduction</emphasis>: le processus par
|
|
lequel les enregistrements de traces d'audit existantes sont
|
|
sélectionnés pour être conservés,
|
|
imprimés ou analysés. Ou encore le processus
|
|
qui supprime de la trace d'audit les enregistrements
|
|
non-désirés. En utilisant le principe de
|
|
réduction, les administrateurs peuvent mettre en
|
|
place des stratégies pour la conservation des
|
|
données d'audit. Par exemple, les traces d'audit
|
|
détaillées peuvent être
|
|
conservées pendant un mois, mais passé ce
|
|
délai, les traces seront réduites afin de ne
|
|
préserver pour archivage que les informations
|
|
relatives aux ouvertures de sessions.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</sect1>
|
|
|
|
<sect1 xml:id="audit-config">
|
|
<title>Configuration de l'audit</title>
|
|
|
|
<para>Le support pour l'audit des événements est installé avec le
|
|
système de base de &os;. Le support présent dans le noyau
|
|
<filename>GENERIC</filename> par défaut, et &man.auditd.8; peut
|
|
être activé en ajoutant la ligne suivante au fichier
|
|
<filename>/etc/rc.conf</filename>:</para>
|
|
|
|
<programlisting>auditd_enable="YES"</programlisting>
|
|
|
|
<para>Puis, le daemon d'audit peut être lancé:</para>
|
|
|
|
<screen>&prompt.root; <userinput>service auditd start</userinput></screen>
|
|
|
|
<para>Les utilisateurs préférant compiler un noyau sur mesure
|
|
doivent ajouter la ligne suivante dans le fichier de
|
|
configuration du noyau:</para>
|
|
|
|
<programlisting>options AUDIT</programlisting>
|
|
|
|
<sect2>
|
|
<title>Expressions de sélection des
|
|
événements</title>
|
|
|
|
<para>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.</para>
|
|
|
|
<para><xref linkend="event-selection"/> résume les classes
|
|
d'événements présentes par défaut</para>
|
|
|
|
<table xml:id="event-selection" frame="none" pgwide="1">
|
|
<title>Classes d'événements par défaut</title>
|
|
|
|
<tgroup cols="3">
|
|
<thead>
|
|
<row>
|
|
<entry>Classe</entry>
|
|
<entry>Description</entry>
|
|
<entry>Action</entry>
|
|
</row>
|
|
</thead>
|
|
|
|
<tbody>
|
|
<row>
|
|
<entry>all</entry>
|
|
<entry>tout</entry>
|
|
<entry>correspond à toutes les classes
|
|
d'événements.</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>aa</entry>
|
|
<entry>authentification et autorisation</entry>
|
|
<entry></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>ad</entry>
|
|
<entry>administration</entry>
|
|
<entry>Actions d'administration du système.</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>ap</entry>
|
|
<entry>application</entry>
|
|
<entry>Action définie par l'application.</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>cl</entry>
|
|
<entry>fermeture de fichiers</entry>
|
|
<entry>Enregistre les utilisations de l'appel système
|
|
<function>close</function>.</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>ex</entry>
|
|
<entry>exécution</entry>
|
|
<entry>Enregistre les exécutions de programmes. L'audit
|
|
des arguments en ligne de commande et des variables
|
|
d'environnement est contrôlé par via
|
|
&man.audit.control.5; en utilisant les paramètres
|
|
<literal>argv</literal> et <literal>envv</literal>
|
|
pour l'entrée <literal>policy</literal>.</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>fa</entry>
|
|
<entry>accès à aux attributs des fichiers</entry>
|
|
<entry>enregistre l'accès aux attributs des objets comme
|
|
&man.stat.1;, &man.pathconf.2;.</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>fc</entry>
|
|
<entry>création de fichiers</entry>
|
|
<entry>Enregistre les événements ayant pour résultat la
|
|
création d'un fichier.</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>fd</entry>
|
|
<entry>suppression de fichiers</entry>
|
|
<entry>Enregistre les événements pour lesquels une
|
|
suppression de fichier a lieu.</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>fm</entry>
|
|
<entry>modification des attributs d'un fichier</entry>
|
|
<entry>Enregistre les événements lors desquels une
|
|
modification des attributs d'un fichier intervient,
|
|
comme l'utilisation de &man.chown.8;,
|
|
&man.chflags.1;, et &man.flock.2;.</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>fr</entry>
|
|
<entry>lecture de fichiers</entry>
|
|
<entry>Enregistre les événements qui donnent lieu
|
|
à la lecture de données, l'ouverture de
|
|
fichiers pour la lecture.</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>fw</entry>
|
|
<entry>écriture de fichiers</entry>
|
|
<entry>Enregistre les événements qui donnent lieu
|
|
à l'écriture de données ou à l'écriture ou
|
|
la modification de fichiers.</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>io</entry>
|
|
<entry>ioctl</entry>
|
|
<entry>Enregistre l'utilisation de l'appel système
|
|
<function>ioctl</function>.</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>ip</entry>
|
|
<entry>ipc</entry>
|
|
<entry>Enregistre les différentes utilisations de
|
|
communication inter-processus, dont les utilisations
|
|
des tubes POSIX et les opérations
|
|
<acronym>IPC</acronym> Système V.</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>lo</entry>
|
|
<entry>login_logout</entry>
|
|
<entry>Enregistre les ouvertures et fermeture de session
|
|
(&man.login.1; et &man.logout.1;).</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>na</entry>
|
|
<entry>non attributable</entry>
|
|
<entry>Enregistre les événements non-attribuables.</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>no</entry>
|
|
<entry>classe invalide</entry>
|
|
<entry>Ne correspond à aucun des événements
|
|
surveillés.</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>nt</entry>
|
|
<entry>réseau</entry>
|
|
<entry>Enregistre les événements relatifs au réseau,
|
|
comme l'utilisation des fonctions &man.connect.2; et
|
|
&man.accept.2;.</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>ot</entry>
|
|
<entry>autre</entry>
|
|
<entry>Enregistre les événements divers.</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>pc</entry>
|
|
<entry>processus</entry>
|
|
<entry>Enregistre les opérations sur les processus,
|
|
comme l'utilisation des fonctions &man.exec.3; et
|
|
&man.exit.3;.</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
|
|
<para>Ces classes d'événement peuvent être
|
|
personnalisées en modifiant les fichiers de
|
|
configuration <filename>audit_class</filename> et
|
|
<filename>audit_event</filename>.</para>
|
|
|
|
<para>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é. <xref linkend="event-prefixes"/> résume les
|
|
préfixes disponibles.</para>
|
|
|
|
<table xml:id="event-prefixes" frame="none" pgwide="1">
|
|
<title>Prefixes pour les classes d'audit</title>
|
|
|
|
<tgroup cols="2">
|
|
<thead>
|
|
<row>
|
|
<entry>Prefixe</entry>
|
|
<entry>Action</entry>
|
|
</row>
|
|
</thead>
|
|
|
|
<tbody>
|
|
<row>
|
|
<entry>+</entry>
|
|
<entry>Enregistre les événements réussis de cette
|
|
classe.</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>-</entry>
|
|
<entry>Enregistre les événements de cette classe qui ont
|
|
échoué.</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>^</entry>
|
|
<entry>N'enregistre ni les événements réussis ni les
|
|
échecs de cette classe.</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>^+</entry>
|
|
<entry>Ne pas enregistrer les événements réussis de
|
|
cette classe.</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>^-</entry>
|
|
<entry>Ne pas enregistrer les événements de cette classe
|
|
qui ont échoué.</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
|
|
<para>Si aucun préfixe n'est présent, les succès et le échecs de
|
|
l'événement seront enregistrés.</para>
|
|
|
|
<para>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:</para>
|
|
|
|
<programlisting>lo,+ex</programlisting>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Fichiers de configuration</title>
|
|
|
|
<para>Les fichiers de configuration suivants pour l'audit
|
|
d'événements en rapport avec la
|
|
sécurité se trouvent dans le répertoire
|
|
<filename>/etc/security</filename>.</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para><filename>audit_class</filename>: contient les
|
|
définitions des classes d'audit.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><filename>audit_control</filename>: 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.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><filename>audit_event</filename>: les noms et la
|
|
description des événements systèmes
|
|
audités ainsi qu'une liste de classes auxquelles
|
|
appartiennent chaque événement.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><filename>audit_user</filename>: 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.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><filename>audit_warn</filename>: une procédure
|
|
modifiable utilisée par
|
|
&man.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.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<warning>
|
|
<para>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.</para>
|
|
</warning>
|
|
|
|
|
|
<para>Dans la plupart des cas, les administrateurs ne devront
|
|
modifier que <filename>audit_control</filename> et
|
|
<filename>audit_user</filename>. 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.</para>
|
|
|
|
<sect3 xml:id="audit-auditcontrol">
|
|
<title>Le fichier <filename>audit_control</filename></title>
|
|
|
|
<para>Un certain nombre de paramètres par défaut pour le
|
|
système d'audit sont spécifiés dans le fichier
|
|
<filename>audit_control</filename>:</para>
|
|
|
|
<programlisting>dir:/var/audit
|
|
dist:off
|
|
flags:lo,aa
|
|
minfree:5
|
|
naflags:lo,aa
|
|
policy:cnt,argv
|
|
filesz:2M
|
|
expire-after:10M</programlisting>
|
|
|
|
<para>L'option <literal>dir</literal> 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.</para>
|
|
|
|
<para>Si le champ <option>dist</option> est fixé à
|
|
<literal>on</literal> ou <literal>yes</literal>, des liens
|
|
matériel seront créés pour tous les fichiers de trace
|
|
d'audit de <filename>/var/audit/dist</filename>.</para>
|
|
|
|
<para>Le champ <literal>flags</literal> 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.</para>
|
|
|
|
<para>L'option <literal>minfree</literal> définit le
|
|
pourcentage minimal d'espace libre du système de
|
|
fichiers sur lequel les traces d'audit sont stockées.</para>
|
|
|
|
<para>L'entrée <literal>naflags</literal> 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.</para>
|
|
|
|
<para>L'entrée <literal>policy</literal> 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
|
|
<literal>cnt</literal> 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
|
|
<literal>argv</literal>, provoque l'audit des arguments
|
|
passés à l'appel système &man.execve.2;
|
|
lors de l'audit de l'exécution des commandes.</para>
|
|
|
|
<para>L'entrée <literal>filez</literal> 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, <literal>0</literal>, 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é.</para>
|
|
|
|
<para>Le champ <option>expire-after</option> indique quand un
|
|
fichier de trace expirera et sera supprimé.</para>
|
|
</sect3>
|
|
|
|
<sect3 xml:id="audit-audituser">
|
|
<title>Le fichier <filename>audit_user</filename></title>
|
|
|
|
<para>L'administrateur peut spécifier des exigences
|
|
supplémentaires qu niveau de l'audit pour des utilisateurs
|
|
spécifiques dans le fichier <filename>audit_user</filename>.
|
|
Chaque ligne paramètre l'audit
|
|
pour un utilisateur par l'intermédiaire de deux
|
|
champs: le champ
|
|
<literal>alwaysaudit</literal>, qui indique l'ensemble des
|
|
événements qui devraient toujours être
|
|
surveillés pour l'utilisateur, le
|
|
champ, <literal>neveraudit</literal>, indique un ensemble
|
|
d'événements qui ne devrait jamais être
|
|
audité pour cet utilisateur.</para>
|
|
|
|
<para>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
|
|
<systemitem class="username">root</systemitem>, et audite la création de
|
|
fichiers et l'exécution de commandes avec
|
|
succès pour l'utilisateur <systemitem class="username">www</systemitem>.
|
|
Si utilisé avec le
|
|
fichier
|
|
<filename>audit_control</filename> par défaut, l'entrée
|
|
<literal>lo</literal> pour <systemitem class="username">root</systemitem> est
|
|
redondante, et les événements relatifs aux
|
|
ouvertures et aux fermetures de sessions seront
|
|
également enregistrés pour l'utilisateur
|
|
<systemitem class="username">www</systemitem>.</para>
|
|
|
|
<programlisting>root:lo,+ex:no
|
|
www:fc,+ex:no</programlisting>
|
|
</sect3>
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 xml:id="audit-administration">
|
|
<title>Travailler avec les traces d'audit</title>
|
|
|
|
<para>Etant donné que les traces d'audit sont stockées sous le format
|
|
binaire <acronym>BSM</acronym> (<quote>Basic Security Module</quote>),
|
|
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 <command>praudit</command>.
|
|
Pour réduire le fichier de trace en vue
|
|
d'une analyse, d'un archivage, ou d'une impression, utiliser
|
|
la commande <command>auditreduce</command>. 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.</para>
|
|
|
|
<para>Par exemple, pour afficher
|
|
sous forme de texte brut l'intégralité
|
|
du contenu du fichier journal d'audit
|
|
précisé:</para>
|
|
|
|
<screen>&prompt.root; <userinput>praudit /var/audit/<replaceable>AUDITFILE</replaceable></userinput></screen>
|
|
|
|
<para>Où
|
|
<replaceable>AUDITFILE</replaceable> est
|
|
le journal à afficher.</para>
|
|
|
|
<para>Les traces d'audit consistent en une série
|
|
d'enregistrements constitués de champs que la commande
|
|
<command>praudit</command> affiche de manière
|
|
séquentielle, un par ligne. Chaque champ est
|
|
spécifique, comme <literal>header</literal>
|
|
(l'entête de l'enregistrement), ou <literal>path</literal>
|
|
(le chemin d'accès). Ce qui suit est un
|
|
exemple d'événement
|
|
<literal>execve</literal>:</para>
|
|
|
|
<programlisting>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</programlisting>
|
|
|
|
<para>Cet audit représente un appel réussi
|
|
à <literal>execve</literal>, lors de l'exécution
|
|
de la commande <literal>finger doug</literal>. Le champ
|
|
<literal>exec arg</literal> contient la ligne de commande
|
|
présentée par l'interpréteur de commandes
|
|
au noyau. Le champ <literal>path</literal> contient le chemin
|
|
d'accès à l'exécutable comme le voit le
|
|
noyau. Le champ <literal>attribute</literal> décrit le
|
|
binaire et précise les permissions sur le fichier. Le champ
|
|
<literal>subject</literal> 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 <systemitem class="username">robert</systemitem> est passé en
|
|
<systemitem class="username">root</systemitem> avant l'exécution de la
|
|
commande, mais l'audit se fait par rapport à
|
|
l'utilisateur authentifié original. Le champ
|
|
<literal>return</literal> indique la réussite de
|
|
l'exécution et le champ <literal>trailer</literal>
|
|
termine l'enregistrement.</para>
|
|
|
|
<para>Le format de sortie <acronym>XML</acronym> est également
|
|
supporté et peut être sélectionné en
|
|
utilisant l'argument <option>-x</option>.</para>
|
|
|
|
<para>Comme les journaux d'audit peuvent être très
|
|
gros, un sous-ensemble d'enregistrements peut être sélectionné
|
|
en utilisant <command>auditreduce</command>. Cet exemple
|
|
sélectionne tous les enregistrements produits pour
|
|
l'utilisateur <systemitem class="username">trhodes</systemitem> et
|
|
stockés dans le fichier
|
|
<replaceable>AUDITFILE</replaceable>:</para>
|
|
|
|
<screen>&prompt.root; <userinput>auditreduce -u <replaceable>trhodes</replaceable> /var/audit/<replaceable>AUDITFILE</replaceable> | praudit</userinput></screen>
|
|
|
|
<para>Les membres du groupe <systemitem class="groupname">audit</systemitem> sont
|
|
autorisés à lire les traces d'audit
|
|
présentes dans le répertoire <filename class="directory">/var/audit</filename>. Par défaut, ce
|
|
groupe est vide, par conséquent seul l'utilisateur
|
|
<systemitem class="username">root</systemitem> peut lire les traces d'audit. Des
|
|
utilisateurs peuvent être ajoutés au groupe
|
|
<systemitem class="groupname">audit</systemitem> 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.</para>
|
|
|
|
<sect2>
|
|
<title>Surveillance en direct à l'aide de tubes
|
|
d'audit</title>
|
|
|
|
<para>Les tubes (<quote>pipes</quote>) d'audit sont des
|
|
pseudo-périphériques <quote>clonables</quote> 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:</para>
|
|
|
|
<screen>&prompt.root; <userinput>praudit /dev/auditpipe</userinput></screen>
|
|
|
|
<para>Par défaut, les fichiers spéciaux de
|
|
périphériques correspondant aux tubes d'audit ne
|
|
sont accessibles qu'à l'utilisateur
|
|
<systemitem class="username">root</systemitem>. Pour les rendre accessibles aux
|
|
membres du groupe <systemitem class="groupname">audit</systemitem>, ajoutez une
|
|
règle <literal>devfs</literal> au fichier
|
|
<filename>/etc/devfs.rules</filename>:</para>
|
|
|
|
<programlisting>add path 'auditpipe*' mode 0440 group audit</programlisting>
|
|
|
|
<para>Consultez la page de manuel &man.devfs.rules.5; pour plus
|
|
d'information sur la configuration du système de
|
|
fichiers devfs.</para>
|
|
|
|
<warning>
|
|
<para>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 <command>praudit</command> est
|
|
exécuté depuis une session <acronym>SSH</acronym>, 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 <command>praudit</command>
|
|
sur un tube par
|
|
l'intermédiaire de sessions sans surveillance
|
|
précise des entrées/sorties.</para>
|
|
</warning>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Rotation et compression des fichiers de trace d'audit</title>
|
|
|
|
<para>Les traces d'audit sont écrites par le noyau, et sont
|
|
gérées par le <quote>démon</quote> d'audit,
|
|
&man.auditd.8;. Les administrateurs ne
|
|
devraient donc pas tenter d'utiliser &man.newsyslog.conf.5; ou
|
|
tout autre outil pour assurer la rotation directe des journaux
|
|
d'audit. A la place, l'utilitaire <command>audit</command>
|
|
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
|
|
<quote>démon</quote> 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:</para>
|
|
|
|
<screen>&prompt.root; <userinput>audit -n</userinput></screen>
|
|
|
|
<para>Si &man.auditd.8; ne tourne pas, cette
|
|
commande échouera et un message d'erreur sera
|
|
généré.</para>
|
|
|
|
<para>Ajouter la ligne suivante au fichier
|
|
<filename>/etc/crontab</filename> provoquera cette rotation
|
|
toutes les douze heures:</para>
|
|
|
|
<programlisting>0 */12 * * * root /usr/sbin/audit -n</programlisting>
|
|
|
|
<para>La modification sera prise en compte une fois que aurez
|
|
sauvegardé le fichier
|
|
<filename>/etc/crontab</filename>.</para>
|
|
|
|
<para>La rotation automatique du fichier d'une trace d'audit
|
|
basée sur la taille du fichier est possible à
|
|
l'aide de l'option <option>filesz</option> de
|
|
<filename>audit_control</filename> comme décrit dans
|
|
<xref linkend="audit-auditcontrol"/>.</para>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Compresser les traces d'audit</title>
|
|
|
|
<para>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 <quote>démon</quote> d'audit. La
|
|
procédure <filename>audit_warn</filename> 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
|
|
<filename>/etc/security/audit_warn</filename> pour compresser
|
|
les traces
|
|
d'audit à leur fermeture:</para>
|
|
|
|
<programlisting>#
|
|
# Compression des fichiers de trace d'audit à leur fermeture.
|
|
#
|
|
if [ "$1" = closefile ]; then
|
|
gzip -9 $2
|
|
fi</programlisting>
|
|
|
|
<para>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.</para>
|
|
</sect2>
|
|
</sect1>
|
|
</chapter>
|