Académique Documents
Professionnel Documents
Culture Documents
Si la scurit devient aujourd'hui un domaine trs en vogue, il reste nanmoins trs vaste
et souvent complexe prendre en main. Ce document a pour but de vous aider distinguer
les diffrents types d'attaques informatiques existantes, mais il vise galement expliquer
le fonctionnement et la mise en place de diffrents systmes de dtection d'intrusions.
Ce document a t ralis dans le cadre d'un sujet d'initiation la recherche en Master
Informatique. Il regroupe de nombreuses heures de recherches, sur les diffrents types
d'attaques, les systmes de dtection d'intrusions, la mise en uvre et comparaison de
diffrents systmes, ainsi qu'une explication des diffrents algorithmes de Pattern Matching.
I - Introduction..............................................................................................................................................................4
II - Les diffrents types d'attaques.............................................................................................................................. 4
II-A - Anatomie d'une attaque................................................................................................................................ 4
II-B - Les attaques rseau..................................................................................................................................... 5
II-B-1 - Les techniques de scan....................................................................................................................... 5
II-B-2 - IP Spoofing........................................................................................................................................... 6
II-B-3 - ARP Spoofing (ou ARP Redirect)........................................................................................................ 6
II-B-4 - DNS Spoofing.......................................................................................................................................6
II-B-5 - Fragments attacks................................................................................................................................ 7
II-B-6 - TCP Session Hijacking.........................................................................................................................7
II-C - Les attaques applicatives............................................................................................................................. 7
II-C-1 - Les problmes de configuration...........................................................................................................7
II-C-2 - Les bogues...........................................................................................................................................8
II-C-3 - Les buffer overflows............................................................................................................................. 8
II-C-4 - Les scripts............................................................................................................................................ 8
II-C-5 - Les injections SQL............................................................................................................................... 8
II-C-6 - Man in the middle................................................................................................................................ 8
II-D - Le Dni de service....................................................................................................................................... 9
II-E - Actuellement..................................................................................................................................................9
III - Dtection d'attaques : les IDS............................................................................................................................ 10
III-A - Les diffrents types d'IDS..........................................................................................................................10
III-A-1 - Les systmes de dtection d'intrusions (IDS)................................................................................... 10
III-A-2 - Les systmes de dtection d'intrusions rseau (NIDS)...............................................................10
III-A-3 - Les systmes de dtection d'intrusions de type hte (HIDS)........................................................... 10
III-A-4 - Les systmes de dtection d'intrusions hybrides ........................................................................ 11
III-A-5 - Les systmes de prvention d'intrusions (IPS)................................................................................. 11
III-A-6 - Les systmes de prvention d'intrusions kernel (KIDS/KIPS)..................................................... 12
III-A-7 - Les firewalls.......................................................................................................................................12
III-A-8 - Les technologies complmentaires................................................................................................... 12
III-B - Les mthodes de dtection....................................................................................................................... 13
III-B-1 - L'approche par scnario (misuse detection)..................................................................................... 13
III-B-2 - L'approche comportementale (Anomaly Detection).......................................................................... 14
III-B-3 - Les mthodes rpandues..................................................................................................................15
III-C - Principes gnraux et installation technique............................................................................................. 15
III-C-1 - Dploiement d'un NIDS.....................................................................................................................16
III-C-2 - Problmes techniques....................................................................................................................... 17
III-C-3 - Complmentarit des IDS................................................................................................................. 18
III-D - Normalisation............................................................................................................................................. 18
III-E - Techniques antiIDS.................................................................................................................................... 19
III-E-1 - Dtecter un IDS.................................................................................................................................19
III-E-2 - Dni de services contre un IDS........................................................................................................ 20
III-E-3 - Techniques d'insertion....................................................................................................................... 20
III-E-4 - Techniques d'vasion........................................................................................................................ 20
III-F - Critres de tests d'un IDS..........................................................................................................................22
IV - Mise en uvre d'IDS......................................................................................................................................... 22
IV-A - NIDS / NIPS : Snort................................................................................................................................... 22
IV-A-1 - Description.........................................................................................................................................22
IV-A-2 - Installation......................................................................................................................................... 23
IV-A-3 - Configuration..................................................................................................................................... 24
IV-A-4 - Excution...........................................................................................................................................24
IV-A-5 - Cration de nouvelles rgles............................................................................................................ 25
IV-A-6 - La console BASE.............................................................................................................................. 26
IV-B - NIDS : Bro..................................................................................................................................................27
IV-B-1 - Description.........................................................................................................................................27
IV-B-2 - Installation......................................................................................................................................... 27
IV-B-3 - Configuration..................................................................................................................................... 28
IV-B-4 - Excution...........................................................................................................................................28
IV-B-5 - Cration de nouvelles rgles............................................................................................................ 28
-2-
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Jonathan Krier. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
-3-
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Jonathan Krier. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
I - Introduction
Les systmes d'information sont aujourd'hui de plus en plus ouverts sur Internet. Cette ouverture, a priori bnfique,
pose nanmoins un problme majeur : il en dcoule un nombre croissant d'attaques. La mise en place d'une politique
de scurit autour de ces systmes est donc primordiale.
Outre la mise en place de pare-feu et de systmes d'authentification de plus en plus scuriss, il est ncessaire,
pour complter cette politique de scurit, d'avoir des outils de surveillance pour auditer le systme d'information et
dtecter d'ventuelles intrusions.
Ce que nous appelons intrusion signifie pntration des systmes d'information, mais aussi tentatives des utilisateurs
locaux d'accder de plus hauts privilges que ceux qui leur sont attribus, ou tentatives des administrateurs d'abuser
de leurs privilges.
Au cours de ce document, nous verrons comment se protger efficacement face ces intrusions, mais aussi les
problmes techniques dduits de ces outils, nouvellement apparus dans le monde informatique.
Mais avant cela, il est important, pour comprendre le rle prcis de ces systmes, de faire un rappel des principales
attaques existantes l'heure actuelle.
Probe : consiste en la collecte d'informations par le biais d'outils comme whois, Arin, DNS lookup. La
collecte d'informations sur le systme cible peut s'effectuer de plusieurs manires, par exemple un scan
de ports grce au programme Nmap pour dterminer la version des logiciels utiliss, ou encore un scan de
vulnrabilits l'aide du programme Nessus.
Pour les serveurs web, il existe un outil nomm Nikto qui permet de rechercher les failles connues ou les problmes
de scurit.
Des outils comme firewalk, hping ou SNMP Walk permettent quant eux de dcouvrir la
nature d'un rseau ;
-4-
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Jonathan Krier. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
Penetrate : utilisation des informations rcoltes pour pntrer un rseau. Des techniques comme le brute
force ou les attaques par dictionnaires peuvent tre utilises pour outrepasser les protections par mot de
passe. Une autre possibilit pour s'infiltrer dans un systme est d'utiliser des failles applicatives que nous
verrons ci-aprs ;
Persist : cration d'un compte avec des droits de super utilisateur pour pouvoir se rinfiltrer ultrieurement.
Une autre technique consiste installer une application de contrle distance capable de rsister un reboot
(ex. : un cheval de Troie) ;
Propagate : cette tape consiste observer ce qui est accessible et disponible sur le rseau local ;
Paralyze : cette tape peut consister en plusieurs actions. Le pirate peut utiliser le serveur pour mener une
attaque sur une autre machine, dtruire des donnes ou encore endommager le systme d'exploitation dans
le but de planter le serveur.
Aprs ces cinq tapes, le pirate peut ventuellement tenter d'effacer ses traces, bien que cela ne soit rarement
utile. En effet, les administrateurs rseau sont souvent surchargs de logs analyser. De plus, il est trs difficile de
supprimer entirement des traces.
le scan simple : aussi appel le scan connect(), il consiste tablir une connexion TCP complte sur une
suite de ports. S'il arrive se connecter, le port est ouvert ; sinon, il est ferm. Cette mthode de scan est trs
facilement dtectable ;
le scan furtif : aussi appel scan SYN, il s'agit d'une amlioration du scan simple. Ce scan essaie galement
de se connecter sur des ports donns, mais il n'tablit pas compltement la connexion : pas de commande
ACK (acquittement) aprs avoir reu l'accord de se connecter. Grce ceci, la mthode est bien plus furtive
que le scan normal ;
les scans XMAS, NULL et FIN : se basent sur des dtails de la RFC du protocole TCP pour dterminer si
un port est ferm ou non en fonction de la raction certaines requtes. Ces scans sont moins fiables que le
scan SYN, mais ils sont un peu plus furtifs. La diffrence entre ces trois types de scan se situe au niveau des
flags TCP utiliss lors de la requte ;
le scan l'aveugle : s'effectue via une machine intermdiaire et avec du spoofing (voir plus bas). Le systme
attaqu pense que le scan est ralis par la machine intermdiaire et non par le pirate ;
le scans passif : est la mthode la plus furtive. Consiste analyser les champs d'en-tte des paquets (TTL,
ToS, MSS) et les comparer avec une base de signatures qui pourra dterminer les applications qui ont
envoy ces paquets.
Remarque : l'utilitaire incontournable pour raliser des scans de ports se nomme Nmap.
-5-
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Jonathan Krier. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
II-B-2 - IP Spoofing
But : usurper l'adresse IP d'une autre machine.
Finalit : se faire passer pour une autre machine en truquant les paquets IP. Cette technique peut tre utile dans le
cas d'authentifications bases sur une adresse IP (services tels que rlogin ou ssh par exemple).
Droulement : il existe des utilitaires qui permettent de modifier les paquets IP ou de crer ses propres paquets
(ex. : hping2). Grce ces utilitaires, il est possible de spcifier une adresse IP diffrente de celle que l'on possde,
et ainsi se faire passer pour une autre machine .
Cependant, ceci pose un problme : en spcifiant une adresse IP diffrente de notre machine, nous ne recevrons pas
les rponses de la machine distante, puisque celle-ci rpondra l'adresse spoofe. Il existe toutefois deux mthodes
permettant de rcuprer les rponses :
Source routing : technique consistant placer le chemin de routage directement dans le paquet IP. Cette
technique ne fonctionne plus de nos jours, les routeurs rejetant cette option.
Reroutage : cette technique consiste envoyer des paquets RIP aux routeurs afin de modifier les tables de
routage. Les paquets avec l'adresse spoofe seront ainsi envoys aux routeurs contrls par le pirate et les
rponses pourront tre galement reues par celui-ci.
DNS Cache Poisoning : les serveurs DNS possdent un cache permettant de garder pendant un certain
temps la correspondance entre un nom de machine et son adresse IP. Le DNS Cache Poisoning consiste
corrompre ce cache avec de fausses informations. Ces fausses informations sont envoyes lors d'une
rponse d'un serveur DNS contrl par le pirate un autre serveur DNS, lors de la demande de l'adresse
IP d'un domaine (ex. : www.ledomaine.com). Le cache du serveur ayant demand les informations est alors
corrompu ;
DNS ID Spoofing : pour communiquer avec une machine, il faut son adresse IP. On peut toutefois avoir
son nom, et grce au protocole DNS, nous pouvons obtenir son adresse IP. Lors d'une requte pour obtenir
l'adresse IP partir d'un nom, un numro d'identification est plac dans la trame afin que le client et le
serveur puissent identifier la requte. L'attaque consiste ici rcuprer ce numro d'identification (en sniffant
-6-
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Jonathan Krier. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
le rseau) lors de la communication entre un client et un serveur DNS, puis envoyer des rponses falsifies
au client avant que le serveur DNS lui rponde.
Remarque : une attaque que nous allons voir ci-aprs, le Dni de Service, peut aider ralentir le trafic du serveur
DNS et ainsi permettre de rpondre avant lui.
Fragments overlapping : quand un message est mis sur un rseau, il est fragment en plusieurs paquets
IP. Afin de pouvoir reconstruire le message, chaque paquet possde un offset. Le but de l'attaque est de
raliser une demande de connexion et de faire chevaucher des paquets en spcifiant des offsets incorrects.
La plupart des filtres analysant les paquets indpendamment, ils ne dtectent pas l'attaque. Cependant, lors
de la dfragmentation, la demande de connexion est bien valide et l'attaque a lieu ;
Tiny fragments : le but de l'attaque est de fragmenter une demande de connexion sur deux paquets IP : le
premier paquet de taille minimum (68 octets selon la RFC du protocole IP) ne contient que l'adresse et le port
de destination. Le deuxime paquet contient la demande effective de connexion TCP. Le premier paquet est
accept par les filtres puisqu'il ne contient rien de suspect. Quand le deuxime paquet arrive, certains filtres
ne le vrifient pas, pensant que si le premier paquet est inoffensif, le deuxime l'est aussi. Mais lors de la
dfragmentation sur le systme d'exploitation, la connexion s'tablit !
De nos jours, une grande majorit des firewalls (2) sont capables de dtecter et stopper ce type d'attaques.
-7-
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Jonathan Krier. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
De plus, des erreurs peuvent apparatre lors de la configuration d'un logiciel. Une mauvaise configuration d'un serveur
peut entraner l'accs des fichiers importants, ou mettant en jeu l'intgrit du systme d'exploitation. C'est pourquoi
il est important de bien lire les documentations fournies par les dveloppeurs afin de ne pas crer de failles.
-8-
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Jonathan Krier. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
SYN Flooding : exploite la connexion en trois phases de TCP (Three Way Handshake :
SYN/SYN-ACK/ACK). Le principe est de laisser un grand nombre de connexions TCP en attente. Le pirate envoie de
nombreuses demandes de connexion (SYN), reoit les SYN-ACK, mais ne rpond jamais avec ACK. Les connexions
en cours occupent des ressources mmoire, ce qui va entraner une saturation et l'effondrement du systme ;
UDP Flooding : le trafic UDP est prioritaire sur TCP. Le but est donc d'envoyer un grand nombre de paquets
UDP, ce qui va occuper toute la bande passante et ainsi rendre indisponibles toutes les connexions TCP.
Exemple : faire une requte chargen (port 19/service de gnration de caractres) une machine en spoofant
l'adresse et le port source, pour rediriger vers echo (port 7/service qui rpte la chane de caractres reue) d'une
autre machine ;
Exemple : ping of death. La quantit de donnes est suprieure la taille maximum d'un paquet IP.
Remarque : pour rappel, nous avons vu que les techniques d'attaque se basant sur la fragmentation des paquets
peuvent aussi tre utilises pour outrepasser un filtre IP ;
Smurfling : le pirate fait des requtes ICMP ECHO des adresses de broadcast en spoofant l'adresse
source (en indiquant l'adresse de la machine cible). Cette machine cible va recevoir un nombre norme de
rponses, car toutes les machines vont lui rpondre, et ainsi utiliser toute sa bande passante ;
Dni de service distribu : le but est ici de reproduire une attaque normale grande chelle. Pour ce
faire, le pirate va tenter de se rendre matre d'un nombre important de machines. Grce des failles (buffer
overflows, failles RPC (4) ) il va pouvoir prendre le contrle de machines distance et ainsi pouvoir les
commander sa guise.
Une fois ceci effectu, il ne reste plus qu' donner l'ordre d'attaquer toutes les machines en mme temps, de
manire ce que l'attaque soit reproduite des milliers d'exemplaires. Ainsi, une simple attaque comme un SYN
Flooding pourra rendre une machine ou un rseau totalement inaccessible.
II-E - Actuellement
La scurit contre les attaques distantes se renforce, notamment par le biais d'quipements rseau plus puissants
(comme des firewalls plus intelligents), mais les attaques locales restent toutefois encore fort efficaces : l'ARP
Spoofing, le vol de session restent souvent possibles.
L'informatique volue, les applications sont de plus en plus complexes et les dlais laisss aux programmeurs et
administrateurs sont souvent trs (trop) courts. Les risques de failles applicatives sont, de ce fait, trs grands et
peuvent s'avrer dangereux pour des applications largement rpandues.
-9-
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Jonathan Krier. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
Les attaques distribues seront toujours redoutables si la plupart des machines personnelles ne sont pas protges.
Ce qui nous amne notre seconde partie : comment dtecter et empcher ces attaques ?
Faux positif : une alerte provenant d'un IDS, mais qui ne correspond pas une attaque relle.
Faux ngatif : une intrusion relle qui n'a pas t dtecte par l'IDS
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Jonathan Krier. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
Un HIDS a besoin d'un systme sain pour vrifier l'intgrit des donnes. Si le systme a t compromis par un pirate,
le HIDS ne sera plus efficace. Pour parer ces attaques, il existe des KIDS (Kernel Intrusion Detection System)
et KIPS (Kernel Intrusion PreventionSystem) qui sont fortement lis au noyau. Ces types d'IDS sont dcrits un peu
plus loin.
host-based memory and process protection :surveille l'excution des processus et les tue s'ils ont l'air
dangereux (buffer overflow). Cette technologie est utilise dans les KIPS (Kernel Intrusion Prevention
System) que nous dcrivons un peu plus loin ;
session interception / session sniping : termine une session TCP avec la commande TCP Reset :
RST . Ceci est utilis dans les NIPS (Network Intrusion Prevention System) ;
gateway intrusion detection : si un systme NIPS est plac en tant que routeur, il bloque le trafic ; sinon il
envoie des messages d'autres routeurs pour modifier leur liste d'accs.
Un IPS possde de nombreux inconvnients. Le premier est qu'il bloque toute activit qui lui semble suspecte. Or, il est
impossible d'assurer une fiabilit 100 % dans l'identification des attaques. Un IPS peut donc malencontreusement
bloquer du trafic inoffensif ! Par exemple, un IPS peut dtecter une tentative de dni de service alors qu'il s'agit
simplement d'une priode charge en trafic. Les faux positifs sont donc trs dangereux pour les IPS.
Le deuxime inconvnient est qu'un pirate peut utiliser sa fonctionnalit de blocage pour mettre hors service un
systme. Prenons l'exemple d'un individu mal intentionn qui attaque un systme protg par un IPS, tout en spoofant
son adresse IP. Si l'adresse IP spoofe est celle d'un nud important du rseau (routeur, service Web), les
consquences seront catastrophiques. Pour pallier ce problme, de nombreux IPS disposent des white lists ,
c'est--dire des listes d'adresses rseau qu'il ne faut en aucun cas bloquer.
Et enfin, le troisime inconvnient et non le moindre : un IPS est peu discret. En effet, chaque blocage d'attaque, il
montre sa prsence. Cela peut paratre anodin, mais si un pirate remarque la prsence d'un IPS, il tentera de trouver
une faille dans celui-ci afin de ritrer son attaque mais cette fois en passant inaperu.
- 11 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Jonathan Krier. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
Voil pourquoi les IDS passifs sont souvent prfrs aux IPS. Cependant, il est intressant de noter que plusieurs
IDS (ex. : Snort, RealSecure, Dragon) ont t dots d'une fonctionnalit de raction automatique certains types
d'attaques.
les systmes filtrage de paquets sans tat : analysent les paquets les uns aprs les autres, de manire
totalement indpendante ;
les systmes maintien d'tat (stateful) : vrifient que les paquets appartiennent une session rgulire.
Ce type de firewall possde une table d'tats o est stock un suivi de chaque connexion tablie, ce qui
permet au firewall de prendre des dcisions adaptes la situation.
Ces firewalls peuvent cependant tre outrepasss en faisant croire que les paquets appartiennent une session
dj tablie ;
les firewalls de type proxy : le firewall s'intercale dans la session et analyse l'information afin de vrifier que
les changes protocolaires sont conformes aux normes.
- 12 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Jonathan Krier. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
Les systmes de leurre : le but est de ralentir la progression d'un attaquant, en gnrant des fausses rponses telles
que renvoyer une fausse bannire du serveur Web utilis.
Les systmes de leurre et d'tude (Honeypots) : le pirate est galement leurr, mais en plus, toutes ses actions sont
enregistres. Elles seront ensuite tudies afin de connatre les mcanismes d'intrusion utiliss par le hacker. Il sera
ainsi plus facile d'offrir des protections par la suite.
Les systmes de corrlation et de gestion des intrusions (SIM - Security Information Manager) : centralisent et
corrlent les informations de scurit provenant de plusieurs sources (IDS, firewalls, routeurs, applications). Les
alertes sont ainsi plus faciles analyser.
Les systmes distribus tolrance d'intrusion : l'information sensible est rpartie plusieurs endroits gographiques,
mais des copies de fragments sont archives sur diffrents sites pour assurer la disponibilit de l'information.
Cependant, si un pirate arrive s'introduire sur le systme, il n'aura qu'une petite partie de l'information et celle-ci
lui sera inutile.
- 13 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Jonathan Krier. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
peu fiable : tout changement dans les habitudes de l'utilisateur provoque une alerte ;
ncessite une priode de non-fonctionnement pour mettre en uvre les mcanismes
d'autoapprentissage : si un pirate attaque pendant ce moment, ses actions seront assimiles un profil
utilisateur, et donc passeront inaperues lorsque le systme de dtection sera compltement mis en place ;
l'tablissement du profil doit tre souple afin qu'il n'y ait pas trop de fausses alertes : le pirate peut
discrtement intervenir pour modifier le profil de l'utilisateur afin d'obtenir aprs plusieurs jours ou semaines,
un profil qui lui permettra de mettre en place son attaque sans qu'elle ne soit dtecte.
- 14 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Jonathan Krier. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
Des probabilits sont tablies permettant de reprsenter une utilisation courante d'une application ou d'un protocole.
Toute activit ne respectant pas le modle probabiliste provoquera la gnration d'une alerte.
Exemple : Avec le protocole HTTP, il y a une probabilit de 0.9 qu'une commande GET soit faite aprs une connexion
sur le port 80. Il y a ensuite une probabilit de 0.8 que la rponse cette commande GET soit HTTP/1.1 200 OK .
Approche statistique
Le but est de quantifier les paramtres lis l'utilisateur : taux d'occupation de la mmoire, utilisation des processeurs,
valeur de la charge rseau, nombre d'accs l'Intranet par jour, vitesse de frappe au clavier, sites les plus visits
Cette mthode est trs difficile mettre en place. Elle n'est actuellement prsente que dans le domaine de la
recherche, o les chercheurs utilisent des rseaux neuronaux et le data mining pour tenter d'avoir des rsultats
convaincants.
Autres mthodes
D'autres mthodes existent, mais ne sont pas encore rpandues. Parmi celles-ci, nous pouvons noter :
Pattern Matching
algorithmes de recherche de motifs (ex. : Boyer-Moore),
algorithmes de comptage,
algorithmes gntiques ;
Analyse Protocolaire
conformit aux RFC ;
Dtection d'anomalies
mthodes heuristiques ;
Analyse statistique
modles statistiques ;
Analyse probabiliste
rseaux baysiens ;
Autres analyses comportementales
rseaux de neurones, systmes experts + data mining, immunologie, graphes
Il est bien sr impossible de dtailler chacun des algorithmes mis en uvre dans les IDS.
Nous avons cependant ddi le chapitre 6 aux algorithmes de pattern matching.
- 15 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Jonathan Krier. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
Lors de la mise en place d'un systme de dtection d'intrusions au sein d'un rseau, il est important de le
dployer correctement d'une part, mais aussi de comprendre son fonctionnement interne pour pouvoir le configurer
efficacement. Toute erreur lors de l'installation d'un IDS pourra le rendre inefficace ou inutilisable.
les systmes et les applications doivent tre mises jour rgulirement (patches de scurit) ;
les systmes utilisant Internet doivent tre dans un rseau isol (DMZ (5) ) ;
chaque utilisateur doit tre averti de l'importance de la scurit de ses mots de passe ;
les fonctionnalits des services qui ne sont pas utilises doivent tre dsactives.
Lors du dploiement d'un IDS, il faut le configurer correctement : par exemple, si le rseau est sous Windows,
les rgles destines Unix ne sont pas ncessaires. Il faut donc faire une configuration en fonction de l'OS, des
applications et du matriel utiliss.
L'emplacement du senseur (6) est trs important :
l'emplacement B, seul le trafic entre les systmes de la DMZ et Internet est analys. Le trafic entre le
rseau interne et Internet n'est pas analys. Pour cela, il faudra galement placer un senseur au point A.
l'emplacement C, le trafic entre Internet et le rseau interne ou la DMZ est analys. Par contre, le trafic
entre le rseau interne et la DMZ est invisible.
Il est impensable de vouloir analyser tout le trafic d'un rseau. Il faut donc donner la priorit aux systmes risque :
ceux qui offrent des services accessibles par Internet (HTTP, FTP).
De plus, il est souvent prfrable de placer le senseur aprs le firewall du ct interne. Ainsi, seuls les flux accepts
par le firewall sont analyss, ce qui rduit fortement la charge de la sonde IDS.
Lors de l'installation d'un NIDS, le choix matriel a galement une grande importance.
Puisqu'une sonde NIDS doit tre capable d'analyser le trafic rseau quel que soit le destinataire, elle devra recevoir
elle-mme tous les paquets. Pour cela, le NIDS devra jouer le rle d'un sniffer (7) , mais le matriel rseau pose
parfois problme :
un switch simple (commutateur) : en utilisant un tel quipement, la conversation avec l'IDS est impossible du
fait de la nature d'un switch : il commute les paquets directement au destinataire. Il est ds lors impossible
d'installer une sonde qui analysera le trafic global ;
un hub (concentrateur) => la conversation avec l'IDS est possible, car les hubs rptent les paquets en les
mettant toutes les machines connectes. Cependant, les hubs sont peu fiables et sont donc viter ;
il existe des switches professionnels qui copient le trafic et l'envoie sur un port spcifi (o sera plac le
NIDS) : SPAN port (Switch Port Analyzer). Attention : pour ce port, il faudra utiliser une connexion rapide
(ex. : Gigabits) capable d'analyser entirement le trafic provenant ou destination des diffrents sous
rseaux.
Un autre problme doit tre pris en considration : lorsque les flux sont crypts (ex. : par SSL, c'est le cas pour les
VPN (8) ), il est impossible pour l'IDS de dcrypter ces flux. Il faut dans ce cas utiliser un proxy SSL comme illustr
ci-dessous.
- 16 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Jonathan Krier. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
Nous savons donc maintenant que l'emplacement des sondes et le matriel rseau utiliss sont trs importants.
Cependant, un autre point ne doit pas tre oubli : la scurisation du senseur et des logs d'alerte. En effet, si la
sonde elle-mme ou si les alertes qu'elles gnrent ne sont pas scurises, un pirate pourrait trs bien rendre l'IDS
compltement inefficace.
Pour scuriser les sondes et les fichiers d'alertes, il est par exemple possible de mettre en place un rseau de
management trs contrl, avec son propre firewall. Ce systme sera primordial pour la scurit du rseau et
plusieurs mesures devront tre prises pour assurer son fonctionnement :
Pour amliorer les performances de l'IDS, il peut donc tre judicieux de rpartir les charges. Par exemple, il est
envisageable de sparer les flux analyser en fonction du protocole de niveau 4 : une sonde pour l'analyse des flux
Web, une autre pour l'analyse des flux FTP et une analyse des requtes SQL.
Un autre problme est la corrlation des informations provenant de plusieurs types de
sondes. Voici les actions raliser pour regrouper ces informations :
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Jonathan Krier. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
fusion : fusionner en supprimant les doublons (mme attaque dtecte par plusieurs sondes) ;
corrlation : dfinir un motif commun, c'est--dire interprter une suite d'vnements et les rsumer.
Une corrlation intressante serait de ne garder que les alertes qui concernent une faille probable du systme. Pour
cela il faut utiliser un scanner de vulnrabilits par exemple, ou ne pas afficher les alertes concernant IIS si on possde
Apache, ce qui entranera moins de faux positifs.
Nanmoins, l'utilisation d'un scanner de vulnrabilits n'est pas parfaite, car il est difficile d'changer des informations
entre un scanner de vulnrabilits et un IDS. Cependant, depuis peu, des consoles de corrlation entre IDS et
scanners de vulnrabilits sont proposes (ex. : Nevo de Tenable Network Security).
Enfin, un dernier problme est qu'il n'y a aucune interoprabilit entre les diffrents IDS
du march, mis part la possibilit d'exporter les informations dans des formats standard.
Pourtant, des normes ont t tablies, comme nous allons le voir.
III-D - Normalisation
Il y a quelques annes, un comit du DARPA a dfini quatre briques fonctionnelles pour dcrire
l'architecture globale d'un IDS :
Ce comit a aussi dfini un langage de description des intrusions (CISL - Common Intrusion Specification Language)
qui utilise des expressions verbales (ex. : ouvrir session , effacer objet ). Cependant, ce langage n'a jamais
t utilis, mais il a inspir d'autres comits.
L'IDWG (Intrusion Detection Working Group) a effectu la plupart des travaux dans le domaine de la standardisation
des IDS :
norme IDMEF (Intrusion Detection Message Exchange Format) : dfinit le format des messages changs dans un
IDS ;
- 18 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Jonathan Krier. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
protocole IDXP (Intrusion Detection eXchange Protocol) : procdures de transport entre les entits de l'IDS.
Selon l'IDWG, un IDS est ensemble de plusieurs senseurs, analyseurs et managers :
C'est un schma thorique, rarement implment de cette faon dans les IDS. La norme IDMEF prconise une
reprsentation en XML des messages o dans chaque message, on retrouve l'ID de l'analyseur, le type d'alerte,
l'emplacement (le nud rseau), le jour et l'heure, l'adresse, la classification de l'attaque
le pirate gnre une srie de pings vers l'adresse tester, puis il mesure et note les temps de rponse ;
le pirate sature ensuite le rseau en broadcast (9) dans le but de ralentir l'IDS, qui recevra tous les paquets.
Enfin, le pirate rmet la mme srie de pings en mesurant les nouveaux temps de rponse. S'ils sont bien
plus levs que les premiers temps obtenus, il est fort possible que la machine soit en mode promiscous ;
exploiter les mcanismes de rponses actives : les IPS ragissent certaines attaques (fermer session, bloquer
port), mais en faisant cela, ils laissent souvent des empreintes (header des paquets) permettant d'identifier le type
d'IPS ;
observation des requtes DNS : Les IDS gnrent souvent des requtes DNS lors des alertes.
En observant le DNS primaire lors de fausses attaques, on peut dtecter qu'il y a un IDS.
- 19 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Jonathan Krier. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
- 20 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Jonathan Krier. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
- 21 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Jonathan Krier. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
- crire les instructions par des quivalences, comme par exemple rcrire une instruction MOV EAX, 0 par XOR
EAX,EAX ou bien encore SUB EAX, EAX qui auront toutes les trois pour effet de mettre le registre EAX 0 ;
- raliser un cryptage (XOR) du shellcode et ainsi le rendre polymorphique. Dans ce cas, le dcodeur et la cl doivent
tre prsents dans le shellcode pour pouvoir le dcrypter lors de son excution chez la victime.
Nous pouvons remarquer qu'il devient trs difficile pour un IDS de dtecter un shellcode en utilisant des signatures.
Le seul moyen efficace est de dtecter le buffer overflow lors de son excution et l'empcher au dernier moment de
lancer un shellcode. Pour cela, seuls les KIPS (Kernel Intrusion Prevention System) se montrent adapts puisqu'ils
surveillent les appels systmes.
Mthodes et capacits de dtection : estimer le taux de faux positifs et la qualit d'information fournie par
l'IDS ;
Rapidit : tester l'IDS en condition de charge leve. Il est important de tester cela de manire raliste, et
non pas en utilisant des gnrateurs de paquets ;
Ouverture : il faut que l'IDS permette de modifier les signatures afin d'viter certains faux positifs, mais aussi
d'ajouter de nouvelles signatures spcifiques l'environnement ;
Rsistance aux techniques d'vasion : utiliser des outils tels que Whisker, Nikto, Babelweb, Fragroute ou
Mendax pour observer le comportement de l'IDS ;
Architecture logicielle : pour les grandes entreprises, il est intressant de pouvoir sparer les fonctions
d'administration ;
Exploitabilit des donnes : il faut disposer d'outils permettant de retrouver et analyser facilement les
vnements suspects, car le volume gnr par les IDS est important. Afin de centraliser les donnes, il peut
tre intressant de disposer de consoles de reporting ou de tableaux de bord.
Ergonomie : on retrouve diffrents types d'interfaces dans les IDS. Tout d'abord, les interfaces graphiques
qui sont adaptes aux particuliers ou aux PME. Ensuite, les interfaces de type Web ou encore les interfaces
en ligne de commandes rserves aux spcialistes. Dans tous les cas, l'interface doit offrir de nombreuses
fonctionnalits.
D'autres critres, comme la ractivit de l'diteur (mises jour des signatures, correctifs), ou le prix (solution libre
ou non) rentrent en jeu. Pour valuer un IDS, il est intressant de pondrer chacun de ces critres selon l'importance
qu'on leur attribue, et donner une note l'IDS pour chaque critre.
- 22 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Jonathan Krier. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
Snort est capable d'effectuer une analyse du trafic rseau en temps rel et est dot de diffrentes technologies
de dtection d'intrusions telles que l'analyse protocolaire et le pattern matching. Snort peut dtecter de nombreux
types d'attaques : buffer overflows, scans de ports furtifs, attaques CGI, sondes SMB, tentatives de fingerprinting
de systme d'exploitation
Snort est dot d'un langage de rgles permettant de dcrire le trafic qui doit tre accept ou collect. De plus, son
moteur de dtection utilise une architecture modulaire de plugins.
Notons que Snort dispose de trois modes de fonctionnement : sniffer de paquets, logger de paquets et systme de
dtection/prvention d'intrusions. Nous ne nous intresserons qu' ce dernier mode.
IV-A-2 - Installation
1. Tlcharger les sources sur www.snort.org. Lors de l'criture de ce document, la dernire version stable tait la
2.4.4.
2. Tlcharger et installer les bibliothques ncessaires pour Snort :
La compilation de ces bibliothques se fait trs aisment : ./configure, make, make install.
3. Ouvrir un terminal, dcompresser ensuite l'archive de Snort et se placer dans le rpertoire des sources
dcompresses.
4. Configurer la compilation de Snort afin d'activer plusieurs fonctionnalits : ./configure [options].
Deux options nous ont sembl intressantes :
--with-mysql=DIR : activer le support de MySQL. Ainsi Snort enregistrera les alertes dans une base de
donnes accessible par d'autres applications (ex. : BASE, dcrite plus loin). MySQL n'est bien sr pas
l'unique SGBD support.
PostgreSQL ou Oracle peuvent galement tre utiliss avec les options -withpostgresql et --with-oracle.
--enable-flexresp : activer les rponses flexibles en cas de tentatives de connexion hostile. Pour activer cette
option, la bibliothque libnet (http://www.packetfactory.net/libnet) est ncessaire.
- 23 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Jonathan Krier. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
IV-A-3 - Configuration
Afin de configurer correctement Snort pour qu'il puisse fonctionner en mode dtection d'intrusions, il faut modifier le
fichier snort.conf. L'emplacement par dfaut de ce fichier doit normalement tre /etc/snort.conf. Cependant, il sera
possible de spcifier un autre emplacement lors de l'excution de Snort, l'aide de l'option -c.
Le fichier de configuration contient de nombreuses options paramtrables, ainsi que des explications pour pouvoir
les modifier correctement. Nous n'allons nous intresser ici qu' quelques variables :
la variable HOME_NET permet de spcifier quels rseaux ou quelles interfaces seront surveills par Snort.
La valeur any signale Snort de surveiller tout le trafic ;
si le rseau surveiller possde des serveurs DNS, SMTP, FTP, etc., il est possible de spcifier les adresses
IP de ces serveurs via les variables DNS_SERVERS, SMTP_SERVERS Si le rseau ne possde pas
un type spcifique de serveur, il est conseill de commenter (avec le caractre #) la ligne concerne, afin
d'optimiser le traitement de Snort. En effet, il est inutile d'analyser du trafic HTTP si aucun serveur Web n'est
disponible ;
certains ports de services peuvent tre configurs via des variables telles que HTTP_PORTS ou
ORACLE_PORTS.
la variable RULE_PATH est trs importante. Elle permet de spcifier le rpertoire o sont stocks les fichiers
de rgles de Snort.
les directives include permettent d'inclure des fichiers de rgles. Ici encore, il est conseill de n'inclure que les
rgles ncessaires en fonction des services disponibles sur le rseau.
IV-A-4 - Excution
L'excution de Snort se fait en lanant l'excutable snort en mode root et avec diffrentes options. Voyons les
principaux arguments de Snort :
Avant de lancer Snort en mode NIDS, il est prfrable de tester si le programme arrive rcuprer les paquets qui
circulent sur le rseau. Pour cela, nous pouvons par exemple lancer Snort en simple mode Sniffer : snort -v. Si aucun
paquet n'est captur et affich, il est probable que Snort n'coute pas sur la bonne interface. L'option -i permet de
spcifier une autre interface.
Lanons maintenant Snort en mode NIDS. Pour cela, nous lui prcisons l'emplacement du fichier de configuration
avec l'option -c : snort -c /opt/snort/rules/snort.conf
Toutes les alertes dtectes sont ainsi stockes dans le fichier /var/log/snort/alert. Pour chaque alerte, Snort donne
une priorit, une description, les flags des paquets et ventuellement des adresses sur Internet o se trouvent de
plus amples informations sur la tentative d'intrusion.
Exemple :
[**] [1:1384:8] MISC UPnP malformed advertisement [**]
[Classification: Misc Attack] [Priority: 2]
03/25-17:34:49.251861 192.168.0.1:1900 ->
239.255.255.250:1900
UDP TTL:1 TOS:0x0 ID:37277 IpLen:20 DgmLen:437
Len: 409
[Xref =>
http://www.microsoft.com/technet/security/bulletin/MS01059.mspx][Xref => http://cve.mitre.org/cgibin/
- 24 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Jonathan Krier. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
cvename.cgi?name=2001-0877][Xref =>
http://cve.mitre.org/cgi-bin/cvename.cgi?name=20010876][Xref => http://www.securityfocus.com/bid/3723]
Le champ protocole spcifie le protocole pour lequel la rgle s'applique. Les valeurs possibles sont : tcp, udp, icmp
ou ip.
Les champs adresse1 et adresse2 indiquent l'adresse IP source et destination du paquet. Le mot-cl any permet
de spcifier une adresse quelconque. Les adresses doivent tre numriques, les adresses symboliques ne sont pas
acceptes.
Les champs port1 / port2 spcifient les numros de port utiliss par la source et la destination. Le mot-cl any permet
de spcifier un port quelconque. Des noms de services peuvent tre utiliss : tcp, telnet De mme des plages de
ports peuvent tre spcifies avec le caractre : .
Le champ direction spcifie l'orientation du paquet. Cet oprateur peut prendre deux valeurs :
-> : adresse1 vers adresse2
<> : de adresse1 vers adresse2, ou de adresse2 adresse1
Notons qu'il n'y a pas d'oprateur <- .
La partie Options des rgles contient diffrentes options, spares par un point-virgule, qui vont permettre de prciser
des critres de dtection. Pour chaque option, le format est nomOption : valeur1[, valeur2]
Voici les options importantes :
msg : spcifier le message qui sera affich dans le log et dans l'alerte
reference : faire rfrence un site expliquant l'attaque dtecte
classtype : dfinir la classe de l'attaque (troyen, shellcode)
- 25 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Jonathan Krier. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
Exemple de rgle :
alert tcp any any -> $HTTP_SERVERS $HTTP_PORTS (msg:"WEBATTACKS
/bin/ls command attempt"; uricontent:"/bin/ls";
nocase; classtype:web-application-attack;)
Cette rgle permet de gnrer une alerte quand un paquet provient d'un couple (adresse:port) quelconque, est
destination des serveurs HTTP dfinis dans snort.conf, et contient la chane /bin/ls dans l'URI. Le message de
l'alerte sera WEB-ATTACKS /bin/ls command attempt . Cette attaque sera classe dans la classe web-applicationattack (priorit medium par dfaut).
Il est bien sr impossible d'tre exhaustif ici pour dcrire le format des rgles Snort. Le manuel utilisateur disponible
sur le site officiel indique comment utiliser aux mieux le langage des signatures de Snort.
Nous ne dtaillerons pas ici l'installation de chaque dpendance. La documentation livre avec les sources de BASE
(disponibles sur http://secureideas.sourceforge.net) fournit les informations ncessaires.
Notons cependant que l'archive des sources de Snort dispose galement d'un dossier schemas contenant le code
SQL pour crer la structure de la base de donnes pour diffrents SGBD. Le fichier doc/README.database donne
toutes les indications pour crer le schma de la base de donnes.
Afin que Snort enregistre les alertes dans la base de donnes, il ne faut pas oublier de modifier le fichier snort.conf
et rajouter une ligne output database avec les informations pour se connecter la base de donnes.
- 26 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Jonathan Krier. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
Exemple :
output database: log, mysql, user=snortusr password=pwd
dbname=snort host=localhost
Aprs configuration et installation de BASE ainsi que de toutes ses dpendances, nous pouvons y accder avec un
navigateur internet. Si tout se passe bien, un cran similaire l'illustration suivante est obtenu :
un langage de script propre Bro permettant d'crire les rgles de dtection et d'action ;
l'utilisation des expressions rgulires pour exprimer les motifs des signatures ;
la possibilit d'excuter des programmes tiers aprs dtection d'intrusion permet de raliser de nombreux
types d'actions ;
une compatibilit avec les rgles de Snort, grce un convertisseur nomm snort2bro ;
la possibilit d'utiliser GnuPG (Gnu Privacy Gard) pour crypter et signer les rapports d'alertes. Cela permet
d'empcher l'espionnage ou la falsification des logs par un pirate ;
l'envoi d'un rapport priodique des alertes par mail.
le module Packet Capture : charg d'couter le trafic en mode sniffer et de transmettre tous les paquets la
couche suprieure ;
le module Event Engine : classe les flux par protocole, cre une table d'tats pour les connexions, contrle
l'intgrit (checksum), rassemble les fragments et analyse les flux. Ce module gnre des vnements qu'il
transmet la troisime couche ;
le module Policy Layer : utilise les scripts crits dans le langage de Bro pour traiter les vnements.
IV-B-2 - Installation
1. Tlcharger les sources sur http://www.bro-ids.org. Lors de l'criture de ce document, la dernire version stable
tait la 0.9.
2. Tlcharger et installer les bibliothques ncessaires pour Bro :
=> libpcap (http://www.tcpdump.org) : offre des fonctions de sniffer
- 27 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Jonathan Krier. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
IV-B-3 - Configuration
La configuration gnrale de Bro se fait trs simplement en mode interactif la fin de l'installation. Il suffit ds lors
de rpondre aux questions qui sont poses, et l'IDS sera configur automatiquement. Il est possible de reconfigurer
Bro plus tard en excutant le script bro_config. Notons qu'une configuration manuelle peut tre ralise en ditant
le fichier bro.cfg.
IV-B-4 - Excution
Grce au script de lancement livr avec Bro, le daemon peut tre excut de manire trs simple avec la commande
bro.rc start (en mode root). Ds le dbut de l'excution, les diffrentes activits sont logges dans le rpertoire
$BROHOME/logs/. Plusieurs fichiers de log y sont prsents :
conditions d'en-tte : elles permettent de spcifier le protocole, les ports et les adresses source et de
destination ;
conditions de contenu : elles sont exprimes sous forme d'expressions rgulires pour reconnatre le contenu
de certains types de requtes ;
conditions de dpendance : elles permettent d'exprimer des dpendances entre les signatures. Par exemple,
une signature ne doit tre dtecte que si une autre signature l'a t ;
conditions de contexte : elles permettent de rajouter l'excution de certaines fonctions, crites avec le
langage de script de Bro, qui complmenteront les autres conditions.
- 28 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Jonathan Krier. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
Comme nous pouvons le voir, les conditions de dtection de signatures sont trs volues. Cependant, ce n'est pas
le cas des actions, c'est--dire les oprations raliser quand une signature est dtecte. Il n'existe pour l'instant
qu'une seule action possible : event. Celle-ci va permettre de dcrire l'ventuelle attaque qui a t dtecte.
Enfin, rappelons l'existence de snort2bro qui permet de convertir des rgles crites pour Snort dans le format de
Bro. Ainsi, un utilisateur prfrant la syntaxe de Snort ou utilisant ces deux NIDS, pourra trs facilement rutiliser
ses rgles Snort avec Bro.
- 29 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Jonathan Krier. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
+ possibilit d'utiliser des rgles Snort en les convertissant avec l'utilitaire snort2bro
+ forte customisation, qui rend l'IDS trs difficile dtecter par un pirate
+ langage de script puissant et adapt la dtection d'intrusion
+ de nombreuses fonctionnalits prvues pour la version 1.0
+ cryptage et signature lectronique des rapports
+ rapport priodique rsumant les alertes
+ configuration trs simple grce un script interactif
+ fichiers d'alertes trs faciles parser de manire automatise
- projet maintenu par des chercheurs : ractivit moyenne et produit peu adapt aux
entreprises
- fichiers d'alertes difficilement analysables par un humain en format brut
- peu d'informations dans les rapports d'alertes
- documentation incomplte empchant d'utiliser pleinement les nombreuses
fonctionnalits
- aucune GUI actuellement disponible
- pas de support natif pour enregistrer les alertes dans une base de donnes
En analysant ces tableaux de fonctionnalits, nous pouvons remarquer que Bro est loin d'tre un projet amateur,
car il possde des options trs intressantes. Mais pour devenir un grand NIDS respect par les entreprises, il
devra favoriser le dveloppement de ses mthodes de dtection ainsi que simplifier l'accs l'application par une
documentation complte et des interfaces facilitant la gestion et l'analyse des logs.
Quant Snort, il a fait ses preuves. Mais la version Open-Source est encore rserve une certaine lite. Bien
videmment, la version commerciale n'a srement pas les mmes faiblesses.
- 30 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Jonathan Krier. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
IV-F-2 - Installation
L'installation de OSSEC se fait trs simplement grce un assistant de configuration.
Rendez-vous sur http://www.ossec.net pour tlcharger l'IDS. Lors de la rdaction de ce document, la dernire version
tait 0.7p1.
Dcompressez l'archive puis lancez l'installeur l'aide de la commande ./install.sh une fois dans le rpertoire
dcompress.
Aprs quelques questions, l'installeur mettra en place OSSEC et il ne restera plus qu' complter le fichier de
configuration avec les valeurs souhaites.
IV-F-3 - Configuration
La configuration se situe dans le fichier ossec.conf du dossier $INSTALL_DIR/etc/. La majorit de ce fichier sera
rempli par les paramtres spcifis lors de l'installation. Ce fichier se divise en plusieurs sections :
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Jonathan Krier. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
Cette rgle est caractrise par un identifiant unique (chaque rgle possde un identifiant propre), un niveau de
scurit allant de 0 16 (ici 14) et une frquence d'apparition (timeframe). Cette frquence d'apparition permet de
dclencher une rgle uniquement si une rgle prcdente a dj t leve. La rgle prcdente est spcifie l'aide
de la baliseif_matched_regex. Cette dernire option de rptition est bien sur optionnelle.
Plusieurs options de concordance sont possibles. Ici regex spcifie qu'il s'agit d'une expression rgulire trouver
dans la chane. Toutefois, il existe l'option match qui spcifie une sous-chane trouver dans la chane.
La balise description permet de donner une courte description de la rgle ; cve la date de dcouverte de la faille et
enfin info permet de spcifier une information supplmentaire sur la rgle, par exemple l'URL qui rfrence l'exploit
connu.
Plus d'informations sont disponibles dans la documentation sur le site officiel d'OSSEC.
IV-G-2 - Installation
L'installation va s'effectuer en plusieurs tapes. Tout d'abord, il faut installer la partie serveur qui va s'occuper de runir
toutes les alertes envoyes par les diffrents agents. Les sources sont disponibles sur http://la-samhna.de/samhain/.
- 32 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Jonathan Krier. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
Le serveur (se nommant yule) va ici tre install dans /usr/local/yule. Effectuons prsent l'installation du client :
./configure --prefix=/usr/local/samhain --enable-xml-log -enable-network=client \
--with-datafile=
REQ_FROM_SERVER/var/lib/samhain/samhain_file \
--with-config-file=REQ_FROM_SERVER/etc/samhainrc \
--with-logserver=server.yourdomain.com
make
Cette opration a pour but de crer un nouveau binaire se nommant samhain_new, qui nous permettra de nous
connecter avec le serveur. Terminons l'installation avec ces lignes :
mv samhain.new samhain
make install && make install-boot
samhain -t init
IV-G-3 - Configuration
La configuration par dfaut offre un environnement de dtection quasi oprationnel. Il suffit de modifier la variable
ExportSeverity afin de spcifier le niveau de dtection considr comme alerte .
Dans le fichier /etc/samhainrc, modifiez ainsi :
[Log]
ExportSeverity=warn
- 33 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Jonathan Krier. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
IV-H-2 - Installation
L'installation de rkhunter se fait automatiquement. Rcuprez les sources sur http://www.rootkit.nl/ puis
dcompressez l'archive. L'installation s'effectue l'aide de l'assistant installer.sh.
Aucune configuration supplmentaire n'est effectuer. Il suffit de lancer le binaire pour lancer un scan. Cette ligne
de commande permettra d'effectuer un scan non interactif :
/usr/local/bin/rkhunter -c -sk
- 34 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Jonathan Krier. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
Tirons quelques conclusions de ce tableau comparatif. D'une part, nous remarquons immdiatement la dficience
du logiciel Rkhunter. Ceci est normal, Rkhunter est uniquement un analyseur systme pour vrifier la prsence de
rootkits. Mais nous avons jug important de le placer dans ce comparatif de par ses fonctionnalits d'alerte qui se
rapprochent, voire quivalent, celles d'autres HIDS.
Les deux systmes Ossec et Samhain sont fort proches. Ils possdent tous les deux la possibilit d'tre mis en place
de manire locale ou bien via une architecture client/serveur.
Chacun d'entre eux analyse le systme pour vrifier la non-prsence de rootkits, inspecte les fichiers de logs pour y
dtecter des activits anormales, et permet d'avertir l'administrateur via des emails ou en journalisant les alertes.
En dehors de cela, nous remarquerons la maigre supriorit de Samhain sur OSSEC.
Toutefois, cette supriorit est temprer. En effet, durant nos tests, l'installation de Samhain nous a pos quelques
problmes, et la configuration n'a pas t des plus simples. l'inverse, le systme OSSEC est dot d'un installeur qui
prend les choses en main et nous demande uniquement les paramtres de configuration. Ainsi, malgr un nombre
de fonctionnalits important, Samhain n'est peut-tre pas aussi mature qu'il le laisse paratre.
De plus, cette console permet de gnrer des graphiques statistiques rassemblant des informations importantes sur
les cibles vises et permettant de voir rapidement quelles sont les alertes les plus frquentes. L'illustration suivante
est un exemple des possibilits de la console de Prelude.
- 35 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Jonathan Krier. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
Il est possible de spcifier la liste des fichiers accessibles par chaque programme indpendamment. Ce systme
offre une scurit optimale, mais peut s'avrer compliqu mettre en place et configurer. Mal configur, ce systme
peut paralyser une machine et la rendre totalement hors d'usage.
LIDS supporte les noyaux 2.6 et 2.4 l'heure actuelle. Il est distribu gratuitement sous licence GPL.
Aucun des deux IDS ne s'est montr capable de dtecter correctement cet exploit. En effet, les signatures par dfaut
de Snort ne dtectent pas l'attaque en elle-mme, mais l'accs au fichier concern. Nanmoins, il est impensable de
gnrer une alerte pour chaque accs au fichier viewtopic.php sur un serveur disposant d'un forum phpBB.
Conclusion :
Ce genre de scan passait inaperu il y a quelques annes, mais il est facilement dtectable de nos jours.
- 36 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Jonathan Krier. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
Il s'agit d'un scan de ports TCP qui dtecte les ports ouverts en tablissant une connexion complte ceux-ci.
L'utilitaire nmap peut raliser un tel scan grce l'argument -sT.
Rsultats du test :
Conclusion :
Cette mthode de scan est la plus facile mettre en uvre, mais c'est galement la moins discrte.
Conclusion :
Ici, Snort se montre plus performant que Bro, qui ne voit rien d'anormal lors du scan.
Screenshot de l'attaque :
- 37 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Jonathan Krier. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
Conclusion :
Snort dispose par dfaut de la signature pour cette attaque, permettant de la dtecter trs facilement.
VI-A - Introduction
La recherche de motif (pattern matching) est un sujet important dans le domaine du traitement de donnes. Son but
est de localiser une occurrence d'un mot (= le motif) dans une chane de caractres (= le texte).
Le pattern matching joue un rle crucial dans les NIDS qui utilisent des signatures pour dtecter les attaques ou
intrusions. Un bon NIDS doit pouvoir analyser les paquets qu'il reoit en temps rel. Avec les vitesses leves des
rseaux actuels, il est vident que les algorithmes de pattern matching ne doivent pas tre ngligs, car il en va de
la scurit des systmes surveills.
Plusieurs algorithmes de recherche de motif vont tre expliqus dans ce chapitre. Pour la suite, les notations suivantes
seront utilises :
La plupart des algorithmes de pattern matching utilisent une fentre glissante de taille m. Cette fentre reprsente
la position de l'ventuelle occurrence du motif. En d'autres termes, elle englobe les caractres du texte qui vont
tre compars avec le motif pour la tentative en cours. Cette fentre est dcale chaque non-correspondance
(mismatch) et la procdure de comparaison reprend au dbut de la fentre.
avec motifs fixes et texte variant : c'est le cas des NIDS avec texte fixe ;
motifs variants : correspond une recherche dans un dictionnaire
Dans tous les cas, l'efficacit d'un algorithme de pattern matching dpend du nombre de comparaisons de caractres
ncessaires pour rechercher le motif.
Lors du choix et de l'implmentation d'un algorithme de pattern matching, plusieurs considrations doivent tre prises
en compte :
- 38 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Jonathan Krier. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
a) Le type de pattern matching : recherche multi ou simple motif, motifs statiques ou dynamiques b) Sensibilit
la casse : dans le cas d'une recherche insensible la casse, les caractres du motif et du texte seront par exemple
convertis en majuscules.
c) La taille des motifs : certains algorithmes ont des performances rduites pour les motifs de grande taille.
d) La taille de l'alphabet : la plupart des algorithmes fonctionnent facilement si les caractres sont stocks sur un
octet, mais dans le cas du codage Unicode, certaines adaptations devront tre apportes.
e) Le risque d'attaques de l'algorithme : des pirates peuvent ventuellement utiliser les proprits et le comportement
de l'algorithme pour rduire les performances du programme. Il est donc ncessaire, surtout dans le cas des IDS,
d'valuer les consquences de telles attaques.
f) La frquence des recherches et la taille des textes de recherche : ces deux aspects peuvent influencer les
performances, et l'algorithme devra tre adapt aux types de recherches raliss.
Dans le pire des cas, cet algorithme fait (n - m + 1) m comparaisons, ce qui correspond une complexit temps de
O(mn). Ce cas correspond par exemple la recherche de am-1b dans an puisque chaque tentative, l'algorithme
parcourt tout le motif, pour se rendre compte que le dernier caractre (b) n'est pas identique.
- 39 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Jonathan Krier. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
x[0..i-1] = y[j..j+i-1] : les i-1 caractres prcdemment compars sont identiques.Notons u cette sous-chane.
x[i] y[j+i]
Lorsqu'un dcalage de la fentre de comparaison a lieu, il ne faut pas oublier qu'un prfixe v du motif peut
correspondre un suffixe de la portion u du texte. Ce prfixe v est appel un bord de u.
Dfinition :
Soit u un mot quelconque non vide, un bord de u est un mot distinct de u qui est la fois prfixe et suffixe de u.
Notation :
Soit mpNext[i] la longueur du plus long bord de x[0..i-1], pour 0 < i m.
mpNext[0] = -1
mpNext[i] = | Bord maximal (x[0..i-1]) |
Aprs un dcalage, les comparaisons peuvent reprendre entre x[mpNext[i]] et y[j+i] sans risquer d'oublier une
occurrence de x dans y, et tout en vitant de faire un retour en arrire dans le texte.
La table mpNext peut tre construite en espace et temps O(m). Cette table doit tre construite avant la phase de
recherche.
Procdure PrtraitementMP (x, m, mpNext[] )
i := 0
j := mpNext[0] := -1
tantque (i < m) faire // Parcours du motif
tantque ((j > -1) et (x[i] x[j])) faire
j := mpNext[j];
fintantque
j := j + 1
i := i + 1
mpNext[i] = j
fintantque
Voyons un exemple de la table des longueurs des bords maximaux pour le motif ACABACA .
Nous remarquons que mpNext[7] = 3, c'est--dire que le bord maximal de x[0..6], et donc du motif entier, est de
longueur 3. En effet, ce bord est ACA qui est prfixe et suffixe de ACABACA.
Aprs la cration des longueurs des bords, la phase de recherche peut tre faite en temps O(m+n). Au pire des cas,
l'algorithme de Morris-Pratt fait 2n-1 comparaisons.
Procdure RechercheMP (x, m, y, n)
PrtraitementMP (x, m, mpNext)
i := j := 0 // Initialisation des indices
tantque (j <= n) faire // Parcours du texte
tantque ( (i > -1) et (x[i] y[i]) ) faire
i := mpNext[i] // Dcalage en fin de bord
fintantque
i := i + 1
j := j + 1
si (i m) alors
- 40 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Jonathan Krier. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
Lorsqu'un dcalage de la fentre de comparaison a lieu, il ne faut pas oublier qu'un prfixe v du motif peut
correspondre un suffixe de la portion u du texte.
De plus, pour viter une autre non-correspondance immdiate, le premier caractre aprs le prfixe v doit tre diffrent
de l'ancien x[i] puisque nous savons dj que y[j+i] x[i].
Un tel prfixe v est appel bord disjoint (tagged border) de u.
Notation :
Soit kmpNext[i] la longueur du plus long bord de x[0..i-1], pour 0 < i m, suivi d'un caractre diffrent de x[i] ; ou
-1 si aucun bord disjoint n'existe.
mpNext[0] = -1
mpNext[i] = | Bord maximal disjoint (x[0..i-1]) |
Aprs un dcalage, les comparaisons peuvent reprendre entre x[kmpNext[i]] et y[j+i] sans rater d'occurrence de x
dans y, et tout en vitant un retour en arrire dans le texte.
La table kmpNext peut tre calcule en temps et espace O(m). Ce calcul est ralis avant la phase de recherche.
Procdure PrtraitementKMP (x, m, kmpNext)
i := 0
j := kmpNext[0] := -1
tantque (i < m) faire // Parcours du motif
tantque ( (j > -1) et (x[i] x[j]) ) faire
j := kmpNext[j]
fintantque
i := i + 1
j := j + 1
si (x[i] = x[j]) alors // Mme caractre : bord non
disjoint
- 41 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Jonathan Krier. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
kmpNext[i] := kmpNext[j]
sinon
jmpNext[i] := j // Position du bord disjoint
fsi
fintantque
Aprs le calcul de la table kmpNext, la phase de recherche peut tre ralise en temps O(m+n), avec au plus 2n-1
comparaisons.
Procdure KMP (x, m, y, n)
PrtraitementKMP (x, m, kmpNext)
i := j := 0
tantque (j < n) faire // Parcours du texte
tantque ( (i > -1) et (x[i] != y[j]) ) faire
i := kmpNext[i]
fintantque
i := i + 1
j := j + 1
si (i > m) alors
Occurrence de x trouve la position j - i
i := kmpNext[i]
finsi
fintantque
Nous remarquons que l'algorithme de Knuth-Morris-Pratt a exactement la mme complexit pour le cas le plus
dfavorable que l'algorithme de Morris-Pratt. Cependant, il y a une diffrence importante au niveau du dlai, c'est-dire le nombre de comparaisons faites sur un mme caractre dans le pire des cas.
Le dlai pour l'algorithme de Morris-Pratt est born par m, alors qu'il est born par logf (m) o f est le nombre d'or :
(1 + 51/2) / 2.
La fonction de dcalage du bon suffixe consiste aligner le segment u avec son occurrence la plus droite dans x,
qui est prcde par un caractre diffrent de x[i].
S'il n'y a pas de tel segment, le dcalage consiste aligner le plus long suffixe v de y[j+i+1 .. j+m+1] avec un prfixe
de x qui correspond.
- 42 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Jonathan Krier. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
La fonction de dcalage du mauvais caractre consiste aligner y[j+i] avec son occurrence la plus droite dans
x[0 .. m-2].
Exemple :
Si aucun caractre gal y[j+i] n'existe dans le motif x, aucune occurrence de x dans y ne peut inclure y[j+i]. Dans
ce cas, le dbut de la fentre est aligne avec le caractre qui suit immdiatement y[j+i], c'est--dire y[j+i+1].
L'algorithme Boyer-Moore choisit le dcalage maximum retourn par la fonction de bon suffixe et la fonction de
mauvais caractre.
Les rsultats de cette fonction sont stocks respectivement dans une table bmGS et bmBC. Celles-ci peuvent tre
calcules en temps O(m + ) avant la phase de recherche, et ncessitent un espace mmoire de O(m + ), o
est la taille de l'alphabet.
Procdure BoyerMoore (x, m, y, n)
calculBmGS (x, m, bmGS) // Fonctions non dtailles ici
calculBmBC (x, m, bmBC)
j := 0
tantque (j <= n - m) faire
i := m - 1
tantque ((i >= 0) et (x[i] = y[j+i])) faire
si (i < 0) alors
MOTIF TROUVE en position j
j := j + bmGS[0]
sinon
j := j + MAX(bmGS[i], bmBC[y[j+i]] - m + 1 + i)
finsi
i := i - 1
fintantque
fintantque
Sur des alphabets trs grands, l'algorithme de Boyer-Moore est extrmement rapide. La recherche de am-1b dans
bn ne ncessite que O(n / m) comparaisons, ce qui est le minimum absolu pour tout algorithme de pattern matching
o seul le motif est prtrait.
L'algorithme au pire des cas est en temps O(mn). Cependant, en pratique, on constate que le nombre total de
comparaisons est trs souvent infrieur la longueur du texte. En fait, il a t prouv que cet algorithme est souslinaire en moyenne.
- 43 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Jonathan Krier. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
La premire tape de l'algorithme est de construire un automate dterministe reconnaissant l'ensemble A*X, o A
est l'alphabet et X un ensemble fini de mots rechercher.
Soit donc X un ensemble fini de mots sur un alphabet A, et soit P l'ensemble des prfixes des mots de X. On construit
un automate : A = (P, , P A*X) reconnaissant A*X, dont P est l'ensemble d'tats, est l'tat initial et P A*X
l'ensemble d'tats terminaux.
La fonction de transition est dfinie, pour p # P et a # A, par p.a = fX(pa). La fonction fX est dfinie par : fX(u) = le
plus long suffixe de u qui est dans P.
Cette fonction de transition de l'automate s'exprime l'aide des bords. En effet :
La recherche des occurrences des mots de X dans un texte t = t1tn se fait par
l'algorithme suivant, qui incorpore l'valuation des transitions :
Procdure AHO_CORASICK(X, t):
q := // tat initial
pour i de 1 n faire // parcours du texte
tantque qti P et q faire
q := BordX[q]
fintantque
si qti P alors
q := qti // on avance dans l'automate
sinon
q := // motif introuvable : on retourne au dbut
finsi
si q est un tat final alors
MOTIF q TROUVE en position i
finsi
finpour
Nous pouvons remarquer que l'algorithme de recherche des occurrences des mots de X dans t s'effectue en temps
O(n + m) et en place O(m).
p . a =
fX(pa) si pa P;
BordX(pa) sinon;
BordX(pa) =
BordX(p) . a si p
sinon
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Jonathan Krier. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
La premire amlioration apporte fut l'implmentation de l'algorithme de Boyer-Moore qui apporta de meilleures
performances. Bien que trs efficace pour de nombreuses applications, cet algorithme n'tait pas assez performant
dans le cas d'un NIDS dot de milliers de signatures.
En 2002, la version 2.0 de Snort est dote d'un moteur de recherche multimotif trs rapide, bas sur l'algorithme
de Aho-Corasick. Grce cela, Snort russit le test OSEC (http://osec.neohapsis.com) ralis 750M bits/sec.
Cependant, la qute aux performances tait loin d'tre finie.
Pour amliorer les performances, l'quipe de recherche de Snort savait qu'il n'tait plus ncessaire de changer
d'algorithme. Elle dcida ainsi de modifier principalement l'implmentation de l'algorithme Aho-Corasick. En effet, le
choix de structures de donnes adaptes n'est pas ngligeable pour amliorer la vitesse d'excution.
La reprsentation mmoire de la machine tats de l'algorithme Aho-Corasick est en gnral une matrice o les
lignes reprsentent les tats, et les colonnes reprsentent les vnements. Les lments de la matrice fournissent
l'tat suivant correct en fonction de l'vnement d'entre.
Par le choix de la reprsentation de cette table d'tats, un compromis mmoire - performance est dtermin. De
nombreuses applications utilisent des mthodes de reprsentation trs compresse, ce qui a pour consquence de
diminuer les performances de recherche.
Il n'tait pas pensable que Snort utilise ces mthodes de compression optimales.
Cependant, il tait important de minimiser au mieux la taille mmoire de l'automate. Une bonne reprsentation
des signatures apporte non seulement un gain d'espace mmoire, mais peut aussi apporter un norme gain de
performance grce une zone mmoire accs trs rapide : le cache.
L'optimum serait bien sr de pouvoir stocker toutes les signatures dans le cache, afin d'y accder trs rapidement.
Cependant, cela est difficilement ralisable du fait de la faible capacit des caches et aussi du nombre important (et
croissant) des signatures de Snort.
L'quipe de Snort dcida de reprsenter l'automate tats finis de l'algorithme par une matrice creuse (sparse matrix).
Dans le domaine de l'algbre linaire, il existe des mthodes et des formats de stockage trs performants pour de
telles matrices. Cependant, il n'est pas suffisant de stocker les donnes creuses de manire efficace, il faut surtout
tre capable d'y raliser un accs alatoire rapide.
Aprs avoir compar plusieurs formats de stockage, les chercheurs de Snort choisirent le format BandedRow , constitus de deux vecteurs et de deux index. L'implmentation de l'algorithme de Aho-Corasick fut ensuite
lgrement modifie pour s'adapter la nouvelle structure de donnes.
De nombreux benchmarks ont t raliss afin de s'assurer du gain de performance.
Ces benchmarks testaient trois versions : Aho-Corasick standard, Aho-Corasick optimis avec matrices compltes
et Aho-Corasick optimis avec le format Banded-Row .
L'illustration suivante montre les performances des trois implmentations, normalises par rapport l'algorithme
standard.
Nous pouvons remarquer que l'implmentation avec matrices compltes est 2 2,5 fois plus rapide que
l'implmentation standard. L'implmentation avec le format Banded-Row est plus rapide que la version standard,
mais son intrt par rapport la version matrices compltes n'apparat qu' partir de 1000 motifs. Snort possde
plus de 1000 signatures et par consquent, cette version se montre la plus performante.
L'illustration suivante montre l'espace mmoire ncessaire pour chaque implmentation.
- 45 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Jonathan Krier. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
e
e
Nous constatons que le stockage Banded-Row ne ncessite qu'1/15 du stockage de la version standard et 1/7
de la version avec matrices compltes. L encore, cette implmentation se montre la plus optimise.
VI-H - Conclusion
Plusieurs algorithmes de pattern-matching ont t prsents, et nous avons vu qu'il n'tait pas ais d'avoir un
algorithme efficace dans le cadre d'un NIDS, du fait des contraintes de vitesse des rseaux. Le tableau suivant
reprend les caractristiques majeures des algorithmes analyss prcdemment.
Enfin, nous avons vu que le choix d'un bon algorithme n'tait pas suffisant :
l'implmentation et les structures de donnes choisies jouent un rle trs important dans les performances d'un
algorithme.
VII - Conclusion
Bien que rpandus dans les organisations aujourd'hui, les systmes de dtection d'intrusions ne reprsentent qu'un
maillon d'une politique de scurit. En effet, mme si ceux-ci permettent la dtection, parfois l'arrt, des intrusions,
ils restent nanmoins vulnrables eux aussi face aux attaques externes.
C'est pourquoi, pour une scurit optimale, ces outils doivent tre coupls d'autres, comme l'indispensable parefeu. Mais ils doivent aussi tre mis jour, aussi bien le cur du logiciel comme la base de signatures, qui constitue
la base d'une dtection efficace. Il faut galement coupler les systmes de dtection entre eux : c'est--dire ne pas
hsiter placer des NIDS, HIDS et KIDS dans le mme rseau. Leurs rles sont diffrents, et chacun apporte ses
fonctionnalits.
L'efficacit des dtections passe aussi par une bonne implmentation des algorithmes de recherche. L'tude que nous
avons mene sur ces algorithmes nous a permis d'observer combien il est indispensable d'utiliser des structures
de donnes appropries lors d'un dveloppement. Mais ce n'est pas tout, au-del de ces structures, doit rsider un
savoir-faire important de la part du (des) concepteur(s).
Toutefois, et nous terminerons par ceci, mme si une certaine maturit dans ce domaine commence se sentir, le
plus important reste de savoir de quoi il faut se protger.
Les failles les plus rpandues proviennent gnralement de l'intrieur de l'entreprise, et non de l'extrieur. Des mots
de passe simples, des droits d'accs trop levs, des services mal configurs, ou encore des failles dans les logiciels
restent la bte noire en matire de scurit.
VIII - Bibliographie
Exact String Matching Algorithms
Christian Charras et Thierry Lecroq
http://www-igm.univ-mlv.fr/~lecroq/string/
lments d'algorithmique - Recherche de motifs
D. Beauquier, J. Berstel, Ph. Chrtienne
http://www-igm.univ-mlv.fr/~berstel/Elements/Elements.html
- 46 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Jonathan Krier. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Jonathan Krier. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://www.bro-ids.org
LIDS Documentation
LIDS Project
http://www.lids.org
Articles Wikipdia
http://www.wikipedia.org
Il est utile de connatre les champs du protocole IP, qui sont utiliss des fins de reconnaissance ou d'attaque par
dni de services :
Pour tablir une connexion TCP, il y a un protocole de ngociation appel poigne de main TCP (handshake).
Celle-ci se droule en 3 phases :
1) La source met une requte d'tablissement de connexion : bit SYN 1 + numro de squence alatoire (ISN) ;
2) Si la destination accepte : bits SYN et ACK 1 + numro de squence propre + numro de squence de la source
augment de 1 ;
- 48 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Jonathan Krier. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
3) La source acquitte la rponse de la destination en positionnant le bit ACK 1, en incrmentant son numro de
squence originel et un numro d'acquittement gal au numro de squence de la destination augment de 1.
Les champs de TCP, comme ceux de IP, sont souvent utiliss par des pirates des fins intrusives. Voici un rappel
de ces champs :
Port source & port destination (16 bits) : dterminent le service requis
Numro de squence (32 bits) : numro du premier octet de donnes par rapport au dbut de la transmission,
sauf si SYN est marqu. Dans ce cas, numro de squence = ISN.
Accus de rception (32 bits) : Si ACK est marqu, ce champ contient le numro de squence du prochain
octet que le rcepteur s'attend recevoir
Header Length (4 bits) : taille de l'en-tte TCP en nombre de mots de 32 bits
Rserv (6 bits) : usage futur #toujours 0
Flags (6 bits) : utiliss pour contrle et gestion des connexions TCP
o URG : champ pointeur de donnes urgentes significatif
o ACK : champ accus de rception significatif
o PSH : fonction Push
o RST : rinitialisation de la connexion
o SYN : synchronisation des numros de squence
o FIN : fin de connexion
Fentre (16 bits) : nombre d'octets partir de la position marque dans l'accus de
rception que le rcepteur est capable de recevoir
Checksum (16 bits) : somme de contrle calcule sur le datagramme
Pointeur de donnes urgentes (16 bits) : spcifie la position d'une donne urgente (position par rapport au
numro de squence)
Options (variable) : doit tre un multiple de 8 bits =>remplissage (padding) ventuel
o Maximum Segment Size (MSS) : taille maximale des segments : envoye dans la requte de connexion
initiale
o Window Scale : permet de dfinir des tailles de fentre suprieures 64Ko
o Selective Acknowledgement (SACK) : acquittements slectifs
o NOP (No OPeration) : sparateur pour aligner le dbut d'une option sur le dbut d'un mot de 16 bits
Voici galement un rappel des champs du protocole UDP :
Port source (16 bits)
Port destinataire (16 bits)
Longueur (16 bits) : nombre d'octets du datagramme entier (y compris en-tte). Min = 8
Checksum (16 bits)
Le protocole ICMP est souvent utilis des fins malicieuses, car c'est un protocole utile pour des messages flash,
et il ne ncessite pas de connexion ni de port.
Les paquets ICMP sont encapsuls dans les paquets IP pour des raisons historiques.
Les champs ICMP sont les suivants :
- 49 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Jonathan Krier. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
1 : Les request for comment (RFC, littralement demande de commentaires) sont une srie
de documents et normesconcernant l'Internet, commence en 1969. Peu de RFC sont des
standards, mais tous les standards de l'Internet sontenregistrs en tant que RFC.
2 : Un firewall, ou pare-feu est un dispositif logiciel ou matriel qui filtre le flux de donnes sur
un rseau informatique.Il est parfois appel coupe-feu.
3 : Un shellcode est une chane de caractres qui reprsente un code binaire excutable
capable de lancer un shell('/bin/sh' sous Unix ou command.com sous DOS et Microsoft
Windows par exemple). Un shellcode peut tre utilis parun cracker voulant avoir accs la
ligne de commande.
4 : RPC (Remote Procedure Call) est un protocole permettant de faire des appels de
procdures sur un ordinateur distant l'aide d'un serveur d'application. Ce protocole est utilis
dans le modle client-serveur et permet de grer les diffrents messages entre ces entits.
5 : Une zone dmilitarise (DMZ) est un sous-rseau isol par un pare-feu. Ce sousrseau contient des machines sesituant entre un rseau interne (LAN) et un rseau externe
(typiquement, Internet).
6 : Un senseur est une sonde, place sur le rseau, dont le rle est d'attraper le trafic circulant
sur celui-ci.
7 : Un sniffer est une machine coutant toutes les donnes circulant sur le rseau.
8 : Le Rseau priv virtuel (VPN ou Virtual Private Network, en anglais), est une extension des
rseaux locaux quiprocure une norme de scurit en tlcommunications.
9 : Le broadcast est un terme anglais (en franais on utilise le terme diffusion) dfinissant une
diffusion de donnes un ensemble d'ordinateurs connects un rseau informatique.
10 : Netfilter est le module qui fournit sous Linux depuis la version 2.4 les fonctions de parefeu, de partage de connexions internet (NAT) et d'historisation du trafic rseau. Iptables est la
commande Linux qui permet un administrateur de configurer Netfilter en mode Utilisateur.
11 : Un rootkit est un programme ou ensemble de programmes permettant un pirate de
maintenir - dans le temps -un accs frauduleux un systme informatique.
12 : Un Framework, ou cadre d'applications, est un ensemble de bibliothques et d'outils
permettant de faciliterl'utilisation groupe d'applications.
- 50 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Jonathan Krier. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.