2018 – Projet n°93 – Studying the 0-day attack detection effectiveness of rule-based generated training sets for supervised machine learning algorithms

Ce projet est réalisé par Shems-Dean Bourass et Baptiste Tabary.

Les Systèmes de Détection d’Intrusion (Intrusion Detection System, IDS) sont des
solutions logicielles déployées pour détecter une tentative de violation de l’intégrité, de la
confidentialité ou de la disponibilité d’un système par une analyse des données échangées
et de l’état du système. Nous nous intéressons ici aux IDS réseaux (Network IDS, NIDS) qui
analysent les trames et paquets échangées sur un réseau et détectent s’ils présentent un
risque pour le système.
Il existe principalement deux classes de NIDS, premièrement ceux reposant sur une
détection des comportements anormaux sur le réseau, ce qui suppose tout d’abord un
apprentissage de ce qu’est un fonctionnement normal du réseau pour ensuite en signaler
toute déviation.
Une autre classe de NIDS repose sur une base de données de signatures
d’attaques connues. Ces signatures décrivent les valeurs contenues dans les différents
champs d’une trame réseau pour une attaque précise (addresses, numéro de port, flag…) et
l’action à effectuer si cette attaque se présente (refuser la trame, bloquer la connexion,
alerter l’administrateur réseau…). Dans ce cas le NIDS cherche une correspondance entre
une trame circulant sur le réseau et une signature. S’il en trouve une, il effectue l’action
décrite par la signature. Ce projet s’intéresse à cette classe de NIDS et en particulier Snort
(https://www.snort.org/), un NIDS open source développé par Cisco.
Ce projet utilise des algorithmes de machine learning supervisé, qui permettent à
partir d'exemples connus de construire un modèle prédictif dont les résultats sont aussi
proches que possibles de valeurs attendues (ici parvenir à dire si une trame réseau est une
attaque ou non).
Le but dans un premier temps est d’entraîner un NIDS (créer des trainings sets) à
partir des signatures Snort c’est à dire fournir à l’algorithme de machine learning des
couples entrée-sortie (trame réseau en entrée, résultat attendu : attaque ou trafic normal en
sortie), puis ensuite étudier son efficacité en terme de détection d’attaques, et en
particulier des attaques jamais rencontrées jusqu’alors (0-days).
Si les résultats précédents sont concluants on peut imaginer faire la comparaison
entre plusieurs algorithmes de machine learning en terme d'efficacité de détection.

Annonce