Professional Documents
Culture Documents
ystèmes de Détec
tection
d’Intr
Intrusions Réseau
eau
Pilote
Toinard Christian
Auteur
Sobesto Bertrand
3ème Année
Filière
re Sciences
S et Technologies de l’Information
Option
tion Sécurité des Systèmes d’Information
Année 2007 – 2008
Sommaire
TABLE DES FIGURES .......................................................................................................................................... 2
INTRODUCTION ................................................................................................................................................ 3
CONCLUSION .................................................................................................................................................. 27
BIBLIOGRAPHIE .............................................................................................................................................. 28
ANNEXES ........................................................................................................................................................ 30
Cette étude a été réalisée dans le cadre des projets techniques de 3ème année.
L’objectif est de réaliser un état de l’art dans le domaine des systèmes de détection
d’intrusions réseau et de réaliser une évaluation de quelques solutions existantes
sur le marché de la détection d’intrusion.
De nos jours, les systèmes d’information ont pris une place prépondérante dans notre
société. Les nouvelles technologies sont omniprésentes que ce soit sur le lieu de travail, dans les
moyens de transports ou bien dans les maisons. Ces systèmes sont devenus de plus en plus
communicants et se sont ouverts vers l’extérieur pour permettre un accès et un contrôle à
distance d’une application ou d’un appareil.
On note également un très fort essor ces dernières années d’Internet. Le nombre de
foyers et d’entreprises connectés à ce réseau croit de plus en plus tout comme les vitesses des
liaisons. Beaucoup d’opérations s’effectuent via Internet. De nouvelles technologies comme les
réseaux privés virtuels permettent d’utiliser ce réseau grand public comme moyen
d’interconnexion de réseaux.
L’émergence de ces nouvelles technologies n’est pas sans conséquence. Tout d’abord
nous conservons désormais sous forme numérique des données sensibles et donc de grande
valeur. De plus, la place prise par l’informatique dans les entreprises ou la vie de tous les jours est
d’une importance telle, qu’une panne de réseau peut neutraliser une société et peut coûter une
somme d’argent très élevée. Ces deux états de fait amènent des personnes malintentionnées à
tenter de compromettre les systèmes d’information ou de voler des données en exploitant les
failles de sécurité. L’ouverture des systèmes sur Internet permet à l’attaquant d’avoir un accès plus
facile au réseau qu’il souhaite viser.
B. Vulnérabilité
Une vulnérabilité est une erreur dans le code d’une application qui permet à un pirate
d’exécuter une commande ou un morceau de code sur une machine cible. Les logiciels sont
devenus de plus en plus présents et sont de plus en plus complexe, leurs codes contiennent de
plus en plus de lignes. On estime que parmi 1000 lignes de code, 10 contiennent des erreurs et
donc des vulnérabilités potentielles.
On distingue différents types de pirate, on les classe suivant leurs objectifs, leurs connaissances et
leurs moyens.
1. Les script-kiddies
Ce sont généralement des adolescents (d’où le nom de script kiddies) qui utilisent des
scripts mis au point par de véritables pirates pour exploiter des vulnérabilités. Leur objectif
principal est la reconnaissance, ils n’ont pas de réelles connaissances et leur activité privilégiées est
le « web defacement » (défiguration de site web). Ils représentent une grande majorité des pirates.
2. Les hackers
Leur niveau de connaissances en système est beaucoup plus élevé que les script-kiddies.
Ils recherchent et exploitent les failles dans tous types de systèmes. Leur but n’est pas de voler
des données ou de compromettre un système. Ils ont pour principe d’informer les gens des
vulnérabilités qui sont présentes dans une application ou un serveur.
3. La menace interne
4. Les organisations
Placés en bordure de réseaux, les firewalls sont efficaces pour autoriser ou pas l’accès à
une machine d’un réseau depuis l’extérieur, mais ils ne sont pas capables de vérifier le contenu
des paquets des flux autorisés. De plus une attaque contre un serveur peut être lancée depuis une
machine interne au réseau… Cette attaque ne pourra pas être détectée par le pare-feu.
Pour palier à ce problème et sécuriser le réseau en tout point, on peut mettre en place des
systèmes de détection d’intrusions (ou IDS). Les IDS sont des outils qui permettent de mettre en
évidence les activités inappropriées, incorrectes ou anormales sur un système ou un réseau
informatique. Ils permettent de mettre en évidence d’éventuelles intrusions en surveillant l’activité
d’un système pour recueillir différents évènements et en les analysants.
Les I.D.S. ont des rôles multiples. Leur principal objectif est la détection d’intrusions. Ils
peuvent être également utilisés pour contrôler la politique de sécurité des pare-feux, dans ce cas là
l’IDS vérifie que le trafic observé correspond bien à la politique de sécurité. On peut aussi
détecter les comportements polluants de certains éléments actifs du réseau.
A. Reconnaissance
Cette étape, aussi appelée prise d’empreinte permet d’obtenir des informations sur le réseau visé :
• Adresses IP
• Serveurs
• Services disponibles…
Ces renseignements peuvent être obtenus par le pirate en faisant du « social engineering », c'est-à-
dire obtenir les informations en manipulant une personne qui a la connaissance du système.
B. Découverte du système
1. Topologie
A l’aide d’outils comme traceroute, on détermine les voies d’accès au réseau (les routeurs
qui séparent l’attaquant du réseau visé).
2. Scanning et énumération
Une fois que la topologie est connue, on analyse les adresses IP du réseau avec un
scanneur de ports pour détecter les ports ouverts, les différents services disponibles et les
versions des systèmes d’exploitation.
Une fois les versions des différents serveurs et systèmes d’exploitation obtenues, il est
possible d’utiliser des scanneurs de failles telles que Nessus ou SAINT pour détecter les
vulnérabilités. Ensuite le pirate peut exploiter les failles trouvées pour s’introduire dans le
système :
• Obtenir des privilèges d’administrateur.
• Compromettre le système.
• Mettre en place une porte dérobée, pour que le pirate puisse continuer à infiltrer
le réseau de l’entreprise.
Ce type d’attaque consiste à saturer les ressources d’un système de façon à l’empêcher de
fonctionner correctement.
Inondation : attaque de dénis de service la plus courante, elle consiste à envoyer un grand nombre
de paquets (exemple : SYN flood qui provoque l’ouverture des connexions sur le serveur et qui
provoque sa saturation).
Land et Latierra : La cible, la source et la destination du paquet sont identiques, ce qui provoque
une boucle infinie.
Attaques par fragmentation : Comme par exemple le teardrop qui consiste à utiliser des fragments de
paquets qui se recouvrent.
Consiste à utiliser les vulnérabilités d’une application pour acquérir des privilèges sur le
système visé dans le but de le compromettre ou de détourner de l’information.
Buffer overflow : Il permet l’écrasement de données et peut provoquer une erreur de segmentation.
Dans ce cas il s’agit d’une forme de déni de service. Cependant il est possible d’injecter un « shell
code » qui va permettre au pirate d’obtenir une invite de commande de type shell sur la machine
cible.
Injection SQL : Possibilité de faire exécuter des instructions SQL par le biais de formulaires web.
Cette technique consiste à cacher un canal d’information parmi les flux de données
« normaux ».
Les systèmes de détection d’intrusions système sont en charge de détecter les anomalies
sur un système précis. Ils permettent de surveiller l’activité du processeur, la mémoire, l’espace
disque disponible, l’intégrité des fichiers ou les tentatives de connexion. Ils peuvent également
réaliser une analyse des journaux du système ou des applications présents sur la machine.
Les IDS systèmes sont très peu furtifs, ils se présentent sous forme d’un processus et
utilisent des ressources systèmes. De plus il est nécessaire d’installer une sonde HIDS par
machine à monitorer. Ils sont également assez vulnérables, une personne ayant des droits
suffisants peut arrêter le processus. Cependant ils permettent de déterminer si une intrusion a
réussi. Les HIDS recueillent et analysent généralement les données de manière différée.
Les systèmes de détection d’intrusions réseau sont des sondes qui contrôlent l’activité du
réseau. Ils analysent les paquets et leur contenu à l’aide de techniques variées qui permettent de
détecter du trafic anormal ou une tentative d’intrusion. Ils sont furtifs, leur présence n’est pas
détectable. Placés en des points stratégiques sur le réseau, les NIDS ont une vue globale, une
sonde peut surveiller un réseau entier. Contrairement au HIDS, l’analyse du trafic réseau se fait
en temps réels.
Les systèmes de prévention des intrusions est un système de détection d’intrusions réactif.
Lorsqu’une intrusion est détectée, l’IPS prend une contre-mesure pour bloquer l’attaque.
Généralement il indique au pare-feu d’interrompre une connexion ou de mettre en liste noire une
source d’attaque.
Dans ce cas, l’IDS devient un élément actif du réseau, il perd sa propriété de furtivité, il
est donc détectable par l’attaquant : Certaines attaques peuvent faire bloquer tout le réseau par
l’IPS… De plus l’IPS peut générer des faux positifs et ainsi bloquer des connexions légitimes.
Comme pour les IDS, il y a deux types d’IPS :
A. Le modèle CIDF
1. Générateur d’évènements
Le but de la E-box et de fournir des évènements au système, c’est le protocole de bas niveau qui
permet de récupérer des informations pour les autres composants de l’IDS.
2. Analyseur d’évènements
L’analyseur d’évènements analyse les informations qui proviennent du générateur d’évènements.
Cette « box » va extraire les informations pertinentes grâce à des techniques basées sur les
signatures ou la détection d’anomalies.
3. Stockage d’information
Le générateur et l’analyseur d’évènements peuvent produire une grosse quantité d’informations
qu’il est important de stocker pour permettre une consultation par l’administrateur.
4. Contre-mesure
La plupart des IDS sont faits pour détecter uniquement, mais il est possible de rajouter un
module qui permet de contrer l’attaque.
C. IDMEF
L’Intrusions Detection Message Exchange Format est une norme qui définit le format
des données échangées et les procédures pour partager des informations entre deux éléments
d’un système de détection et de prévention d’intrusions. Ce langage peut être utilisé par un
gestionnaire des informations de sécurité (SIM) pour interagir avec un IDS. IDMEF se base sur
XML, une DTD a été définie par l’IETF.
Exemple : Message IDMEF d’un NIDS sur une attaque de type « phf » :
<IDMEF-Message version="1.0">
<Alert ident="abc123456789">
<Analyzer analyzerid="bc-sensor01">
<Node category="dns">
<name>sensor.example.com</name>
</Node>
</Analyzer>
<CreateTime ntpstamp="0xbc71e980.0x00000000">
2000-03-09T08:12:32-01:00
</CreateTime>
<Source ident="abc123">
<Node ident="abc123-001">
<Address ident="abc123-002" category="ipv4-addr">
<address>192.0.2.200</address>
</Address>
</Node>
<Service ident="abc123-003">
<port>21534</port>
</Service>
</Source>
<Target ident="xyz789">
<Node ident="xyz789-001" category="dns">
<name>www.example.com</name>
<Address ident="xyz789-002" category="ipv4-addr">
<address>192.0.2.100</address>
</Address>
</Node>
<Service>
<port>8080</port>
<WebService>
<url>
http://www.example.com/cgi-bin/phf?/etc/group
</url>
<cgi>/cgi-bin/phf</cgi>
<http-method>GET</http-method>
</WebService>
</Service>
</Target>
<Classification origin="bugtraqid">
<name>629</name>
<url>http://www.securityfocus.com</url>
</Classification>
</Alert>
</IDMEF-Message>
A. Méthodes de détection
Les méthodes de détection par abus utilisent une base de connaissance appelée base de
signatures qui décrit une attaque. Ces techniques impliquent que l’attaque doit être connue au
préalable. Les méthodes basées sur les signatures sont très efficaces, elles génèrent très peu de
faux-positifs. Cependant pour qu’un IDS soit performant, il faut que sa base de signature soit
mise à jour régulièrement pour détecter les nouvelles menaces.
Pattern matching : Les méthodes de détection par abus utilisent le « pattern matching ». L’IDS
analyse les paquets réseau et compare le contenu avec les signatures. S’il y a correspondance alors
il y a intrusion. On recherche dans les données des chaînes de caractères suspectes,
correspondant à des attaques connues.
Analyse protocolaire : L’IDS va vérifier que le paquet respecte bien les différentes RFC des
différents protocoles mis en jeu lors d’une communication.
Cependant cette méthode ne permet pas de détecter les variantes d’une attaque, pour
pallier à ce problème, des algorithmes heuristiques et génétiques sont utilisés. Ils permettent de
détecter les variantes en effectuant des approximations en un temps raisonnable.
Exemple de signature :
2. Détection d’anomalies
Les IDS utilisant la détection d’anomalies sont appelés IDS comportementaux. Ces outils
comparent le comportement observé par un comportement dit « normal ». La déviation entre le
profile normal et le comportement observé est calculé. Au-delà d’une certaine limite (notion de
seuil), le trafic est considéré comme étant anormal.
Classifieur de Bayes : Après une période d’apprentissage sur des caractéristiques d’un flux ou d’une
connexion, le classifieur pourra déterminer si le comportement courant est une attaque ou pas.
Machines à support de vecteurs : ou séparateur à vaste marge est une technique d’apprentissage
supervisé capable de comparer deux objets (comportement normal et observé) et de les classer.
B. Limitations
Le trafic observé par le NIDS dépend de son positionnement sur le réseau. Intercalé entre
le pare-feu et le réseau, le NIDS aura une vue sur le trafic entrant et sortant du réseau mais il ne
verra pas les échanges entre les machines du réseau. Il existe différentes méthodes pour récupérer
les informations sur le réseau :
• Les boitiers TAP qui permettent de placer un NIDS sur un lien spécifique du réseau.
• Le port mirroring, le commutateur réplique toutes les données reçues sur un port.
2. Pollution/surcharge
L’IDS peut être victime d’une attaque par surcharge ou pollution pour cacher une attaque
de plus grosse envergure. Ce type d’attaque a pour effet de le saturer et donc de ne plus assurer sa
fonction correctement.
3. Contournement/évasion
Il existe des méthodes pour leurrer un NIDS. Dans le cas d’une attaque par évasion, le
NIDS va rejeter le paquet parce qu’il ne sera pas conforme alors que la cible va l’accepter.
Fragmentation : Des attaques comme le teardrop qui consiste à envoyer deux fragments qui se
recouvrent peuvent leurrer le pattern matching. On peut cacher une attaque au niveau applicatif
en fragmentant un paquet.
Substitution : On peut remplacer une chaîne de caractère par son équivalent en hexadécimal :
GET %65%74%63/%70%61%73%73%77%64
L’IDS ne sait pas que cette requête sera interprétée par le serveur web qui fournira en réponse la
liste des mots de passe du système.
4. Temps de détection
Le temps de détection dépend de l’utilisation que l’on souhaite faire de l’IDS. Si l’on
souhaite contrer une attaque, il est évident que le temps de détection doit être le plus petit
possible. L’IDS doit donc réaliser une analyse en temps réel, il doit être suffisamment
dimensionné pour pouvoir traiter l’ensemble du trafic en un temps raisonnable.
Certains IDS stockent le trafic réseau et ne réalisent des analyses des données
régulièrement (toutes les trente minutes par exemple).
I. Méthodologie
A. Plateforme de test
1. Plateforme d’origine
L’attaque était lancée depuis la machine réelle à destination de la machine virtuelle sous Windows
XP et à destination de la machine virtuelle sous Linux. Cette configuration demandait beaucoup
de mémoire à la machine hôte qui n’en avait que 512 Mo, de plus bien que normalement Vmware
doit agir comme un hub, les données de l’attaque n’étaient pas transmises sur la machine
hébergeant l’IDS.
Pour pallier au problème de mémoire et à l’effet Switch des interfaces réseau de Vmware,
la plateforme a été modifiée. Elle est composée d’une machine réelle, à partir de laquelle on lance
les attaques et d’une machine virtuelle qui est la cible et qui héberge l’IDS. Sur cette machine ont
également été installés quelques services comme un serveur Web, un serveur de base de
données…
1. Snort
Snort se base sur des fichiers de règles pour détecter les intrusions. Il est donc important
de les mettre à jour régulièrement. Voici un exemple de règle snort :
alert tcp !192.168.1.0/24 any -> 192.168.1.0/24 111 (content: "|00 01 86 a5|"; msg:
"external mountd access";)
Figure 5 - AcidBASE
Bro-IDS est un système de détection d’intrusion réseau. Il est destiné aux environnements
de type Unix comme Linux ou OpenBSD. Il observe le trafic réseau de manière passive à la
recherche d’activités suspicieuses.
Bro détecte les intrusions en analysant le trafic réseau, il vérifie les données du niveau
applicatif et exécute son analyseur orienté évènement pour comparer l’activité avec une base de
signatures d’attaques.
new_connection(c: connection)
new_packet(c: connection, p: pkt_hdr)
connection_established(c: connection)
Prélude est un système de détection d’intrusion hybride, c’est-à-dire qu’il est à la fois un
Host-based IDS et un Network-based IDS.
On peut donc dire que cet outil est modulaire et est distribué. On peut également noter
que les communications entre la sonde et le manager sont chiffrées et qu’une procédure
d’association sécurisée permet à une sonde de joindre un manager.
Prelude est aussi capable de mettre en œuvre une contre-mesure qui permet de définir
une réaction à une attaque. La communication entre les sondes et le manager utilisent IDMEF.
Counter
Measure Agnets
Sonde
Prelude-lml Base de données
MySQL
Sonde Manager
Prelude-lml Prelude-lml
Front-end
Prewikka
Sonde
Prelude-lml
Architecture de Prélude-NIDS
Le trafic réseau est capturé grâce à la libpcap. Quand un paquet est reçu, Prélude effectue
à une vérification de sa structure et ensuite il procède au réassemblage des connexions TCP et
défragmente les paquets IP. A partir de là, le paquet est transmis au « protocol plug-ins ». Ce
moteur permet de décoder les protocoles de plus haut niveau (RPC, http, …). Ensuite le paquet
est transmis au « signature engine » pour vérifier si le contenu correspond à une signature. Les
signatures sont extensibles, il est possible de rajouter des modules qui permettent de parcourir
des paquets spécifiques à une application.
Sur la plateforme d’évaluation, l’application web Prewikka permet de visualiser les alertes
de Prélude.
Figure 9 - Prewikka
Cette interface permet de voir que Prélude est capable de gérer deux types d’alertes : Les
alertes provenant du moteur de détection de Prélude et celles qui proviennent de l’analyse en
continue des fichiers de journalisation. On peut également voir qu’il est possible de créer des
règles de corrélation entre les alertes et d’en générer de nouvelles.
Netflow est un protocole réseau ouvert mais propriétaire développé par Cisco. Il sert à
collecter des informations sur le trafic IP d’un réseau.
Certains routeurs (surtout Cisco) sont capables de générer des enregistrements Netflow
(netflow record) contenant, suivant les versions, un certain nombre d’informations concernant un
flux. Un flux est défini comme étant une séquence de paquets partageant les propriétés suivantes :
• Adresse IP source
• Adresse IP destination
• Protocole Transport
• Port source
• Port destination
• Protocole IP
Date flow start Duration Proto Src IP Addr:Port Dst IP Addr:Port Flags Tos Packets Bytes Flows
2005-08-30 06:53:53.370 63.545 TCP 113.138.32.152:25 -> 222.33.70.124:3575 .AP.SF 0 62 3512 1
2005-08-30 06:53:53.370 63.545 TCP 222.33.70.124:3575 -> 113.138.32.152:25 .AP.SF 0 58 3300 1
NFSen, NetFlow Sensor, est une manière graphique de représenter les flots.
A partir d’un profile particulier ou du profile ‘live’, il est possible de définir des alarmes,
généralement basée sur des seuils. Dès qu’une condition est atteinte, une alarme est levée ; Les
conditions peuvent être définies à partir de l’observation des flux dans leur totalité, à partir d’une
caractéristique mesurée par NFSen (nombre de paquets) ou à partir de données renvoyées par un
plug-in.
NFSen est modulaire, il est possible d’y ajouter des plug-ins qui réalisent des calculs à
partir des flux. D’autres plug-ins permettent d’exécuter une action (exécution de script,
journalisation dans une base de données de l’alerte…) lorsqu’une alerte est levée.
NFSen n’est pas à proprement dit un NIDS, il s’agit d’un visualisateur graphique de flots
réseau, mais on peut s’en servir en tant que tel. Les fonctionnalités d’historisation des flux, de
définition de profiles et d’alertes par seuils peuvent permettre de dire qu’il s’agit d’un détecteur
d’anomalies orienté flux.
1. Nessus
Nessus est un scanneur de vulnérabilités pour réseau. Il détecte les machines présentes
sur le réseau, effectue une énumération des ports ouverts, détermine les services avec leur version
et tente d’attaquer les services disponibles.
Ce programme se décompose en deux parties, il est composé d’un daemon qui exécute le
scan de vulnérabilités et d’un client qui récupère et met en forme les informations recueillies par
le daemon. Nessus est modulaire, il est possible de rajouter des plug-ins pour tester de nouvelles
vulnérabilités.
La version de Nessus installée pour l’évaluation contient 3814 plug-ins. Le but est de voir
si les NIDS détectent le scan de ports réalisé par Nessus ainsi que toutes les tentatives
d’exploitation des vulnérabilités.
Nmap est un scanneur de ports, il détecte sur une machine distante les ports ouverts, les
services et des informations sur le système d’exploitation.
Le but est de voir si les NIDS détectent un scan XMAS. Le scan XMas Tree utilise des
flags TCP incorrects (URG, PSH et FIN). Si le port est fermé, l’attaquant recevra un paquet RST
sinon le paquet est détruit.
Figure 13 – NMAP
3. Nikto
1. IDSWakeup
IDSWakeup est un générateur de faux positif, il a pour but de tester les NIDS. La
dernière version datant de 2000, il ne paraît pas très opportun de l’utiliser pour l’évaluation.
2. Snot et Stick
Stick est un outil de stress pour IDS, il permet de déterminer le point de saturation.
Snot permet de générer des fausses attaques à partir d’un fichier de règles snort.
3. Fragroute
Cet outil permet de tester les techniques d’évasion des NIDS en utilisant la fragmentation
des paquets IP.
1. Administration
Ajout de règles : Localisation des règles, utilisation d’une syntaxe simple, ajout possible ?
Analyse des alertes : Existe-t-il des applications qui permettent une visualisation des alertes ?
2. Type d’IDS
Type : Quel est le type d’IDS ? IDS réseau, IDS système ou IDS hybride
Méthodes d’analyses : L’IDS utilise-t-il un moteur de détection d’anomalies ou d’abus ou les deux ?
IDMEF : Dans le cas d’IDS distribués, est-ce que l’IDS respect le standard IDMEF ?
4. Architecture
Architecture du moteur de détection : Est-il possible de rajouter des plug-ins au moteur de détection ?
Architecture logicielle : L’IDS est-il sous forme d’un seul programme ? Est-il possible de répartir des
sondes (IDS distribué) ?
5. Performance temporelle
Type d’analyse : L’IDS effectue-t-il une analyse en continue ou par batch ? Est-ce que l’analyse est
en temps réelle ?
6. Performance de détection
Combien d’alarmes ont été levées par l’IDS au cours des différents tests ?
Type
Envergure d’analyse Réseau uniquement Hybride Réseau uniquement Réseau uniquement (Flux)
Contre mesure Oui (module interne) Oui Oui Oui (plug-ins)
Méthode d’analyse Méthode de détect.par abus Méthode de détection par Méthode de détection par Méthode de détection par
et par anomalies (seuils) abus (signatures) abus orientée évènement anomalie (seuils)
Standards
IDMEF Non Oui, dialogue entre les Non -
sondes et le manager
Modèle CIDF E-Box : Préprocesseur E-Box et A-Box : Sonde E-Box : Event engine A-Box : Plug-ins
D-Box : Plug-ins output D-Box : Manager A-Box D-Box: Policy script C-Box : Plug-ins
C-Box : Manager interpreter E-Box : Netflow
C-Box : Plug-ins
Interopérabilité Non Oui Non Non
Performance temporelle
Méthode d’analyse Temps réels Temps réels Temps réels Différé
Remontée des informations En continu Pulsation (Batch) En continu Batch
Performance de détection
NMAP Agressif 0 1 2 -
NMAP XMAS Scan 0 1 2 -
Nessus 1031 85 1107 -
Nikto 25 0 500 -
Nikto IDS Evasion 29 0 306 -
La détection d’anomalies se base sur des notions de seuils, sur des modèles
statistiques ou probabilistes ou sur des notions d’intelligence artificielle. Elle
présente l’avantage de détecter des attaques inconnues, cependant cela nécessite
une période d’apprentissage pour générer ce que l’on appelle « le comportement
normal ». Ces méthodes calculent la déviation entre le comportement observé et le
comportement dit normal. Si cette déviation est trop importante, une alarme est
levée.
L’évaluation des solutions proposées dans cette étude montre que ces outils
utilisent majoritairement des méthodes de détection basées sur l’abus, cela
s’explique par le fait que les méthodes de détection par anomalies sont encore au
stade expérimental et qu’il est difficile de les mettre en œuvre.
On peut également observer que toutes les solutions proposent, soit sous
forme de plug-ins ou alors nativement, la possibilité de lancer une contre mesure
dès qu’une alerte se déclenche.
Thierry Evangelista. Les IDS, Les Systèmes de détection d’intrusions informatiques. Dunod, 2004.
Kerry Cox & Christopher Gerg. Snort et les IDS. O’Reilly, 2004.
Rafeeq Ur Rehman. Intrusion Detection Systems with Snort: Advanced IDS Techniques with Snort, Apache,
MySQL, PHP, and ACID. Prentice Hall PTR, 2003.
Publications
Gaia Maselli, Luca Deri et Stefano Suin. Design and Implementation of an Anomaly Detection System : an
Empirical Approach. In Proceedings of Terena TNC, 2003.
Kumar, Sandeep. Classification and detection of computer intrusions. PhD thesis, Purdue University,
1995.
Douglas J. Brown, Bill Suckow, and Tianqiu Wang. A Survey of Intrusion Detection Systems.
Department of Computer Science, University of California, San Diego, Spring 2003.
Stefan Axelsson. Intrusion Detection Systems : A Survey and Taxonomy. Department of Computer
Engineering, Chalmers University of Technology, Göteborg, Sweden, mars 2004.
Aleksandar Lazarevic, Levent Ertoz, Vipin Kumar, Aysel Ozgur and Jaideep Srivastava. A
Comparative Study of Anomaly Detection Schemes in Network Intrusion Detection. Computer Science
Department, University of Minnesota.
Thomas H. Ptacek and Timothy N. Newsham. Insertion, Evasion, and Denial of Service: Eluding
Network Intrusion Detection. Secure Networks, Inc., Janvier 1998.
Dagorn, Nathalie. Détection et prévention d’intrusion : présentation et limites. INRIA Lorraine – LORIA,
2006
http://www.webopedia.com/DidYouKnow/Computer_Science/2005/intrusion_detection_prev
ention.asp
http://lehmann.free.fr/RapportMain/RapportMain.html
Scan de vulnérabilité
http://www.hsc.fr/ressources/outils/idswakeup/
http://www.nessus.org/nessus/
http://en.wikipedia.org/wiki/Vulnerability_scanner
http://sectools.org/web-scanners.html
Outils IDS
http://www.bro-ids.org/
http://www.prelude-ids.com/
http://www.snort.org/
http://nfsen.sourceforge.net/
http://en.wikipedia.org/wiki/Netflow
Etat Avancement
Etat d’avancement du projet au 25 Janvier 2008
Résultats NMAP
Résultat du scan NMAP avec l’option XMas Tree Scan
Aide de Nikto
Aide en ligne de Nikto
Résultat Nikto
Résultat du scan de vulnérabilités de Nikto
Résultat Nessus
Résultat du scan de vulnérabilités de Nessus
Réseau
Janvier 2008
Résumé
Ce document est un cahier des charges. Il a pour objectif de dénir :
1. Le contexte de ce projet
2. Le but
3. Les grandes étapes de réalisation
Table des matières
1 Introduction 2
1.1 Contexte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Sujet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2 Objectifs 3
2.1 Problématique . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2 Buts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3 Echéances 4
3.1 Les étapes de réalisation . . . . . . . . . . . . . . . . . . . . . 4
3.2 Calendrier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1
Chapitre 1
Introduction
1.1 Contexte
1.2 Sujet
2
Chapitre 2
Objectifs
2.1 Problématique
2.2 Buts
Après une courte présentation pour déterminer pourquoi il est utile d'uti-
liser un détecteur d'intrusion, on verra les diérents types d'outils de détec-
tion d'intrusion (système et réseau). Par la suite, l'étude se focalisera sur les
systèmes de détection d'intrusion réseau.
Le but de cet état de l'art est de dénir de manière exhaustive les diérentes
méthodes d'analyse des paquets et de tester l'ecacité des solutions logicielles
disponibles actuellement.
3
Chapitre 3
Echéances
4
3.1.4 Plateforme de test
Cette phase permettra de tester les NIDS. Suivant les critères d'évaluation
et les caractéristiques de la solution déployée, diérents types d'attaques se-
ront eectuées. Cette étape permettra d'évaluer et de comparer les diérents
NIDS choisis.
3.2 Calendrier
Jeudi 20 Décembre
Dénition du sujet
5
Les Systèmes de Détection d’Intrusions
Réseau
Avancement du projet
Bertrand Sobesto
bertrand.sobesto@ensi-bourges.fr
25 Janvier 2008
Partie 1 – Bibliographie
Livres
Thierry Evangelista. Les IDS, Les Systèmes de détection d’intrusions informatiques. Dunod, 2004.
Kerry Cox & Christopher Gerg. Snort et les IDS. O’Reilly, 2004.
Rafeeq Ur Rehman. Intrusion Detection Systems with Snort: Advanced IDS Techniques with Snort,
Apache, MySQL, PHP, and ACID. Prentice Hall PTR, 2003.
Publications
Laura Oller. Etude des Systèmes de détection d’intrusions réseau comportementaux. ENSI Bourges,
Juin 2006.
Gaia Maselli, Luca Deri et Stefano Suin. Design and Implementation of an Anomaly Detection System :
an Empirical Approach. In Proceedings of Terena TNC, 2003.
Kumar, Sandeep. Classification and detection of computer intrusions. PhD thesis, Purdue University,
1995.
Douglas J. Brown, Bill Suckow, and Tianqiu Wang. A Survey of Intrusion Detection Systems.
Department of Computer Science, University of California, San Diego, Spring 2003.
Stefan Axelsson. Intrusion Detection Systems : A Survey and Taxonomy. Department of Computer
Engineering, Chalmers University of Technology, Göteborg, Sweden, mars 2004.
Aleksandar Lazarevic, Levent Ertoz, Vipin Kumar, Aysel Ozgur and Jaideep Srivastava. A Comparative
Study of Anomaly Detection Schemes in Network Intrusion Detection. Computer Science Department,
University of Minnesota.
Thomas H. Ptacek and Timothy N. Newsham. Insertion, Evasion, and Denial of Service: Eluding
Network Intrusion Detection. Secure Networks, Inc., Janvier 1998.
http://lehmann.free.fr/RapportMain/RapportMain.html
Scan de vulnérabilité
http://www.hsc.fr/ressources/outils/idswakeup/
http://www.nessus.org/nessus/
http://en.wikipedia.org/wiki/Vulnerability_scanner
http://sectools.org/web-scanners.html
Outils IDS
http://www.bro-ids.org/
http://www.prelude-ids.com/
http://www.snort.org/
http://nfsen.sourceforge.net/
http://en.wikipedia.org/wiki/Netflow
Partie 2 – Evaluation des IDS
I - Plateforme de test
Simulation d’attaques :
Administration :
• Configuration
• Ajout de règles
• Analyse des alertes
Type d’IDS :
• Signatures/Comportemental
Architecture logicielle :
• Boîte noire/Modulaire
• CIDF
• IDXP
• IDMEF
Performance :
• Prelude IDS
• Snort
• Bro
• NFSen
Partie 3 – Plan du Rapport
Sommaire
Introduction
• Contexte du projet
o Projet technique de 3A
• Définition IDS
o L’art de détecter les activités inappropriées, incorrectes ou anormales sur un
système ou un réseau informatique.
o Etude qui s’oriente vers les NIDS
• On a tendance à protéger les réseaux des attaques provenant de l’extérieur, les systèmes de
protection sont placés généralement en bordure de réseau.
• Limitation des Firewalls
o Incapables de vérifier le contenu des paquets
o N’ont pas une vue globale du réseau, analysent le trafic en un point précis du réseau.
Les différents types d’IDS
• HIDS
o Application qui contrôle l’activité du système (Surveillance des ressources, fichiers,
logs…)
o Présence détectable (non furtif), une sonde par machine.
• NIDS
o Sonde réseau qui analyse le trafic réseau (volume et contenu des paquets)
o Furtivité, vision globale du système (surveille plusieurs machines)
• IPS
o Non furtif, réponse à une attaque
Modèle CIDF
IDXP
• Standard qui fournit un moyen de communication entre éléments d’un IDS (communication).
Permet une interopérabilité entre IDS, se base sur IDMEF.
IDMEF
Les NIDS
Ecoute du réseau
• Boitiers TAP
• Port mirroring
• Positionnement des sondes
Méthodes de détection
• Signature
o Pattern matching
o Analyse des protocoles (respect des RFC)
• Comportemental
o Probabiliste (modèles statistiques)
o Statistiques (réseaux bayésiens)
o Systèmes experts et datamining, réseaux de neurones, immunologie, graphes.
Limitations
I - Méthodologie
I.1 – Environnement
• Schéma
• Snort
• Bro
• Prelude
• (NFSen)
• Nessus
• NMAP
• Nikto, Whisker
• (IDSWakeup)
II - Résultats
Conclusion
Bibliographie
Annexes
Partie 3 – Plan de la présentation Orale
Slide 1 : Sommaire
Slide 2 : Introduction
• Contexte du projet
o Projet technique de 3A
• Définition IDS
o L’art de détecter les activités inappropriées, incorrectes ou anormales sur un
système ou un réseau informatique.
o Etude qui s’oriente vers les NIDS
Slide 3 : Systèmes de détection d’intrusions réseau : Etat de l’art / Pourquoi les IDS ?
Slide 4 : Systèmes de détection d’intrusions réseau : Etat de l’art / Le début des IDS
• On a tendance à protéger les réseaux des attaques provenant de l’extérieur, les systèmes de
protection sont placés généralement en bordure de réseau.
• Limitation des Firewalls
o Incapables de vérifier le contenu des paquets
o N’ont pas une vue globale du réseau, analysent le trafic en un point précis du réseau.
Slide 5 : Systèmes de détection d’intrusions réseau : Etat de l’art / Les différents types d’IDS
• HIDS
o Application qui contrôle l’activité du système (Surveillance des ressources, fichiers,
logs…)
o Présence détectable (non furtif), une sonde par machine.
• NIDS
o Sonde réseau qui analyse le trafic réseau (volume et contenu des paquets)
o Furtivité, vision globale du système (surveille plusieurs machines)
• IPS
o Non furtif, réponse à une attaque
Slide 6 : Systèmes de détection d’intrusions réseau : Etat de l’art / Standardisation
• Common Intrusion Detection Framework : Décrit les différents composants d’un IDS
• IDXP : Standard qui fournit un moyen de communication entre éléments d’un IDS
(communication). Permet une interopérabilité entre IDS, se base sur IDMEF.
• IDMEF : Standard qui permet la normalisation des messages générés par un IDS.
Méthodes de détection
• Signature
o Pattern matching
o Analyse des protocoles (respect des RFC)
• Comportementale
o Probabiliste (modèles statistiques)
o Statistiques (réseaux bayésiens)
o Systèmes experts et datamining, réseaux de neurones, immunologie, graphes.
Limitations
Environnement de teste
• Snort
• Bro
• Prelude
• (NFSen)
• Nessus
• NMAP
• Nikto, Whisker
• (IDSWakeup)
Slide 11 : Evaluation des NIDS / Critères I
Administration :
• Configuration
• Ajout de règles
• Analyse des alertes
Type d’IDS :
• Signatures/Comportemental
Architecture logicielle :
• Boîte noire/Modulaire
• CIDF
• IDXP
• IDMEF
Performance :
Options:
-Cgidirs+ Scan these CGI dirs: 'none', 'all', or a value like
'/cgi/'
-cookies print cookies found
-evasion+ ids evasion technique (1-9, see below)
-findonly find http(s) ports only, don't perform a full scan
-Format save file (-o) Format: htm, csv or txt (assumed)
-generic force full (generic) scan
-host+ target host
-id+ host authentication to use, format is
userid:password
-mutate+ mutate checks (see below)
-nolookup skip name lookup
-output+ write output to this file
-port+ port to use (default 80)
-root+ prepend root value to all requests, format is
/directory
-ssl force ssl mode on port
-timeout timeout (default 10 seconds)
-useproxy use the proxy defined in config.txt
-Version print plugin and database versions
-vhost+ virtual host (for Host header)
+ requires a value
Mutation Techniques:
1 Test all files with all root directories
2 Guess for password file names
3 Enumerate user names via Apache (/~user type requests)
4 Enumerate user names via cgiwrap (/cgi-bin/cgiwrap/~user type
requests)
Résultat Nikto
Test avec technique d’évasion d’IDS
---------------------------------------------------------------------------
- Nikto 1.35/1.35 - www.cirt.net
+ Target IP: 172.16.60.132
+ Target Hostname: 172.16.60.132
+ Target Port: 80
+ Using IDS Evasion: Random URI encoding (non-UTF8)
+ Start Time: Mon Feb 4 03:31:34 2008
---------------------------------------------------------------------------
- Scan is dependent on "Server" string which can be faked, use -g to override
+ Server: Apache/2.2.3 (Debian) mod_python/3.2.10 Python/2.4.4 PHP/5.2.0-8+etch10
mod_perl/2.0.2 Perl/v5.8.8
+ No CGI Directories found (use '-C all' to force check all possible dirs)
+ mod_perl/2.0.2 appears to be outdated (current is at least 5.8)
+ / - Redirects to http://172.16.60.132/apache2-default/ , Default EMC Cellera manager server
is running.
+ / - Redirects to http://172.16.60.132/apache2-default/ , Appears to be a default Apache
Tomcat install.
+ / - Redirects to http://172.16.60.132/apache2-default/ , Appears to be a default Apache
Tomcat install.
+ / - Redirects to http://172.16.60.132/apache2-default/ , Appears to be a default Apache
install.
+ / - Redirects to http://172.16.60.132/apache2-default/ , Appears to be a default Apache
install.
+ / - Redirects to http://172.16.60.132/apache2-default/ , Default Jrun 2 server running.
+ / - Redirects to http://172.16.60.132/apache2-default/ , Default Sybase Jaguar CTS server
running.
+ / - Redirects to http://172.16.60.132/apache2-default/ , Default Jrun 3 server running.
+ / - Redirects to http://172.16.60.132/apache2-default/ , Default Lantronix printer found.
+ /?M=A - Redirects to http://172.16.60.132/apache2-default/?%4d=A , Apache allows directory
listings by requesting. Upgrade Apache or disable directory indexing.
+ /?S=A - Redirects to http://172.16.60.132/apache2-default/?S=A , Apache allows directory
listings by requesting. Upgrade Apache or disable directory indexing.
+ /?sql_debug=1 - Redirects to http://172.16.60.132/apache2-default/?%73%71l_de%62u%67%3d1 ,
The PHP-Nuke install may allow attackers to enable debug mode and disclose sensitive
information by adding sql_debug=1 to the query string.
+ / - Redirects to http://172.16.60.132/apache2-default/ , PeopleSoft appears to be running.
+ / - Redirects to http://172.16.60.132/apache2-default/ , Samba-swat web server. Used to
administer Samba.
+ / - TRACE option appears to allow XSS or credential theft. See
http://www.cgisecurity.com/whitehat-mirror/WhitePaper_screen.pdf for details (TRACE)
+
/m%79p%68%70nuke%2f%6c%69%6e%6b%73%2ep%68%70%3f%6fp%3dMo%73%74%50%6fp%75%6car%26%72at%65%6eum=
[%73crip%74%5d%61%6c%65rt%28d%6fc%75%6d%65%6e%74.c%6foki%65%29;[/%73%63%72i%70t]%26%72%61%74%6
5t%79p%65%3dperce%6e%74 - myphpnuke is vulnerable to Cross Site Scripting (XSS). CA-2000-02.
(GET)
+
%2f%70hpi%6dagevie%77%2e%70%68%70%3f%70%69%63=j%61v%61%73%63ri%70t:a%6c%65%72%74('%56ul%6ee%72
%61bl%65%27%29 - PHP Image View 1.0 is vulnerable to Cross Site Scripting (XSS). CA-2000-02.
(GET)
+ 2037 items checked - 3 item(s) found on remote host(s)
+ End Time: Mon Feb 4 03:31:41 2008 (7 seconds)
---------------------------------------------------------------------------
+ 1 host(s) tested
Nessus Scan Report
Summary
This report gives details on hosts that were tested and issues that were found.Please follow the recommended steps and
procedures to eradicate these threats.
Informational:
An ssh server is running on this port
Nessus ID : 10330
Informational:
Remote SSH version : SSH-2.0-OpenSSH_4.3p2 Debian-9
Nessus ID : 10267
Informational:
1/8
Nessus Scan Report
. 1.99
. 2.0
Nessus ID : 10881
[ return to 172.16.60.132 ]
Warning:
Informational:
RPC program #100024 version 1 'status' is running on this port
Nessus ID : 11111
[ return to 172.16.60.132 ]
Informational:
2/8
Nessus Scan Report
Nessus ID : 11111
[ return to 172.16.60.132 ]
Warning:
Your webserver supports the TRACE and/or TRACK methods. TRACE and TRACK
are HTTP methods which are used to debug web server connections.
It has been shown that servers supporting this method are subject
to cross-site-scripting attacks, dubbed XST for
"Cross-Site-Tracing", when used in conjunction with
various weaknesses in browsers.
If you are using Apache, add the following lines for each virtual
host in your configuration file :
RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]
If you are using Microsoft IIS, use the URLScan tool to deny HTTP TRACE
requests or to permit only the methods needed to meet site requirements
and policy.
If you are using Sun ONE Web Server releases 6.0 SP2 and later, add the
following to the default object section in obj.conf:
<Client method="TRACE">
AuthTrans fn="set-variable"
remove-headers="transfer-encoding"
set-headers="content-length: -1"
error="501"
</Client>
If you are using Sun ONE Web Server releases 6.0 SP2 or below, compile
the NSAPI plugin located at:
3/8
Nessus Scan Report
http://sunsolve.sun.com/pub-cgi/retrieve.pl?doc=fsalert%2F50603
See http://www.whitehatsec.com/press_releases/WH-PR-20030120.pdf
http://archives.neohapsis.com/archives/vulnwatch/2003-q1/0035.html
http://sunsolve.sun.com/pub-cgi/retrieve.pl?doc=fsalert%2F50603
http://www.kb.cert.org/vuls/id/867593
Warning:
Your webserver supports the TRACE and/or TRACK methods. TRACE and TRACK
are HTTP methods which are used to debug web server connections.
It has been shown that servers supporting this method are subject
to cross-site-scripting attacks, dubbed XST for
"Cross-Site-Tracing", when used in conjunction with
various weaknesses in browsers.
If you are using Apache, add the following lines for each virtual
host in your configuration file :
RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]
If you are using Microsoft IIS, use the URLScan tool to deny HTTP TRACE
requests or to permit only the methods needed to meet site requirements
4/8
Nessus Scan Report
and policy.
If you are using Sun ONE Web Server releases 6.0 SP2 and later, add the
following to the default object section in obj.conf:
<Client method="TRACE">
AuthTrans fn="set-variable"
remove-headers="transfer-encoding"
set-headers="content-length: -1"
error="501"
</Client>
If you are using Sun ONE Web Server releases 6.0 SP2 or below, compile
the NSAPI plugin located at:
http://sunsolve.sun.com/pub-cgi/retrieve.pl?doc=fsalert%2F50603
See http://www.whitehatsec.com/press_releases/WH-PR-20030120.pdf
http://archives.neohapsis.com/archives/vulnwatch/2003-q1/0035.html
http://sunsolve.sun.com/pub-cgi/retrieve.pl?doc=fsalert%2F50603
http://www.kb.cert.org/vuls/id/867593
Informational:
5/8
Nessus Scan Report
RPC program #100000 version 2 'portmapper' (portmap sunrpc rpcbind) is running on this port
Nessus ID : 11111
[ return to 172.16.60.132 ]
Vulnerability:
This means that an attacker may execute arbitrary code thanks to a bug in
this daemon.
Only older versions of statd under Linux are affected by this problem.
*** Nessus reports this vulnerability using only information that was gathered.
*** Use caution when testing without safe checks enabled.
The statd RPC service is running. This service has a long history of
security holes, so you should really know what you are doing if you decide
to let it run.
Nessus ID : 11111
[ return to 172.16.60.132 ]
172.16.60.132 - general/icmp
Warning:
The remote host answers to an ICMP timestamp request. This allows an attacker
to know the date which is set on your machine.
6/8
Nessus Scan Report
This may help him to defeat all your time based authentication protocols.
Solution : filter out the ICMP timestamp requests (13), and the outgoing ICMP
timestamp replies (14).
172.16.60.132 - general/udp
Informational:
For your information, here is the traceroute to 172.16.60.132 :
172.16.60.1
172.16.60.132
Nessus ID : 10287
[ return to 172.16.60.132 ]
172.16.60.132 - general/tcp
Vulnerability:
To obtain a complete plugin feed, you need to register your Nessus scanner
at http://www.nessus.org/register/ then run nessus-update-plugins to get
the full list of Nessus plugins.
Nessus ID : 9999
Informational:
Information about this scan :
7/8
Nessus Scan Report
Nessus ID : 19506
[ return to 172.16.60.132 ]
8/8