<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://wikiold.home.tartarefr.eu/index.php?action=history&amp;feed=atom&amp;title=Security%2FAudit%2FAide%2FBrief</id>
	<title>Security/Audit/Aide/Brief - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="https://wikiold.home.tartarefr.eu/index.php?action=history&amp;feed=atom&amp;title=Security%2FAudit%2FAide%2FBrief"/>
	<link rel="alternate" type="text/html" href="https://wikiold.home.tartarefr.eu/index.php?title=Security/Audit/Aide/Brief&amp;action=history"/>
	<updated>2026-07-06T18:49:04Z</updated>
	<subtitle>Historique des versions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wikiold.home.tartarefr.eu/index.php?title=Security/Audit/Aide/Brief&amp;diff=2630&amp;oldid=prev</id>
		<title>Didier : Page créée avec « == Introduction ==  AIDE est un HIDS : Host-based Intrusion Detection System.  Le principe de ce logiciel est simple. Il s&#039;agit de construire une base de signatures (utili... »</title>
		<link rel="alternate" type="text/html" href="https://wikiold.home.tartarefr.eu/index.php?title=Security/Audit/Aide/Brief&amp;diff=2630&amp;oldid=prev"/>
		<updated>2014-03-21T13:41:11Z</updated>

		<summary type="html">&lt;p&gt;Page créée avec « == Introduction ==  AIDE est un HIDS : Host-based Intrusion Detection System.  Le principe de ce logiciel est simple. Il s&amp;#039;agit de construire une base de signatures (utili... »&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
