IMA3/IMA4 2020/2022 P6 : Différence entre versions

De Wiki de Projets IMA
(Avancé du projet)
(Partie Machine learning)
Ligne 34 : Ligne 34 :
 
==Partie Machine learning ==
 
==Partie Machine learning ==
  
Un des critères pouvant nous permettre de déterminer si un utilisateur est suspect ou non est si nous le voyons souvent sur le réseau ou non. Un utlisateur que nous voyons tous les jours et émettant des paquets tous les jours n'est pas suspect contrairement à un utilisateur émettant un nombres très important de paquets lors de sa première connexion.
+
  Notre projet consiste à surveiller le réseau et les utilisateurs de ce réseau. La question qui se pose est alors la suivante : comment surveiller et analyser les milliers de données qui transitent sur ce réseau tous les jours ? Comment reconnaître un comportement malveillant ? C'est alors là que le machine learning devient intéressant. En effet,la détection d'un comportement malveillant revient à chercher une aiguille dans une botte de foin. Mais les algorithmes de Machine Learning permettent de traiter efficacement d'immenses quantités de données.
  
 
==Avancé du projet==
 
==Avancé du projet==

Version du 19 décembre 2021 à 19:02

Présentation

Contexte

De nos jours, de plus en plus d’appareils électroniques ont besoin d’une connexion internet pour fonctionner. En outre, la majeure partie de nos données sont conservées sur le cloud et transitent par le biais d’internet. Il est donc nécessaire pour des grandes entreprises ou même des particuliers de pouvoir sécuriser ces données et ces appareils. Le réseau doit être protégé de toutes attaques malveillantes. Une manière de sécuriser le réseau est de détecter qui peut être un utilisateur malveillant, c'est que nous allons faire dans ce projet.

Description

Pour identifier les utilisateurs suspects voir malveillant, nous allons écouter le réseau et au travers des différents paquets échangés essayer de détecter les tentatives de connexions suspectes. La récupération des données du paquet suspect nous permet d'identifier la machine et permettrait d'isoler ou de bannir cette utilisateur du réseau mais ce n'est pas dans le cadre du projet. Pour écouter le réseau nous utilisons Wireshark, l'écoute génère un fichier avec l'extension .pcap que nous allons traiter en Python. Le fichier est .pcap est la liste des paquets écoutés. Avec python, nous allons analyser ces listes de paquets avec TensorFlow un outil open source d'apprentissage automatique et la bibliothèque Keras permettant d'interagir avec les algorithmes de langages d'apprentissage profond. L'objectif est d'analyser les différents paquets pour en identifier les comportements suspects. Cependant, nous devons définir ce qu'est un comportement suspect en analysant les différents protocoles wifi.

Réalisation du projet

Partie réseau

En ce qui concerne, la partie réseau nous devons récupérer un fichier .pcap à partir de commandes Wireshark pour ensuite l'analyser avec les différents outils python. Pour utiliser Wireshark dans un terminal nous utilisons Dumpcap.

Concernant l'analyse du fichier pcap (donc des paquets utilisés), nous pourrons utiliser le logiciel scapy qui va nous permettre de récupérer les données utiles de chaque paquet pour notre surveillance.

Liste des commandes utilisées:
-f
Permet de capturer seulement certain types de paquets. Par exemple -f arp permet de capturer seulement les paquets ARP
-I
Met la carte en mode routeur et nous permet de capturer tous les paquets 802.11 circulant sur le réseau
-P
Permet d'obtenir un fichier d'extension pcap à la place d'un fichier pcapng.

En analysant les différents trames Wifi, nous serons capable de récupérer l'adresse de MAC la machine émettant le paquet, l'adresse mac de la balise relayant ce paquet et l'adresse mac de la machine devant recevoir ce paquet.

Partie Machine learning

 Notre projet consiste à surveiller le réseau et les utilisateurs de ce réseau. La question qui se pose est alors la suivante : comment surveiller et analyser les milliers de données qui transitent sur ce réseau tous les jours ? Comment reconnaître un comportement malveillant ? C'est alors là que le machine learning devient intéressant. En effet,la détection d'un comportement malveillant revient à chercher une aiguille dans une botte de foin. Mais les algorithmes de Machine Learning permettent de traiter efficacement d'immenses quantités de données.

Avancé du projet

Séance 1

Lors de cette séance nous avons du redéfinir les objectifs de notre projet pour repartir sur de bonnes bases. Les travaux que nous avons fait lors du semestre précédent sont à abandonner. Nous devons comme expliquer précédemment récupérer les paquets avec un fichier .pcap et ensuite les analyser pour trouver les comportements suspects avec un différents outils comme Tensorflow. Nous allons devoir définir ce qui est un comportement suspect et ce qui ne l'est pas. Nous nous sommes répartis les tâches. Théo et Tristan vont travailler sur l'analyse des données en Python et Simon et Valentin vont travailler sur la récupération des données grâce à Wireshark et ses différents fonctionnalités.

Séance 2

Lors de cette séance, nous devons continuer notre formation sur les différents outils pour l'analyse des données et nous devons continuer à améliorer la récupération des données en réfléchissant sur quelles données des vont nous être utiles pour déterminer le comportement des utilisateurs. Valentin et Simon se sont concentrés sur la capture de paquets avec l'utilitaire dumpcap. Ils ont notamment pu capturer des paquets de protocole Wi-Fi.

Séance 3

Le but de cette séance pour Valentin et Simon est de comprendre la structure d'un paquet Wi-Fi afin de déduire certains comportements suspects. Ils continuent aussi leurs recherches sur l'analyse automatique des paquets afin qu'ils soient traités par la suite par l'algorithme de machine learning. Du côté de Tristan et Théo, on se forme au machine learning (suivi des tutoriels de base de tri d'image...) et on essaie de voir quelles données traiter et comment les traiter pour réaliser notre projet.

Séance 4

Nous avons trouvé plusieurs bonnes documentations sur le Net Monitoring par Machine Learning (ou même Deep Learning). Nous essayons de mettre en place les techniques apprises, c'est ici que nous rencontrons plusieurs difficultés.Concernant la partie de capture et d'analyse des paquets, nous avons continué nos recherches afin d'obtenir les informations importantes du fichier pcap. Nous nous penchons donc vers l'utilisation de scapy.

Séance 5

Nous continuons nos recherches pour récupérer les informations du fichier pcap. A l'aide de scapy, nous avons réussi à ressortir des données importantes des paquets (addresse de destination, type de paquet,..). Un problème s'oppose à nous : les paquets malformés. Nous devons trouver un moyen d'ignorer ces paquets dans notre analyse afin d'avoir un paquet de données cohérent.

Séance 6

Au vu des données souhaitées par Théo et Tristan, nous passons sur l'utilisation de tshark pour l'analyse des paquets. En effet, tshark va nous permettre d'obtenir des données statistiques sur les discussions entre deux adresses. Nous utiliserons ainsi dumpcap pour la capture et tshark pour l'analyse des données capturées. L'utilisation de scapy devient donc inutile si nous réussissons à extraire les données avec tshark.