Académique Documents
Professionnel Documents
Culture Documents
http://nassih.com
MOHAMED NASSIH.
1. Introduction.
La croissance de l’Internet et l’ouverture des systèmes ont fait que les attaques dans les
réseaux informatiques soient de plus en plus nombreuses. D’une part les vulnérabilités en matière
de sécurité s'intensifient, au niveau de la conception des protocoles de communication ainsi que
au niveau de leur implantation et d’autre part les connaissances, les outils et les scriptes pour
lancer les attaques sont facilement disponibles et exploitables. D’où la nécessité d’un système de
détection d’intrusions (SDI).
Un SDI doit être conçu dans une politique globale de sécurité. L’objectif d’un SDI est de
détecter toute violation liée à la politique de sécurité, il permet ainsi de signaler les attaques.
Nous commençons par une brève explication de quelques notions et définitions de base,
puis Nous décrivons la mise en place et la configuration de SNORT, un système de détection
d’intrusion gratuit sous Linux.
2. Définitions et concepts.
2.1. Les systèmes de détection d’intrusion.
On parle d’intrusion lorsqu’une tierce partie essaie d’avoir de l’information et/ou accéder
à un système ou plusieurs systèmes connectés en réseau. Le rôle d’un système de détection
d’intrusion est de détecter et avertir l’administrateur système de l’existence d’une telle intrusion.
Un système de détection d’intrusion (SDI) est basé sur un renifleur (sniffer) avec un
moteur qui analyse le trafic capturé selon des règles qui décrivent les caractéristiques d’un trafic à
signaler. Un SDI est capable d’analyser le trafic à tous les niveaux, liaison de données, réseau,
transport et application.
La signature est en général une chaîne de caractère, que vous recherchez à l'intérieur d'un
paquet de données. Par exemple la présence de “/scripts/iisadmin/default.htm” dans un paquet à
destination d’un serveur Web IIS (Internet Information Services), pourra indiquer une intrusion.
(tentative d’accès à la page d’administration de IIS).
Dans le cas du système SNORT, la reconnaissance des attaques est basée sur le concept
d’analyse de chaînes de caractères présente dans le paquet. Pour que le système puisse être
capable de détecter une attaque, cette dernière doit être décrite par une signature. C’est avec cette
signature qu’on pourra être capable d’écrire la règle que le SDI va utiliser pour la détection. La
figure 2.1 représente la règle qui va permettre de signaler les paquets qui contient (dans URL) la
chaîne “/scripts/iisadmin/default.htm”.
L’architecture de SNORT est organisée en modules, elle est composée de quatre grands
modules : Le décodeur de paquets, les préprocesseurs, le moteur de détection et le système
d’alerte et d’enregistrement de log.
Un décodeur de paquets est composé de plusieurs sous décodeurs qui sont organisés par
protocole (Ethernet, IP, TCP..), ces décodeurs transforme les éléments des protocoles en une
structure de données interne. (Voir figure 3.2).
C’est la partie la plus importante dans un SDI. Le moteur de détection utilise les règles
pour faire la détection des activités d’intrusion. Si un paquet correspond à une règle une alerte est
générée. Les règles sont groupées en plusieurs catégories sous forme de fichiers. SNORT vient
avec un ensemble de règles prédéfini, voir figure 3.3.
Ces règles ne sont pas activées automatiquement, il faut les activer dans le fichier de
configuration snort.conf. Chaque fichier contient des règles décrit un type de trafic à signaler.
(Voir figure 3.4).
Le système d’alerte et d’enregistrement des logs s’occupe de la génération des logs et des
alertes. Les alertes sont stockées par défaut dans le répertoire /var/log/snort/.
Dés que le système devient opérationnel, on pourra consulter les alertes générées
directement dans les fichiers textes ou bien utilisé une console de gestion. ACID (Analysis
Console for Intrusion Detection), est une application qui fournie une console de gestion et qui
permet la visualisation des alertes en mode graphique. Les alertes dans ce cas sont stockées dans
une base de données mysql.
SNORT est une application écrite en C. les programmes sources sont dans le répertoire
snort-2.1.0/src/. Le programme snort.c représente la routine principale de SNORT, le décodeur
des paquets est implémenté dans le programme decode.c. rules.c est la routine qui s’occupe des
règles. Le moteur de détection est implémenté dans le programme detect.c et Le moteur
d’enregistrement est dans log.c.
Il est très utile de consulter le contenu de ces programmes et voir comment SNORT
capture les paquets et détecte les attaques.
L’emplacement d’un SDI dépend de types d’activités d’intrusion qu’on veut détecter. Si
l’entreprise a une seule connexion WAN alors le meilleur emplacement peut être juste derrière le
routeur. Dans le cas où l’entreprise à plusieurs connexion, on peut placer un SDI sur chaque
liaison.
La figure 4.1 montre un exemple de réseau avec un SDI. Dans ce cas il est connecté à un
concentrateur entre le réseau local et le pare-feu. Le trafic est donc visible dans les deux
directions.
Dans le cas d’un réseau avec une zone démilitarisée, un SDI peut être placé dans cette zone,
de cette façon on pourra détecter les attaques qui visent les serveurs de l’entreprise. Les attaques
peuvent être lancées de l’intérieur de l’entreprise, il est donc préférable d’avoir un SDI qui contrôle le
trafic interne et signale les anomalies.