AIDE est un HIDS : Host-based Intrusion Detection System.&lt;br /&gt;
&lt;br /&gt;
Le principe de ce logiciel est simple. Il s&amp;#039;agit de construire une base de signatures (utilisant des algorithmes d&amp;#039;empreinte cryptographique) de fichiers que l&amp;#039;on désire surveiller, et de re-calculer ces empreintes périodiquement ou au besoin, en les confrontant à la base. Si les empreintes sont différentes (au niveau du fichier, de sa date, de ses droits d&amp;#039;accès, de son inode ...), le logiciel aura ou pas détecté une modification de fichiers.&lt;br /&gt;
&lt;br /&gt;
Ces logiciels sont très utiles en cas d&amp;#039;intrusion, afin de découvrir ce qui a été changé (journaux modifiés, fichiers ajoutés à certains endroits, binaires comme netstat, lsof, who, sshd modifiés, fichiers de configuration, pages web, etc.). Cependant, ce type de logiciel n&amp;#039;est pas à voir comme protégeant le système. AIDE ne fera rien pour améliorer la sécurité d&amp;#039;un système Unix (AIDE n&amp;#039;existe que pour ces systèmes). C&amp;#039;est le dernier logiciel que&lt;br /&gt;
vous avez à installer sur votre système.&lt;br /&gt;
&lt;br /&gt;
Parallèlement, AIDE peut s&amp;#039;avérer très utile pour l&amp;#039;administration. En effet, il sera capable de détecter des erreurs commises (fichiers de configuration changés, ajoutés ou effacés, modifications de binaires).&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
Fichier &amp;lt;path&amp;gt;/etc/aide.conf &amp;lt;/path&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Example configuration file for AIDE.&lt;br /&gt;
&lt;br /&gt;
@@define DBDIR /var/lib/aide&lt;br /&gt;
@@define LOGDIR /var/log/aide&lt;br /&gt;
&lt;br /&gt;
# The location of the database to be read.&lt;br /&gt;
database=file:@@{DBDIR}/aide.db.gz&lt;br /&gt;
&lt;br /&gt;
# The location of the database to be written.&lt;br /&gt;
#database_out=sql:host:port:database:login_name:passwd:table&lt;br /&gt;
#database_out=file:aide.db.new&lt;br /&gt;
database_out=file:@@{DBDIR}/aide.db.new.gz&lt;br /&gt;
&lt;br /&gt;
# Whether to gzip the output to database&lt;br /&gt;
gzip_dbout=yes&lt;br /&gt;
&lt;br /&gt;
# Default.&lt;br /&gt;
verbose=5&lt;br /&gt;
&lt;br /&gt;
report_url=file:@@{LOGDIR}/aide.log&lt;br /&gt;
report_url=stdout&lt;br /&gt;
#report_url=stderr&lt;br /&gt;
#NOT IMPLEMENTED report_url=mailto:root@foo.com&lt;br /&gt;
#NOT IMPLEMENTED report_url=syslog:LOG_AUTH&lt;br /&gt;
&lt;br /&gt;
# These are the default rules.&lt;br /&gt;
#&lt;br /&gt;
#p:      permissions&lt;br /&gt;
#i:      inode:&lt;br /&gt;
#n:      number of links&lt;br /&gt;
#u:      user&lt;br /&gt;
#g:      group&lt;br /&gt;
#s:      size&lt;br /&gt;
#b:      block count&lt;br /&gt;
#m:      mtime&lt;br /&gt;
#a:      atime&lt;br /&gt;
#c:      ctime&lt;br /&gt;
#S:      check for growing size&lt;br /&gt;
#acl:           Access Control Lists&lt;br /&gt;
#selinux        SELinux security context&lt;br /&gt;
#xattrs:        Extended file attributes&lt;br /&gt;
#md5:    md5 checksum&lt;br /&gt;
#sha1:   sha1 checksum&lt;br /&gt;
#sha256:        sha256 checksum&lt;br /&gt;
#sha512:        sha512 checksum&lt;br /&gt;
#rmd160: rmd160 checksum&lt;br /&gt;
#tiger:  tiger checksum&lt;br /&gt;
&lt;br /&gt;
#haval:  haval checksum (MHASH only)&lt;br /&gt;
#gost:   gost checksum (MHASH only)&lt;br /&gt;
#crc32:  crc32 checksum (MHASH only)&lt;br /&gt;
#whirlpool:     whirlpool checksum (MHASH only)&lt;br /&gt;
&lt;br /&gt;
#R:             p+i+n+u+g+s+m+c+acl+selinux+xattrs+md5&lt;br /&gt;
#L:             p+i+n+u+g+acl+selinux+xattrs&lt;br /&gt;
#E:             Empty group&lt;br /&gt;
#&amp;gt;:             Growing logfile p+u+g+i+n+S+acl+selinux+xattrs&lt;br /&gt;
&lt;br /&gt;
# You can create custom rules like this.&lt;br /&gt;
# With MHASH...&lt;br /&gt;
# ALLXTRAHASHES = sha1+rmd160+sha256+sha512+whirlpool+tiger+haval+gost+crc32&lt;br /&gt;
ALLXTRAHASHES = sha1+rmd160+sha256+sha512+tiger&lt;br /&gt;
# Everything but access time (Ie. all changes)&lt;br /&gt;
EVERYTHING = R+ALLXTRAHASHES&lt;br /&gt;
&lt;br /&gt;
# Sane, with multiple hashes&lt;br /&gt;
# NORMAL = R+rmd160+sha256+whirlpool&lt;br /&gt;
NORMAL = R+rmd160+sha256&lt;br /&gt;
&lt;br /&gt;
# For directories, don&amp;#039;t bother doing hashes&lt;br /&gt;
DIR = p+i+n+u+g+acl+selinux+xattrs&lt;br /&gt;
&lt;br /&gt;
# Access control only&lt;br /&gt;
PERMS = p+i+u+g+acl+selinux&lt;br /&gt;
&lt;br /&gt;
# Logfile are special, in that they often change&lt;br /&gt;
LOG = &amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Just do md5 and sha256 hashes&lt;br /&gt;
LSPP = R+sha256&lt;br /&gt;
&lt;br /&gt;
# Some files get updated automatically, so the inode/ctime/mtime change&lt;br /&gt;
# but we want to know when the data inside them changes&lt;br /&gt;
DATAONLY =  p+n+u+g+s+acl+selinux+xattrs+md5+sha256+rmd160+tiger&lt;br /&gt;
&lt;br /&gt;
# Next decide what directories/files you want in the database.&lt;br /&gt;
&lt;br /&gt;
/boot   NORMAL&lt;br /&gt;
/bin    NORMAL&lt;br /&gt;
/sbin   NORMAL&lt;br /&gt;
/lib    NORMAL&lt;br /&gt;
/lib64  NORMAL&lt;br /&gt;
/opt    NORMAL&lt;br /&gt;
/usr    NORMAL&lt;br /&gt;
/root   NORMAL&lt;br /&gt;
# These are too volatile&lt;br /&gt;
!/usr/src&lt;br /&gt;
!/usr/tmp&lt;br /&gt;
&lt;br /&gt;
# Check only permissions, inode, user and group for /etc, but&lt;br /&gt;
# cover some important files closely.&lt;br /&gt;
/etc    PERMS&lt;br /&gt;
!/etc/mtab&lt;br /&gt;
# Ignore backup files&lt;br /&gt;
!/etc/.*~&lt;br /&gt;
/etc/exports  NORMAL&lt;br /&gt;
/etc/fstab    NORMAL&lt;br /&gt;
/etc/passwd   NORMAL&lt;br /&gt;
/etc/group    NORMAL&lt;br /&gt;
/etc/gshadow  NORMAL&lt;br /&gt;
/etc/shadow   NORMAL&lt;br /&gt;
/etc/security/opasswd   NORMAL&lt;br /&gt;
&lt;br /&gt;
/etc/hosts.allow   NORMAL&lt;br /&gt;
/etc/hosts.deny    NORMAL&lt;br /&gt;
&lt;br /&gt;
/etc/sudoers NORMAL&lt;br /&gt;
/etc/skel NORMAL&lt;br /&gt;
&lt;br /&gt;
/etc/logrotate.d NORMAL&lt;br /&gt;
&lt;br /&gt;
/etc/resolv.conf DATAONLY&lt;br /&gt;
&lt;br /&gt;
/etc/nscd.conf NORMAL&lt;br /&gt;
/etc/securetty NORMAL&lt;br /&gt;
&lt;br /&gt;
# Shell/X starting files&lt;br /&gt;
/etc/profile NORMAL&lt;br /&gt;
/etc/bashrc NORMAL&lt;br /&gt;
/etc/bash_completion.d/ NORMAL&lt;br /&gt;
/etc/login.defs NORMAL&lt;br /&gt;
/etc/zprofile NORMAL&lt;br /&gt;
/etc/zshrc NORMAL&lt;br /&gt;
/etc/zlogin NORMAL&lt;br /&gt;
/etc/zlogout NORMAL&lt;br /&gt;
/etc/profile.d/ NORMAL&lt;br /&gt;
/etc/X11/ NORMAL&lt;br /&gt;
&lt;br /&gt;
# Pkg manager&lt;br /&gt;
/etc/yum.conf NORMAL&lt;br /&gt;
/etc/yumex.conf NORMAL&lt;br /&gt;
/etc/yumex.profiles.conf NORMAL&lt;br /&gt;
/etc/yum/ NORMAL&lt;br /&gt;
/etc/yum.repos.d/ NORMAL&lt;br /&gt;
&lt;br /&gt;
/var/log   LOG&lt;br /&gt;
/var/run/utmp LOG&lt;br /&gt;
&lt;br /&gt;
# This gets new/removes-old filenames daily&lt;br /&gt;
!/var/log/sa&lt;br /&gt;
# As we are checking it, we&amp;#039;ve truncated yesterdays size to zero.&lt;br /&gt;
!/var/log/aide.log&lt;br /&gt;
&lt;br /&gt;
# LSPP rules...&lt;br /&gt;
# AIDE produces an audit record, so this becomes perpetual motion.&lt;br /&gt;
# /var/log/audit/ LSPP&lt;br /&gt;
/etc/audit/ LSPP&lt;br /&gt;
/etc/libaudit.conf LSPP&lt;br /&gt;
/usr/sbin/stunnel LSPP&lt;br /&gt;
/var/spool/at LSPP&lt;br /&gt;
/etc/at.allow LSPP&lt;br /&gt;
/etc/at.deny LSPP&lt;br /&gt;
/etc/cron.allow LSPP&lt;br /&gt;
/etc/cron.deny LSPP&lt;br /&gt;
/etc/cron.d/ LSPP&lt;br /&gt;
/etc/cron.daily/ LSPP&lt;br /&gt;
/etc/cron.hourly/ LSPP&lt;br /&gt;
/etc/cron.monthly/ LSPP&lt;br /&gt;
/etc/cron.weekly/ LSPP&lt;br /&gt;
/etc/crontab LSPP&lt;br /&gt;
/var/spool/cron/root LSPP&lt;br /&gt;
&lt;br /&gt;
/etc/login.defs LSPP&lt;br /&gt;
/etc/securetty LSPP&lt;br /&gt;
/var/log/faillog LSPP&lt;br /&gt;
/var/log/lastlog LSPP&lt;br /&gt;
&lt;br /&gt;
/etc/hosts LSPP&lt;br /&gt;
/etc/sysconfig LSPP&lt;br /&gt;
&lt;br /&gt;
/etc/inittab LSPP&lt;br /&gt;
/etc/grub/ LSPP&lt;br /&gt;
/etc/rc.d LSPP&lt;br /&gt;
&lt;br /&gt;
/etc/ld.so.conf LSPP&lt;br /&gt;
&lt;br /&gt;
/etc/localtime LSPP&lt;br /&gt;
&lt;br /&gt;
/etc/sysctl.conf LSPP&lt;br /&gt;
&lt;br /&gt;
/etc/modprobe.conf LSPP&lt;br /&gt;
&lt;br /&gt;
/etc/pam.d LSPP&lt;br /&gt;
/etc/security LSPP&lt;br /&gt;
/etc/aliases LSPP&lt;br /&gt;
/etc/postfix LSPP&lt;br /&gt;
&lt;br /&gt;
/etc/ssh/sshd_config LSPP&lt;br /&gt;
/etc/ssh/ssh_config LSPP&lt;br /&gt;
&lt;br /&gt;
/etc/stunnel LSPP&lt;br /&gt;
&lt;br /&gt;
/etc/vsftpd.ftpusers LSPP&lt;br /&gt;
/etc/vsftpd LSPP&lt;br /&gt;
&lt;br /&gt;
/etc/issue LSPP&lt;br /&gt;
/etc/issue.net LSPP&lt;br /&gt;
&lt;br /&gt;
/etc/cups LSPP&lt;br /&gt;
&lt;br /&gt;
# With AIDE&amp;#039;s default verbosity level of 5, these would give lots of&lt;br /&gt;
# warnings upon tree traversal. It might change with future version.&lt;br /&gt;
#&lt;br /&gt;
#=/lost\+found    DIR&lt;br /&gt;
#=/home           DIR&lt;br /&gt;
&lt;br /&gt;
# Ditto /var/log/sa reason...&lt;br /&gt;
!/var/log/and-httpd&lt;br /&gt;
&lt;br /&gt;
# Admins dot files constantly change, just check perms&lt;br /&gt;
/root/\..* PERMS&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Admon/note|variables database|Les deux premières variables sont des URL. Il est possible d&amp;#039;utiliser &amp;#039;&amp;#039;&amp;#039;stdin&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;stdout&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;stderr&amp;#039;&amp;#039;&amp;#039;, un fichier, ou un descripteur de fichier, et bien d&amp;#039;autres choses encore plus tard dans l&amp;#039;évolution du logiciel.}}&lt;br /&gt;
&lt;br /&gt;
On définit les fichiers à inclure dans la base de données :&lt;br /&gt;
 fichier		Groupe&lt;br /&gt;
