WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Conception de filtre d'un réseau d'objets connectés par apprentissage profond


par Sandra Rochelle NYABENG MINEME
SUP'PTIC - Ingénieur de sécurité des réseaux et des systemes 2015
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

4. Conception des modèles

4.1. Conception des modèles d'apprentissage profond

La création de nos modèles d'apprentissage profond suit une succession d'étapes. Nous avons suivi les étapes ci-après :

1- Acquisition de données : l'algorithme se nourrissant des données en entrée, c'est une étape importante.

2- Préparation et nettoyage des données : les données recueillies doivent être retouchées avant utilisation.

3- Création du modèle : Nous créons les différentes couches avec le nombre de neurones pour chaque couche et en spécifiant la fonction d'activation.

4- Évaluation : une fois l'algorithme d'apprentissage automatique entraîné sur un premier jeu de données, nous évaluerons sur un deuxième ensemble de données qui sert de test afin de vérifier que le modèle ne fasse pas de « sur apprentissage ».

5- Déploiement : le modèle est déployé en production pour faire des prédictions, et potentiellement utiliser les nouvelles données en entrée pour se ré-entraîner et être amélioré.

Nous aborderons les trois premières étapes dans ce chapitre et les deux autres dans le dernier chapitre.

4.1.1. Acquisition du jeu de données

La première étape de conception de nos modèles consiste en l'acquisition des jeux de données. Il nous fallait obtenir les jeux de données des deux modèles proposés. L'un pour identifier les objets du réseau et l'autre pour déterminer la nature du trafic.

D'une part, nous avons commencé par obtenir un jeu de données afin d'entraîner l'algorithme de réseau de neurones détectant la nature du trafic d'objets connectés, bénins ou malicieux.

Nous avons utilisé le jeu de données d'IoT-23. IoT-23 est un nouvel ensemble de données sur le trafic réseau des objets connectés. Il dispose de 20 captures de logiciels malveillants exécutées sur des appareils connectés et de 3 captures pour le trafic d'appareils connectés bénins.

Il a été publié pour la première fois en janvier 2020, avec des captures allant de 2018 à 2019. Ce trafic réseau a été capturé dans le laboratoire Stratosphère, groupe AIC, FEL, Université CTU, de la République tchèque [32]. Son objectif est de proposer un vaste ensemble de données d'infections de logiciels malveillants réels et étiquetés et de trafic bénin aux chercheurs pour développer des algorithmes d'apprentissage automatique. Cet ensemble de données et ses recherches sont financés par Avast Software [33].

Cet ensemble de données possède deux types d'ensembles de données: Il contient du trafic réseau mixte (malveillant et bénin) et du trafic bénin uniquement. Les flux de trafic bénins et malveillants ont des colonnes pour les étiquettes de description du comportement du réseau. Ces étiquettes sont attribuées suivant le processus suivant:

? Analyse : Le fichier pcap d'origine est analysé manuellement. Les flux suspects sont détectés et les libellés sont attribués dans un tableau de bord d'analyse.

? Étiquetage : Un fichier labels.csv est généré par l'analyste. Ce fichier labels.csv contient un ensemble de règles utilisées par un script python pour ajouter des étiquettes à chaque flux.

? Ajout des étiquettes : Le script python lit les données de chaque flux dans le fichier conn.log (jeu de données non étiqueté) et compare ces données avec les règles trouvées dans le fichier labels.csv. Le script compare chaque flux avec les données du fichier csv et si les données de flux correspondent aux critères d'étiquetage, l'étiquette correspondante est ajoutée.

Nous avons utilisé le jeu de données étiquetés conn.log.labeled. Il s'agit du fichier Zeek conn.log obtenu en exécutant l'analyseur de réseau Zeek sur le fichier pcap d'origine.

Le trafic réseau capturé pour les scénarios bénins a été obtenu en capturant le trafic réseau de trois appareils connectés différents: une lampe LED intelligente Philips HUE, un assistant personnel intelligent pour la maison Amazon Echo et une serrure de porte intelligente Somfy. Il est important de mentionner que ces trois objets connectés sont du matériel réel et non simulé dans le laboratoire.

Figure 21 : Appareil Amazon echo[32]

Figure 22 : Dispositif de verrouillage de porte Somfy[32]

Durant l'entraînement et le test, nous n'avons utilisé que 05 captures. Nous avons utilisé 02 ensembles de données capturées comme trafic bénin et 03 autres ensembles de données capturés majoritairement comme trafic malicieux.

Nous avons utilisé la lampe intelligente Philips HUE et la serrure de porte intelligente Somfy pour l'entraînement et le test.

Sur chaque scénario malveillant, un échantillon de malware spécifique dans un Raspberry Pi a été exécuté et utilisait plusieurs protocoles et effectuait différentes actions.

Le tableau ci-dessous montre le numéro de scénario (ID), le nom de l'ensemble de données, la durée en heure, le nombre de paquet, le nombre de flux d'ID Zeek dans le fichier conn.log (obtenu en exécutant le framework d'analyse de réseau Zeek sur le pcap d'origine file), la taille du fichier pcap d'origine et le nom éventuel de l'échantillon de logiciel malveillant utilisé pour infecter l'appareil ainsi que les protocoles utilisés et leurs quantité.

Tableau 2 : Ensemble du jeu de donnée obtenu grâce à des logiciels malveillants sur des objets connectés

#

Nom du Dataset

Durée

(heure)

