On appelle IDS (Intrusion Detection System) un mécanisme écoutant le trafic
réseau de manière furtive afin de repérer des activités anormales ou suspectes et
permettant ainsi d'avoir une action de prévention sur les risques d'intrusion.
Il existe deux grandes familles distinctes d’IDS :
- Les N-IDS (Network Based Intrusion Detection System), ils assurent la sécurité au niveau du réseau.
- Les H-IDS (Host Based Intrusion Detection System), ils assurent la sécurité au niveau des hôtes.
Un N-IDS nécessite un matériel dédié et constitue un système capable de contrôler les paquets
circulant sur un ou plusieurs lien(s) réseau dans le but de découvrir si un acte malveillant ou anormal a lieu.
Le N-IDS place une ou plusieurs cartes d’interface réseau du système dédié en mode promiscuité (promiscuous mode), elles sont alors en mode « furtif » afin qu’elles n’aient pas d’adresse IP.
Elles n’ont pas non plus de pile de protocole attachée.
Il est fréquent de trouver plusieurs IDS sur les différentes parties du réseau et en particulier de placer
une sonde à l'extérieur du réseau afin d'étudier les tentatives d'attaques ainsi qu'une sonde
en interne pour analyser les requêtes ayant traversé le pare-feu ou bien menée depuis l'intérieur.
Le H-IDS réside sur un hôte particulier et couvre donc une grande partie des systèmes
d’exploitation tels que Windows, Solaris, Linux, HP-UX, Aix, etc…
Le H-IDS se comporte comme un démon ou un service standard sur un système hôte. Traditionnellement, le H-IDS analyse des informations particulières dans les journaux de logs (syslogs, messages, lastlog, wtmp…) et aussi capture les paquets réseaux entrant/sortant de l’hôte pour y déceler des signaux d’intrusions (Déni de Services, Backdoors, chevaux de troie, tentatives d’accès non autorisés, execution de codes malicieux, attaques par débordement de buffeurs…).
Le trafic réseau est généralement (en tout cas sur Internet) constitué de datagrammes IP.
Un N-IDS est capable de capturer les paquets lorsqu’ils circulent sur les liaisons physiques sur lesquelles
il est connecté. Un N-IDS consiste en une pile TCP/IP qui réassemble
les datagrammes IP et les connexions TCP. Il peut appliquer les techniques suivantes pour reconnaître les intrusions :
- Vérification de la pile protocolaire :
Un nombre d’intrusions, tels que par exemple "Ping-Of-Death" et "TCP Stealth Scanning" ont recours à des violations des protocoles
IP, TCP, UDP, et ICMP dans le but d’attaquer une machine. Une simple vérification protocolaire peut mettre en évidence les paquets invalides et signaler ce type de techniques très usitées.
- Vérification des protocoles applicatifs : nombre d’intrusions utilisent des comportements protocolaires
invalides, comme par exemple "WinNuke", qui utilise des données NetBIOS invalides (ajout de données OOB data).
Dans le but de détecter efficacement ce type d’intrusions, un N-IDS doit ré-implémenter une grande variété de
protocoles applicatifs tels que NetBIOS, TCP/IP, …
Cette technique est rapide (il n'est pas nécessaire de chercher des séquences d’octets sur l’exhaustivité de la base de signatures),
élimine en partie les fausses alertes et s’avère donc plus efficiente.
Par exemple, grâce à l’analyse protocolaire le N-IDS distinguera un événement de type « Back Orifice PING »
(dangerosité basse) d’un événement de type « Back Orifice COMPROMISE » (dangerosité haute).
- Reconnaissance des attaques par "Pattern Matching" :
Cette technique de reconnaissance d’intrusions est la plus ancienne méthode d’analyse des N-IDS et elle est encore très courante.
Il s'agit de l’identification d’une intrusion par le seul examen d’un paquet et la reconnaissance dans une suite d’octets du
paquet d’une séquence caractéristique d’une signature précise. Par exemple, la recherche de la chaîne de caractères
« /cgi-bin/phf », qui indique une tentative d’exploit sur le script CGI appelé « phf ». Cette méthode est
aussi utilisée en complément de filtres sur les adresses IP sources, destination utilisées par les connexions,
les ports sources et/ou destination. On peut tout aussi coupler cette méthode de reconnaissance afin de
l’affiner avec la succession ou la combinaison de flags TCP.
Cette technique est répandue chez les N-IDS de type « Network Grep » basé sur la capture des paquets bruts
sur le lien surveillé, et comparaison via un parser de type « expressions régulières » qui va
tenter de faire correspondre les séquences de la base de signatures octet par octet avec le contenu
du paquet capturé.
L’avantage principal de cette technique tient dans sa facilité de mise à jour et évidemment dans la quantité importante de signatures contenues dans la base du N-IDS. Pourtant il n’a aucune assurance que quantité rime avec qualité. Par exemple, les 8 octets “CE63D1D2 16E713CF” quand ils sont disposés au début des données du protocole UDP indiquent du trafic Back Orifice avec un mot de passe par défaut. Même si 80% des intrusions utilisent le mot de passe configuré par défaut, les autres 20% utilisent des mots de passe personnalisés et ne seront absolument pas reconnus par le N-IDS. Par exemple, si l’on change le mot de passe de en "evade" alors la suite d’octets se transforme en "8E42A52C 0666BC4A", ce qui se traduira automatiquement par une absence de signalisation du N-IDS.
Cette technique entraîne aussi inéluctablement un nombre importants de fausses alertes ou faux positifs.
Il existe encore d’autres méthodes pour détecter et signaler une intrusion comme la reconnaissance des attaques par Pattern Matching Stateful et/ou l’audit de trafic réseaux dangereux ou anormales.
En conclusion, un N-IDS parfait est un système utilisant le meilleur de chacune des techniques citées ci-dessus.
Les principales méthodes utilisées pour signaler et bloquer les intrusions sur les N-IDS sont les suivantes :
- Reconfiguration d’équipement tierces (firewall, ACL sur routeurs) : Ordre envoyé par le N-IDS à un équipement tierce (filtreur de paquets, pare-feu) pour une reconfiguration immédiate dans le but de bloquer un intrus source d’intrusions. Cette reconfiguration est possible par passage des informations détaillant une alerte (en tête(s) de paquet(s)).
- Envoi d’une trap SNMP à un hyperviseur tierce : Envoi de l’alerte (et le détail des informations la constituant) sous format d’un datagramme SNMP à une console tierce comme HP OpenView, Tivoli, Cabletron Spectrum, etc.
- Envoi d’un e-mail à un ou plusieurs utilisateurs : Envoi d’un e-mail à une ou plusieurs boîtes au lettre pour notifier d’une intrusion sérieuse.
- Journalisation (log) de l’attaque : Sauvegarde des détails de l’alerte dans une base de données centrale comme par exemple les informations suivantes: timestamp, @IP de l’intrus, @IP de la cible, protocole utilisé, payload).
- Sauvegarde des paquets suspicieux : Sauvegarde de l’ensemble des paquets réseaux (raw packets) capturés et/ou seul(s) les paquets qui ont déclenchés une alerte.
- Démarrage d’une application : Lancement d'un programme extérieur pour exécuter une action spécifique (envoi d’un message sms, émission d’une alerte auditive…).
- Envoi d’un "ResetKill" : Construction d'un paquet TCP FIN pour forcer la fin d’une connexion (uniquement valable sur des techniques d’intrusions utilisant le protocole de transport TCP).
- Notification visuelle de l’alerte : Affichage de l’alerte dans une ou plusieurs console(s) de management.
Les éditeurs et la presse spécialisée parlent de plus en plus d’IPS (Intrusion Prevention System) en remplacement des IDS « traditionnels »
ou pour s’en distinguer.
L’IPS est un Système de Prévention/Protection contre les intrusions et non plus seulement de reconnaissance et de signalisation des intrusions comme la plupart des IDS le sont.
La principale différence entre un IDS (réseau) et un IPS (réseau) tient principalement en 2 caractéristiques :
- le positionnement en coupure sur le réseau de l’IPS et non plus seulement en écoute sur le réseau pour l’IDS (traditionnellement positionné comme un sniffer sur le réseau).
- la possibilité de bloquer immédiatement les intrusions et ce quel que soit le type de protocole de transport utilisé et sans reconfiguration d’un équipement tierce, ce qui induit que l’IPS est constitué
en natif d’une technique de filtrage de paquets et de moyens de bloquages (drop connection, drop offending packets, block intruder, …).
Article rédigé le 29 janvier 2003 par Cyrille LARRIEU.
|