&lt;br /&gt;
Un ! placé avant le fichier l&amp;#039;ignore, et un = rend le fonctionnement non-récursif.&lt;br /&gt;
Les groupes d&amp;#039;éléments à inclure et à surveiller sont :&lt;br /&gt;
* p : les permissions&lt;br /&gt;
* i : l&amp;#039;inode&lt;br /&gt;
* n : le nombre de liens&lt;br /&gt;
* u : l&amp;#039;utilisateur auquel appartient le fichier&lt;br /&gt;
* g : son groupe&lt;br /&gt;
* s : sa taille&lt;br /&gt;
* m : sa date de dernière modification des données&lt;br /&gt;
* a : sa date de dernier accès&lt;br /&gt;
* c : sa date de dernière modification de statut (droits, etc.)&lt;br /&gt;
* S : vérifie que la taille augmente (fichier de log par exemple)&lt;br /&gt;
ainsi que les noms des algorithmes d&amp;#039;empreinte.&lt;br /&gt;
&lt;br /&gt;
Plusieurs « méta-groupes » sont disponibles :&lt;br /&gt;
* R équivaut à p+i+n+u+g+s+m+c+md5&lt;br /&gt;
* L à p+i+n+u+g&lt;br /&gt;
* &amp;gt; à p+u+g+i+n+S.&lt;br /&gt;
&lt;br /&gt;
Il est conseillé d&amp;#039;utiliser plusieurs types d&amp;#039;algorithmes d&amp;#039;empreinte différents.&lt;br /&gt;
&lt;br /&gt;
Attention, si un premier champ commence par /, il s&amp;#039;agit d&amp;#039;une expression régulière, donc &amp;lt;code&amp;gt;/blah&amp;lt;/code&amp;gt; équivaut à &amp;lt;code&amp;gt;/blah.*&amp;lt;/code&amp;gt;, vous voudrez peut-être utiliser &amp;lt;code&amp;gt;/blah$&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il est important de bien prendre du temps à construire votre fichier de configuration en fonction de vos besoins (système entier, arborescence web, utilisateur particulier, etc.). Notez que le fichier /etc/mtab est supprimé de la base,&lt;br /&gt;
car son contenu change sans-cesse; la négation doit être placée avant la déclaration du répertoire.&lt;br /&gt;
&lt;br /&gt;
== Utiliser AIDE de manière efficace ==&lt;br /&gt;
&lt;br /&gt;
=== L&amp;#039;initialisation ===&lt;br /&gt;
&lt;br /&gt;
La première chose à faire est de créer une première base de signatures :&lt;br /&gt;
 aide --init&lt;br /&gt;