Nombre de paquets

Nombre de flux d'ID Zeek

Taille pcap

Nom du logiciel malveillant

Protocole et quantité

1

CTU-IoT-Malware-Capture-34-1

34

233000

23140

121 MB

Mirai

http (12), dns(192), dhcp(2), irc (1641) et non reconnu (21290)

19

CTU-IoT-Malware-Capture-3-1

36

496000

156104

56 MB

Muhstik

dns (1), dhcp(3), irc (6), ssh(5898) et non reconnu (150195)

20

CTU-IoT-Malware-Capture-1-1

112

1686000

1008749

140 MB

Hide and Seek

http (32328), dns(1), dhcp(1) et non reconnu (1005507)

Ensuite pour les scénarios bénins La colonne avec le nom du malware a été modifiée pour spécifier le nom de l'appareil.

Tableau 3 : Ensemble du jeu de donnée du trafic normal et bénin d'objets connectés

#

Nom du jeu de donnée

Durée (heure)

Nombre de paquets

Nombre de flux d'ID Zeek

Taille fichier pcap

Objet

Protocole et quantité

1

CTU-Honeypot-Capture-7-1(somfy-01)

1.4

8276

139

2.094KB

Somfy Door Lock

dns(54), dhcp(15), ssl(1) et non reconnu par zeek(60)

2

CTU-Honeypot-Capture-4-1

24

21000

461

4.594KB

Philips HUE

http(54), dns(191), dhcp(2) et non reconnu (205)

3

CTU-Honeypot-Capture-5-1

5.4

398000

1383

381 MB

Amazon Echo

http(157), dns(521), dhcp(156), ssl(86) et non reconnu (454)

Le jeu de données contient également des étiquettes pour décrire la relation entre les flux liés à des activités malveillantes ou potentiellement malveillantes. Ces étiquettes ont été créées dans le laboratoire Stratosphère en tenant compte de l'analyse des captures de logiciels malveillants. 

Voici une brève explication sur les étiquettes utilisées pour la détection de flux malveillants basée sur l'analyse manuelle du réseau: 

Attaque : cette étiquette indique qu'il y a eu un certain type d'attaque du périphérique infecté vers un autre hôte. Nous qualifions ici d'attaque tout flux qui, en analysant sa charge utile et son comportement, tente de tirer parti d'un service vulnérable. Par exemple, une force brute sur une connexion telnet, une injection de commande dans l'en-tête d'une requête GET, etc.

Bénin: cette étiquette indique qu'aucune activité suspecte ou malveillante n'a été trouvée dans les connexions.

C&C: cette étiquette indique que le périphérique infecté était connecté à un serveur C&C. Cette activité a été détectée dans l'analyse de la capture de malware réseau car les connexions au serveur suspect sont périodiques ou l'appareil infecté télécharge des binaires à partir de celui-ci ou des commandes IRC similaires ou décodées vont et viennent.

DDoS: cette étiquette indique qu'une attaque de déni de service distribué est en cours d'exécution par le périphérique infecté. Ces flux de trafic sont détectés dans le cadre d'une attaque DDoS en raison de la quantité de flux dirigés vers la même adresse IP.

Mirai: cette étiquette indique que les connexions ont les caractéristiques d'un botnet Mirai. Cette étiquette est ajoutée lorsque les flux ont des modèles similaires à ceux des attaques Mirai connues les plus courantes. 

PartOfAHorizontalPortScan: cette étiquette indique que les connexions sont utilisées pour effectuer une analyse horizontale des ports afin de collecter des informations afin de mener d'autres attaques. Pour mettre ces étiquettes, nous nous appuyons sur le modèle dans lequel les connexions partageaient le même port, un nombre similaire d'octets transmis et plusieurs adresses IP de destination différentes.

Il y'a bien plus d'étiquettes dans le jeu de données qu'à mis à disposition le laboratoire mais celles-ci sont celles que nous avons retrouvées dans notre jeu de données.

En ce qui concerne le modèle sur l'identification des objets, un jeu de données a été obtenu en téléchargeant un projet IoT SENTINEL sur la plateforme github. Il s'agit d'un fichier contenant 27 tableaux Excel différents représentant le jeu de données d'un type d'objet différent. Tous ces objets sont simulés grâce à un système prototype dans un laboratoire IoT[16].

Ce jeu de données a été obtenu en implémentant le principe de l'empreinte digitale à partir d'une machine Linux exécutant Kali Linux. Celle-ci émule une interface Wifi sur un point d'accès, de même une interface Ethernet externe est connectée au laptop pour émuler des ports Ethernet typiquement présents dans les points d'accès. Le module de capture de paquets était implémenté en utilisant tcpdump sur les interfaces émulées.

Les paquets capturés et enregistrés étaient envoyés au module chargé des de l'empreinte digitale afin de collecter les attributs dont nous aurons besoin pour l'identification des objets.

Figure 23 : liste des objets connectés utilisés et de leurs technologies de communications correspondantes [16]

La figure ci-dessus présente les objets utilisés dans ce projet. Ainsi que les protocoles de communications utilisés. Nous pouvons voir que le wifi domine largement et que les autres technologies sont très peu utilisées.

Cependant nous avons aussi utilisé le jeu de données fourni par le laboratoire stratosphère car le jeu de données obtenu sur les objets de la figure 24 étaient déjà nettoyés.

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Nous voulons explorer la bonté contrée énorme où tout se tait"   Appolinaire