Ces derniers systèmes de détections reposent sur le fait que les anomalies dans le trafic réseau se traduisent par un changement abrupt dans certaines caractéristiques du réseau. On peut ainsi utiliser un test sur les séries temporelles correspondant à chacun des flux rencontrés. Cette manière de procéder permet d’identifier quelles sont les entités qui sont impliquées dans l’anomalie. En plus du problème en lui même de la détection d’intrusion, un défi supplémentaire vient s’ajouter : les réseaux font face à une croissance exponentielle de leur trafic. Il est ainsi de plus en plus difficile, notamment en temps de calcul, d’analyser chacun des flux individuels. Des méthodes de réduction de la taille des données deviennent donc indispensables.
Anomalies réseau : exemple de l’attaque par déni de service
Un système de détection d’anomalies peut faire face à de nombreux types d’attaques. Nous nous intéressons, dans un premier temps, aux attaques par déni de service. L’attaque par déni de service par engorgement de paquets SYN (SYN flooding) exploite les mécanismes utilisés par le protocole TCP. Le protocole TCP est un protocole de transport de paquets de données permettant d’obtenir une liaison de données fiable entre deux machines. Lorsque deux machines, qu’on appellera Alice et Bob dans cet exemple, veulent effectuer un échange de données à l’aide du protocole TCP, elles doivent établir une connexion. Celle-ci s’effectue en trois étapes, « poignée de main en trois temps » (ou three-way handshake). Schématiquement, le processus se déroule ainsi :
1. Alice envoie un paquet de type SYN à Bob contenant (entre autres) un numéro de séquence aléatoire ;
2. Bob reçoit ce paquet, enregistre en mémoire une trace de cette connexion en la marquant comme étant « semi-ouverte » et envoie un paquet SYN-ACK d’acquittement à Alice ;
3. Alice reçoit ce paquet SYN-ACK et émet vers Bob un paquet d’acquittement ACK ; les deux hôtes ont ainsi chacun reçu un acquittement de la part de l’autre machine, la communication est établie.
Une attaque de type SYN flooding a pour but d’interrompre le fonctionnement normal d’une machine, celle de Bob, dans ce cas. Une attaquante, qu’on appellera Sasha, va envoyer un grand nombre de paquets SYN contenant des numéros de séquence différents à Bob . Bob, suivant la procédure habituelle, enregistre autant de connexions semi-ouvertes que de paquets SYN reçus et envoie les paquets SYN ACK correspondants à Sasha qui en revanche ne renvoie pas de paquet ACK. La capacité mémoire de la machine de Bob est limitée, soit de manière physique, soit en nombre de connexions qui peuvent être ouvertes (celle-ci est fixée, et est de l’ordre du millier dans les systèmes d’exploitations récents) ; ainsi lorsque le nombre de connexions semi-ouvertes excède cette capacité, la machine de Bob ne fonctionne plus correctement et Alice ne peut plus établir de connexion avec Bob.
Nous avons décrit le principe de base d’une attaque par SYN flooding, il existe de nombreux mécanismes de protection contre ces attaques afin de pouvoir garder un niveau de service acceptable, notamment au niveau du système d’exploitation (temps d’expiration des connexions, limitation du nombre de connexions par hôtes, etc., voir (Eddy, 2007)), mais il existe de nombreuses variantes qui rendent nécessaires des mécanismes de prévention. L’attaquant peut ainsi, aisément, falsifier les entêtes des paquets SYN envoyés en modifiant les adresses IP source ; les vraies machines possédant ces IP n’étant pas accessibles, le processus d’initialisation de connexions ne peut se terminer. L’attaque peut aussi se faire de manière distribuée, et l’on parle de déni de service distribué (ou DDoS) : Sasha met à contribution un très grand nombre de machines qu’elle contrôle (soit par collusion avec d’autres attaquants, soit parce qu’elle dispose d’un réseau de machines – a priori innocentes – mais qu’elle a infectées) : chacune d’elle initie de manière parallèle une connexion vers la machine de Bob sans renvoyer de paquets d’acquittement ACK. Le nombre de paquets SYN envoyés par chaque machine peut rester relativement faible, ce qui rend ces attaques individuelles difficilement détectables, mais le grand nombre de machine rend cette attaque distribuée très dangereuse pour la machine de Bob.
L’attaque par engorgement de paquets UDP (UDP flooding) est un autre type d’attaque fonctionnant sur un principe similaire à l’attaque précédemment décrite. Elle fait intervenir le protocole UDP et peut potentiellement paralyser un réseau, en plus des machines de celui-ci. En temps normal, lorsqu’une machine s’attend à recevoir des paquets UDP (par exemple pour un flux multimédia audio ou vidéo), un port UDP d’entrée est ouvert pour y recevoir le flux de données sollicité. Mais lorsqu’une machine reçoit un paquet sur un port non ouvert, celle-ci renvoie un paquet de type ICMP Destination Unreachable. Lors d’une attaque par UDP flooding, l’attaquant envoie une grande quantité de paquets UDP vers de nombreux ports d’une machine du réseau cible. Ce trafic n’étant pas sollicité, la machine cible renvoie des paquets ICMP. La connexion réseau de la machine devient ainsi indisponible à cause du grand nombre de paquets reçus et envoyés ; par ailleurs, le protocole UDP ne disposant pas de mécanisme de régulation de trafic comme TCP, les liens reliant le réseau au reste du monde peuvent être saturés, dégradant le service pour ses utilisateurs comme pour des machines extérieures voulant accéder à des services de ce réseau.
De nombreux autres types d’attaques ou d’anomalies réseau existent : balayage de ports (port scanning) ou d’adresses réseau (network scanning), flash crowds (Lakhina et al., 2005) ; chacune de ces attaques est caractérisée par une augmentation d’une quantité d’intérêt.
Caractérisation d’une attaque Nous avons jusqu’à présent utilisé le terme d’«anomalie » de manière générique pour désigner un comportement anormal des données. Mais dans la littérature réseau, on peut distinguer deux types d’événements suspects à détecter. Le premier type est l’anomalie proprement dite, dont la détection correspond en fait à de la détection de valeurs aberrantes. Dans ce cadre, on définit un comportement « normal » du trafic, et l’anomalie correspond à quelques points de données qui ne semblent pas distribués de la même manière que le trafic normal. Par exemple, on peut calculer une sphère (en utilisant la distance euclidienne ou de Mahalanobis, par exemple) contenant les points correspondant au comportement normal ; les anomalies se situent alors hors de cette sphère (Shyu et al., 2003). Le deuxième type correspond à une rupture qui est caractérisée par un changement de la distribution des observations après l’instant de rupture. C’est le type d’événements que l’on veut détecter dans cette thèse.
1 Introduction |