&lt;br /&gt;
Cette commande va créer un fichier /var/adm/aide/db/aide.db.new, qu&amp;#039;il convient de renommer &amp;#039;&amp;#039;&amp;#039;manuellement&amp;#039;&amp;#039;&amp;#039; en aide.db.&lt;br /&gt;
La base initiale de signatures est donc créée. Il s&amp;#039;agit d&amp;#039;un fichier texte qu&amp;#039;il est alors possible de lire afin de vérifier que tous les fichiers ont été pris en compte, c&amp;#039;est-à-dire que les expressions régulières sont correctes.&lt;br /&gt;
&lt;br /&gt;
=== Vérifier la base périodiquement ===&lt;br /&gt;
&lt;br /&gt;
Ensuite périodiquement, il est nécessaire de vérifier l&amp;#039;intégrité des fichiers. &lt;br /&gt;
&lt;br /&gt;
Ce peut-être une fois par jour, ou par exemple toutes les 5 minutes si la base contient uniquement les fichiers de votre site web; en cas de « defacement », AIDE préviendra donc en un maximum de 5 minutes.&lt;br /&gt;
&lt;br /&gt;
Cela se fait simplement par :&lt;br /&gt;
 aide --check&lt;br /&gt;
&lt;br /&gt;
Cette commande est silencieuse si AIDE ne trouve aucune différence. Elle peut donc être placée telle-quelle dans une crontab.&lt;br /&gt;
&lt;br /&gt;
Cependant, si des fichiers sont normalement modifiés (ajout d&amp;#039;un utilisateur, modification de configuration, mise à jour du système, ...), certains retours sont normaux. Deux choix s&amp;#039;offrent donc à nous :&lt;br /&gt;
* recréer la base entièrement lorsque des modifications sont faites.&lt;br /&gt;
* modifier cette base en incluant les changement trouvés&lt;br /&gt;
&lt;br /&gt;
Cette deuxième solution est mise en oeuvre par la commande :&lt;br /&gt;
 aide --update&lt;br /&gt;
&lt;br /&gt;
Un nouveau fichier aide.db.new est alors créé, il convient également de le remplacer par aide.db. Voici donc l&amp;#039;utilité du suffixe .new lors d&amp;#039;une création de base.&lt;br /&gt;
&lt;br /&gt;
Avec cette commande en crontab, seuls les deltas apparaîtront. Bien entendu, cette deuxième méthode n&amp;#039;est pas compatible avec l&amp;#039;utilisation (recommandée) d&amp;#039;un support non-inscriptible, puisque nécessitant alors une intervention&lt;br /&gt;
humaine pour déprotéger la disquette ou graver un autre CD-ROM.&lt;/div&gt;</summary>
		<author><name>Didier</name></author>
	</entry>
</feed>