|
1.
AIDE (Advanced Intrusion Detection Environment)
AIDE est un système de détection d'intrusion (« Host-Based Intrusion
Detection System » (HIDS)) qui s'installe sur la machine à protéger. C'est
une alternative gratuite à Tripwire. (Si vous connaissez déjà Tripwire, vous
n'aurez aucune difficulté à configurer AIDE.) Les HIDS sont utilisés pour
détecter des changements dans les fichiers importants du système (programmes
binaires et fichiers de configuration), habituellement par calcul d'une somme de
vérification cryptographique unique pour chaque fichier. Les sommes de
vérification sont conservées dans un endroit sûr. Sur une base réguilière (par
exemple une fois par jour), les sommes que l'on considère fiables sont comparées
à celles générés à partir des fichiers présents à ce moment sur le système. On
peut alors déterminer si des fichiers ont été modifiés. Les HIDS sont une
excellente méthode de détection des changements non autorisés qui peuvent avoir
lieu sur votre système. Leur mise en œuvre et leur utilisation nécessite
toutefois quelques efforts.
Le fichier de configuration est basé sur des expressions rationnelles, des
macros et des règles concernant les fichiers et répertoires. Nous avons les
macros suivantes :
| Macro |
Description |
Syntaxe |
| ifdef |
Si défini |
@@ifdef "nom" |
| ifndef |
Si non défini |
@@ifndef "nom" |
| define |
Définit une variable |
@@define "nom" "valeur" |
| undef |
Enlève la définition d'une variable |
@@undef "nom" |
| ifhost |
si "nom d'hôte" |
@@ifhost "nom hôte" |
| ifnhost |
si non "nom d'hôte" |
@@ifnhost "nom hôte" |
| endif |
Endif doit être utilisé après chacune des macros ci-dessus à part define et undef |
@@endif |
Ces macros deviennent très pratiques si vous avez plus d'une machine Gentoo et
désirez utiliser AIDE sur chacune d'entre elles, bien que toutes les machines
n'aient pas les mêmes utilisateurs ou services.
Nous devons ensuite vérifier les indicateurs sur les fichiers ou les
répertoires. Ils sont formés d'une combinaison de permissions, de propriétés
de fichiers et de sommes de vérification.
| Indicateur |
Description |
| p |
Permissions |
| i |
inode |
| n |
Nombre de liens |
| u |
Utilisateur |
| g |
Groupe |
| s |
Taille |
| b |
Nombre de blocs |
| m |
mtime |
| a |
atime |
| c |
ctime |
| S |
Vérifie si la taille augmente |
| md5 |
Somme de vérification md5 |
| sha1 |
Somme de vérification sha1 |
| rmd160 |
Somme de vérification rmd160 |
| tiger |
Somme de vérification tiger |
| R |
p+i+n+u+g+s+m+c+md5 |
| L |
p+i+n+u+g |
| E |
Groupe vide |
| > |
Taille du fichier journal en augmentation p+u+g+i+n+S |
Et, si AIDE est compilé avec le support mhash, vous disposerez également
de :
| Indicateur |
Description |
| haval |
Somme de vérification haval |
| gost |
Somme de vérification gost |
| crc32 |
Somme de vérification crc32 |
Vous pouvez à présent créer vos propres règles en combinant les indicateurs
de cette façon :
Exemple de code 1.1 : créer un ensemble de règles pour AIDE |
All=R+a+sha1+rmd160
Norm=s+n+b+md5+sha1+rmd160
|
La dernière chose dont nous avons besoin pour créer notre propre fichier de
configuration est de comprendre comment ajouter une règle à un fichiers ou un
répertoire. Pour ce faire, combinez le nom du fichier ou du répertoire et celui
de la règle. AIDE ajoutera les fichiers récursivement à moins que vous ne
précisiez une règle différente.
| Indicateur |
Description |
| ! |
Ne pas ajouter ce fichier ou répertoire. |
| = |
Ajouter ce répertoire mais sans récursion. |
Regardons à présent l'exemple complet :
Exemple de code 1.1 : /etc/aide/aide.conf |
@@ifndef TOP DIR
@@define TOPDIR /
@@endif
@@ifndef AIDEDIR
@@define AIDEDIR /etc/aide
@@endif
@@ifhost smbserv
@@define smbactive
@@endif
# L'endroit où lire la base de données.
database=file:@@{AIDEDIR}/aide.db
# L'endroit où inscrire la base de données.
database_out=file:aide.db.new
verbose=20
report_url=stdout
# Définition des règles
All=R+a+sha1+rmd160
Norm=s+n+b+md5+sha1+rmd160
@@{TOPDIR} Norm
!@@{TOPDIR}etc/aide
!@@{TOPDIR}dev
!@@{TOPDIR}media
!@@{TOPDIR}mnt
!@@{TOPDIR}proc
!@@{TOPDIR}root
!@@{TOPDIR}sys
!@@{TOPDIR}tmp
!@@{TOPDIR}var/log
!@@{TOPDIR}var/run
!@@{TOPDIR}usr/portage
@@ifdef smbactive
!@@{TOPDIR}etc/smb/private/secrets.tdb
@@endif
=@@{TOPDIR}home Norm
|
Dans l'exemple ci-dessus, nous spécifions avec quelques macros l'emplacement des
répertoires racines et du répertoire de AIDE. AIDE consulte
/etc/aide/aide.db lorsqu'il vérifie l'intégrité d'un fichier.
Toutefois, lors de la mise à jour ou de la création d'un fichier, l'information
est conservée dans /etc/aide/aide.db.new. Cela permet d'éviter
d'écraser automatiquement le fichier de la base de données précédente. L'option
report_URL n'est pas encore implémentée, mais l'intention de l'auteur
était de permettre l'envoi d'un courriel ou l'exécution de scripts.
L'ebuild de AIDE contient une configuration par défaut, un script d'aide à la
configuration et un script crontab. Le script d'aide à la configuration
contient une interface plus facile à utiliser. Pour afficher les options,
exécutez aide --help. Pour démarrer, il suffit de lancer aide
-i et le script crontab devrait détecter la base de données et envoyer des
courriels chaque jour. Il est recommandé de vérifier le contenu du fichier
/etc/aide/aide.conf pour vous assurer qu'il correspond à votre
système.
Note :
en fonction des indicateurs que vous avez mis, de la puissance de votre
processeur et de la rapidité d'accès à votre disque dur, cela peut prendre un
certain temps d'exécution.
|
Note :
rappelez-vous de paramétrer un alias pour le courrier électronique de root.
Sinon, il y a des chances que vous ne receviez jamais ce qu'AIDE vous envoie.
|
Il existe des risques inhérents à l'utilisation d'une base de données locale.
Si un attaquant sait qu'AIDE est installé, il essaiera de corrompre la base ou
de modifier /usr/bin/aide. Vous devriez donc utiliser un CD (ou
un autre média) pour y copier le fichier .db ainsi que les fichiers binaires
d'AIDE.
Pour plus d'informations, consultez la page du projet AIDE.
1.
Snort
Snort est un système de détection d'intrusion sur le réseau. Pour l'installer
et le configurer, utilisez les exemples suivants.
Exemple de code 1.1 : /etc/conf.d/snort |
PID FILE=/var/run/snort_eth0.pid
MODE="full"
NETWORK="10.0.0.0/24"
LOG DIR="/var/log/snort"
CO NF=/etc/snort/snort.Cong
SNORT_OPTS="-D -s -u snort -dev -l $LOGDIR -h $NETWORK -c $CONF"
|
Exemple de code 1.1 : /etc/snort/snort.conf |
var HOME_NET 10.0.0.0/24
var EXTERNAL_NET any
var SMTP $HOME_NET
var HTTP_SERVERS $HOME_NET
var SQL_SERVERS $HOME_NET
var DNS_SERVERS [10.0.0.2/32,212.242.40.51/32]
var RULE_PATH ./
preprocessor frag2
preprocessor stream4: detect_scans detect_state_problems detect_scans disable_evasion_alerts
preprocessor stream4_reassemble: ports all
preprocessor http_decode: 80 8080 unicode iis_alt_unicode double_encode iis_flip_slash full_whitespace
preprocessor rpc_decode: 111 32771
preprocessor bo: -nobrute
preprocessor telnet_decode
include classification.config
include $RULE_PATH/bad-traffic.rules
include $RULE_PATH/exploit.rules
include $RULE_PATH/scan.rules
include $RULE_PATH/finger.rules
include $RULE_PATH/ftp.rules
include $RULE_PATH/telnet.rules
include $RULE_PATH/smtp.rules
include $RULE_PATH/rpc.rules
include $RULE_PATH/rservices.rules
include $RULE_PATH/dos.rules
include $RULE_PATH/ddos.rules
include $RULE_PATH/dns.rules
include $RULE_PATH/tftp.rules
include $RULE_PATH/web-cgi.rules
include $RULE_PATH/web-coldfusion.rules
include $RULE_PATH/web-iis.rules
include $RULE_PATH/web-frontpage.rules
include $RULE_PATH/web-misc.rules
include $RULE_PATH/web-attacks.rules
include $RULE_PATH/sql.rules
include $RULE_PATH/x11.rules
include $RULE_PATH/icmp.rules
include $RULE_PATH/netbios.rules
include $RULE_PATH/misc.rules
include $RULE_PATH/attack-responses.rules
include $RULE_PATH/backdoor.rules
include $RULE_PATH/shellcode.rules
include $RULE_PATH/policy.rules
include $RULE_PATH/porn.rules
include $RULE_PATH/info.rules
include $RULE_PATH/icmp-info.rules
include $RULE_PATH/virus.rules
# include $RULE_PATH/experimental.rules
include $RULE_PATH/local.rules
|
Exemple de code 1.1 : /etc/snort/classification.config |
config classification: not-suspicious,Not Suspicious Traffic,3
config classification: unknown,Unknown Traffic,3
config classification: bad-unknown,Potentially Bad Traffic, 2
config classification: attempted-recon,Attempted Information Leak,2
config classification: successful-recon-limited,Information Leak,2
config classification: successful-recon-largescale,Large Scale Information Leak,2
config classification: attempted-dos,Attempted Denial of Service,2
config classification: successful-dos,Denial of Service,2
config classification: attempted-user,Attempted User Privilege Gain,1
config classification: unsuccessful-user,Unsuccessful User Privilege Gain,1
config classification: successful-user,Successful User Privilege Gain,1
config classification: attempted-admin,Attempted Administrator Privilege Gain,1
config classification: successful-admin,Successful Administrator Privilege Gain,1
# NOUVELLES CLASSIFICATIONS
config classification: rpc-portmap-decode,Decode of an RPC Query,2
config classification: shellcode-detect,Executable code was detected,1
config classification: string-detect,A suspicious string was detected,3
config classification: suspicious-filename-detect,A suspicious filename was detected,2
config classification: suspicious-login,An attempted login using a suspicious username was detected,2
config classification: system-call-detect,A system call was detected,2
config classification: tcp-connection,A TCP connection was detected,4
config classification: trojan-activity,A Network Trojan was detected, 1
config classification: unusual-client-port-connection,A client was using an unusual port,2
config classification: network-scan,Detection of a Network Scan,3
config classification: denial-of-service,Detection of a Denial of Service Attack,2
config classification: non-standard-protocol,Detection of a non-standard protocol or event,2
config classification: protocol-command-decode,Generic Protocol Command Decode,3
config classification: web-application-activity,access to a potentially vulnerable web application,2
config classification: web-application-attack,Web Application Attack,1
config classification: misc-activity,Misc activity,3
config classification: misc-attack,Misc Attack,2
config classification: icmp-event,Generic ICMP event,3
config classification: kickass-porn,SCORE! Get the lotion!,1
|
Pour plus d'informations, consultez le site de Snort.
1.
Détecter les logiciels malfaisants avec chkrootkit
Les HIDS tels que AIDE sont d'excellents outils pour détecter les changements
apportés à votre système, mais disposer d'une ligne de défense supplémentaire
ne peut pas vous nuire. chkrootkit est un utilitaire servant à scanner
les fichiers système classiques pour y repérer des « rootkits »
(des logiciels conçus pour dissimuler les actions d'un intrus et lui
permettre de conserver son accès). chkrootkit scanne aussi votre système
pour y repérer des logiciels malfaisants, par exemple des programmes servant à
espionner vos entrées clavier. Bien que chkrootkit et ses alternatives
(tel que rkhunter) soient des outils précieux à la fois pour la
maintenance d'un système et pour le repérage des intrus après une attaque, ils
ne peuvent garantir la sécurité de votre système.
La meilleure façon d'utiliser chkrootkit pour détecter une intrusion est
de l'exécuter régulièrement à partir de cron. Tout d'abord, exécutez
app-forensics/chkrootkit. chkrootkit peut être exécuté en
tapant la commande du même nom, ou à partir de cron grâce à une entrée
comme celle qui suit :
Exemple de code 1.1 : Planifier l'exécution de chkrootkit en tant que tâche cron |
0 3 * * * /usr/sbin/chkrootkit
|
|
Dernière mise à jour le 19 juillet 2010 |
|
Donate to support our development efforts.
|
|
|