III- Fonctionnement, avantages, inconvénients et
limites
1- Fonctionnement de SNORT
SNORT permet d'analyser le trafic réseau de type IP, il
peut être configuré pour fonctionner en trois modes :
- Le mode sniffer : dans ce mode, SNORT lit les paquets
circulant sur le réseau et les affiche d'une façon continue sur
l'écran ;
- Le mode « packet logger » : dans ce mode SNORT
journalise le trafic réseau dans des répertoires sur le disque
;
- Le mode détecteur d'intrusion réseau (NIDS) :
dans ce mode, SNORT analyse le trafic du réseau, compare ce trafic
à des règles déjà définies par l'utilisateur
et établit des actions à exécuter ;
2- Définition des règles de snort
Les règles de snort sont composées de deux parties
distinctes : le header et les options.
- Le header permet de spécifier le type d'alerte
à générer (alert, log..) et d'indiquer les champs de base
nécessaires au filtrage : le protocole (TCP, UDP ou ICMP), l'orientation
du trafic auquel la règle s'applique (unidirectionnel ou bidirectionnel)
ainsi que les adresses IP et ports sources et destination.
- Les options, spécifiées entre
parenthèses, permettent d'affiner l'analyse, en décomposant la
signature en différentes valeurs à observer parmi certains champs
du header ou parmi les données
L'entête de règle contient l'information qui
définit le `'qui, où, et quoi» d'un paquet, ainsi que quoi
faire dans l'évènement où le paquet dans une règle
avec tous les attributs indiqués dans la règle devrait se
présenter. Le premier élément dans une règle est
l'action de la règle. L'action de la règle dit à snort
quoi faire quand il trouve un paquet qui correspond aux critères de la
règle. Il y a cinq actions accessibles par défaut dans snort :
alert, log, pass, activate, et dynamic.
- Alert : génère une alerte en utilisant la
méthode d'alerte sélectionnée, et alors journalise le
paquet - Log : journalise le paquet
- Pass ; ignore le paquet
- Activate : alerte et alors active une autre règle
- Dynamic : reste passive jusqu'à être
activée par une règle activate, et donc agit comme une
règle log Les options de règle forment le coeur du moteur de
détection d'intrusion de snort combinant facilité d'utilisation,
puissance et flexibilité. Toutes les options de règle de snort
sont séparées les unes des autres par un caractère
point-virgule « ; ». Les mots clés des options de règle
sont séparés de leurs arguments avec un caractère deux
points « : ».
Ci- dessous les différentes options de règles
disponibles dans snort
- msg : affiche un message dans les alertes et journalise les
paquets
- ttl : teste la valeur du champ TTL de l'entête IP
- ipotion : regarde les champs des options IP pour des codes
spécifiques
- fragbits : teste les bits de fragmentation de l'entête
IP
- content : recherche un motif dans la charge d'un paquet
- content-list : recherche un ensemble de motifs dans la charge
d'un paquet
- sid : identifiant de signature contenue dans la base de
signature
3- Positionnement de SNORT dans le réseau
L'emplacement physique de la sonde SNORT sur le réseau
a un impact considérable sur son efficacité. Dans le cas d'une
architecture classique, composée d'un Firewall et d'une DMZ, trois
positions sont généralement envisageables :
Réalisé et présenté par
Yanice CHACHA
22
Mise en place d'un système de détection
d'intrusion avec SNORT
- avant le Firewall ou le routeur filtrant : dans cette
position, la sonde occupe une place de premier choix dans la détection
des attaques de sources extérieures visant l'entreprise. SNORT pourra
alors analyser le trafic qui sera éventuellement bloqué par le
Firewall. Les deux inconvénients de cette position du NIDS sont: primo,
le risque engendré par un trafic très important qui pourrait
entraîner une perte de fiabilité et secondo, étant
situé hors du domaine de protection du firewall, le NIDS est alors
exposé à d'éventuelles attaques pouvant le rendre
inefficace
- sur la DMZ : dans cette position, la sonde peut
détecter tout le trafic filtré par le Firewall et qui a atteint
la zone DMZ. Cette position de la sonde permet de surveiller les attaques
dirigées vers les différents serveurs de l'entreprise accessibles
de l'extérieur.
- sur le réseau interne : le positionnement du NIDS
à cet endroit nous permet d'observer les tentatives d'intrusion
parvenues à l'intérieur du réseau d'entreprise ainsi que
les tentatives d'attaques à partir de l'intérieur. Dans le cas
d'entreprises utilisant largement l'outil informatique pour la gestion de leur
activités ou de réseaux fournissant un accès à des
personnes peu soucieuses de la sécurité (réseaux
d'écoles et d'universités), cette position peut revêtir un
intérêt primordial.
Schéma explicatif du fonctionnement de
snort
4- Avantages, inconvénients et
Limites
a- Avantages
Snort est un logiciel libre qui concurrence habilement les
outils de détection d'intrusion commerciaux. Le format ouvert de ses
signatures est donc rapidement devenu un standard que les IDS commerciaux
commencent à intégrer. Cela représente un avantage
important, il s'agit là d'une des principales raisons du succès
de Snort. En effet, les IDS commerciaux ont tendance à cacher le contenu
de leurs signatures (la séquence précise que recherche le
logiciel pour identifier une attaque), cela oblige les clients à
dépendre d'eux pour bénéficier de nouvelles règles
de détections d'intrusions. Snort, lui, offre un format ouvert et
documenté qui permet d'écrire les règles de son choix. Un
autre avantage est la gratuité au niveau des licences qui permet
d'installer des sondes Snort en tout point du réseau. La
prolifération de ces sondes peut tout de même rapidement devenir
un handicap si nous travaillons sur un réseau plus conséquent que
celui de notre étude pour ce qui est de l'étude des rapports.
Réalisé et présenté par
Yanice CHACHA
23
Mise en place d'un système de détection
d'intrusion avec SNORT
b- Inconvénients
Souvent vulnérable par rapport à des attaques de
DoS (Denial of Service),
- SNORT a plus tendance que d'autres IDS à fournir des
fausses alertes (en moyenne, 70% des alertes remontées
sont fausses), par exemple à cause de petites
signatures comme phf qui déclenchent une alerte alors que cela peut
être une simple requête contenant les mots "dhfudge" ou "muphf".
- Ne peut pas traiter les flux cryptés car la
signature de ces attaques dépend évidemment du type de cryptage
et aussi
évidemment de la clé employée (c'est une
des raisons). Mais de toute manière, à ma connaissance, aucun IDS
ne sait traiter des flux cryptés.
- Un IDS fonctionne en mode binaire : il traduit toute
requête comme une intrusion ou comme une trame "permise".
Il n'existe pas d'intermédiaire entre les deux. Tout ce
qui est possible, est de donner un degré d'importance aux alertes.
Par contre, les vraies attaques menées par exemple sur
cgi-bin, ne sont pas toujours détectées...
c- Limites
Dilution temporelle des scans
Les IDS se basent sur certains critères autres que les
signatures, afin de détecter les attaques réseaux. Prenons
l'exemple d'un scan de port banal ciblant une machine du réseau de
l'IDS. Ce dernier sera automatiquement détecté étant
donné la fréquence des scans et une alerte sera remontée.
Cependant, les outils de scan disposent de plus en plus d'options et certains,
comme "nmap" dispose de précaution (mode "Paranoïd", "Sneaky") qui
permettent d'adapter la fréquence de ces scans, afin de leurrer l'IDS.
Par exemple, l'option -T permet de changer la fréquence des scans afin
de passer en dessous du seuil qui déclenche l'adresse. La commande
suivante permet d'effectuer des scans furtifs et discrets: "#nmap -P0 -sS -T
Sneaky -p 21, 20 ADDERSS_IP"
Le revers mapping
De même, certaines techniques de scan telles que le
"reverse mapping" disposent d'une élaboration accrue. Elle consiste
à envoyer des paquets à un ensemble de machines, avec le flag RST
positionné à "1". Ainsi, si l'on reçoit en retour le
message ICMP "Host Unreachable" d'une machine on sait qu'elle n'est pas
présente. Par contre, si l'on ne reçoit rien, il y a de grande
chance pour que la machine visée existe. L'outil "hping" (option "-R -c
1 -p IP_MACHINE") permet de telles opérations. Le mauvais trafic peut
alors être détecté selon la configuration de snort (car le
port source par défaut des paquets générés par
snort est 0). En utilisant l'argument -s, on peut éviter d'être
reconnu par l'IDS en mettant un port normal).
Inconvénients du mode
promiscuous
Par nature, les IDS doivent mettre leur carte réseau en
mode "promiscuous" ce qui va leur permettre de recevoir
l'intégralité des trames circulant sur le réseau. Ainsi,
l'IDS ne générera généralement aucun trafic et se
contentera d'aspirer tous les paquets. Cependant, ce mode spécial
affranchi la machine de la couche 2 et le filtrage sur les adresses MAC n'est
plus activé. Il se peut alors que la machine répondent à
certains messages (icmp echo request généré avec l'outil
"nemesis"). Si la machine n'est pas en mode "promiscuous", elle ignorera le
paquet sinon, elle répondra. Ce mode génère des
accès mémoire et processeur important et il est possible de
détecter de telles sondes en comparant les latences de temps de
réponse avec celles des machines du même brin LAN (ou proche). Des
temps de réponse trop importants sont significatifs d'une
activité gourmande en ressources tels que le "sniffing". On pourra alors
s'appuyer sur ces données pour valider la présence d'un IDS.
Surcharge de l'IDS
Réalisé et présenté par
Yanice CHACHA
24
Mise en place d'un système de détection
d'intrusion avec SNORT
Il est aussi possible d'envoyer une quantité importante
d'attaques bénignes afin de surcharger les alertes de l'IDS, et ainsi
glisser une attaque plus furtive qui aura du mal à être
identifiée, si le flot d'informations généré est
suffisant.
Scan Zombie
Le "scan zombie" permet de s'appuyer sur une autre machine,
afin de leurrer l'IDS sur la provenance de l'attaque. En effet, "nmap" dispose
de l'option "-sI" qui permet de forger des paquets adéquates afin de se
faire passer pour une autre machine, puis de déterminer le comportement
à adopter, en fonction de la réaction de la cible. Dans tous les
cas, l'assaillant ne peut être directement découvert par l'IDS.
|