wiki:StreamMining

Le Stream Mining

Il s'agit d'un ensemble de techniques visant à analyser un flux de données avec les contraintes suivantes :

  • en temps réel ;
  • sans stocker l'intégralité du flux dans la mémoire.

Dans notre cas, nous voulons analyser un flux de paquets IP sur un lien à très haut débit (100Gb/s) pour détecter des menaces ou classifier les services utilisés. Le temps réel est donc nécessaire pour pouvoir réagir immédiatement (bloquer certains paquets, en rendre d'autres prioritaires...). Étant donné le débit des données manipulées, nous ne pouvons pas stocker l'intégralité du flux : 100Gb/s stockés pendant 5 minutes nécessiteraient un disque de 30Tb/s, et l'accès au disque serait beaucoup trop lent.

Les techniques de Stream Mining sont particulièrement utilisées pour faire du comptage. Ici, en comptant certains types de requêtes, nous pourrions par exemple détecter des tentatives d'attaques par surcharge depuis une adresse IP donnée.

Comme nous ne stockons pas toutes les données, nous ne pouvons pas faire un comptage exact. Nous pouvons cependant donner une réponse approchée qui peut être :

  • déterministe : on sait que l'estimation se trouve à une distance inférieure àεde la valeur réelle
  • probabiliste : on a une très faible probabilitéδque l'estimation se trouve à une distance supérieure àεde la valeur réelle.

La conséquence deεdans notre cas est nulle, car nous devrons fixer un seuil à partir duquel nous détectons une menace. Il suffit donc de relever ce seuil pour éviter les fausses alertes. En revancheδest une probabilité d'erreur. C'est donc une probabilité de détecter une attaque alors qu'il n'y en avait pas. Il faudra donc le garder le plus petit possible, et étudier les conséquences d'une fausse alerte.

Le Stream Mining permet deux types de détection [BCC07] :

  • la détection des « heavy hitters » : les sources qui génèrent beaucoup plus de trafic d'un certain type que les autres : c'est la méthode utilisée pour détecter le SYN flooding ;
  • la détection des « heavy changes » : les sources qui génèrent à un moment donné beaucoup plus de trafic d'un certain type que quelques instants auparavant.

Sources

[BCC07]Tian Bu, Jin Cao, Aiyou Chen, Patrick P. C. Lee. A Fast and Compact Method for Unveiling Significant Patterns in High Speed Networks. IEEE. 2007.
[CHE05]Pascal CHEUNG. Une introduction aux techniques de stream mining. France Telecom. [En ligne] Disponible sur  http://trac.benoute.fr/netfpga/raw-attachment/wiki/CMS/t_12janvier05_c.pdf (consulté le 30 novembre 2009), 12 janvier 2005.