Porteur : Laraba, Abir et Lavinal, Emmanuel
Organisation : IRIT
Année : M2
Mots-clé : IDS, réseau programmable, P4
Nom du projet : Détection d’intrusions dans un réseau programmable
Contexte
L'évolution des réseaux ces dernières années a introduit de nouveaux défis sur le placement (positionnement) et le passage à l'échelle des systèmes de détection d'intrusion (IDS). Notamment en raison de l'augmentation du volume de trafic qu'un IDS doit traiter. Avec le développement des réseaux définis par logiciel (SDN), la flexibilité offerte par le plan de données programmable basé sur le langage P4 [1][2] ouvre de nouvelles possibilités dans la conception de solutions IDS. Il est désormais possible d’implémenter des IDS directement dans le réseau sur des commutateurs programmables, afin d’exploiter les avantages offerts par ces derniers, notamment le traitement des paquets en temps réel.
Objectifs
Le premier objectif de ce projet est de faire une étude de l’état de l’art sur les attaques réseau de type : SYN flooding, ICMP flood, UDP flood, SlowLoris attack, Slow rate/Low rate DDoS attack (LRDDoS). Le deuxième objectif de ce projet est d’implémenter un IDS dans un plan de données programmable en utilisant le langage P4. Cela permet une détection des attaques en temps réel dans le réseau avant d’atteindre les hôtes finaux. L'IDS devra être capable d'une part, de détecter des scénarios d’attaques du type SYN Flooding, ICMP flood, et UDP flood, et d'autre part, de bloquer ces attaques. D’autres scénarios d’attaques pourront être ajoutés en fonction de l’avancement de projet.
Mise en œuvre
Pour ce projet, vous vous baserez sur la plateforme P4Pi [3] qui permet de concevoir et de déployer des programmes écrit en P4 sur une carte Raspberry PI. Une maquette intégrant divers tests de bon fonctionnement et de performance devra être proposée.
Références
[1] P4: Programming Protocol-Independent Packet Processors Pat Bosshart et al. SIGCOMM Comput. Commun. Rev. Vol 44, Num 3, 2014. http://arxiv.org/pdf/1312.1719.pdf
[2] http://p4.org/
[3] http://github.com/p4lang/p4pi/wiki