IMA5 2018/2019 P19 : Différence entre versions

De Wiki de Projets IMA
(Cahier des charges)
(Objectifs)
Ligne 17 : Ligne 17 :
 
*Récupérer les différentes informations des objets connectés sur un FPGA
 
*Récupérer les différentes informations des objets connectés sur un FPGA
 
*Agréger ces données pour en sortir des modèles
 
*Agréger ces données pour en sortir des modèles
*A partir de ces modèles, être capable de détecter une possible attaque
+
*A partir de ces modèles, être capable de détecter de possibles attaques
 +
*Proposer un système de dashboard / alerting permettant de visualiser l'état du réseau
  
 
==Cahier des charges==
 
==Cahier des charges==

Version du 11 novembre 2018 à 15:17


Détection de menaces IOT sur FPGA

Présentation générale

De nos jours, l'informatique s'oriente vers une philosophie microservices. C'est-à-dire que l'on conçoit une multitude de tâches simples, qui permettent de réaliser un système plus complexe une fois rassemblées. L'IOT (internet des objets) est conçu sur ce principe. Par exemple, dans le cadre de la domotique, une maison est "connectée" grâce à une base sur laquelle viennent s'appairer plusieurs objets (capteurs, actionneurs, indicateurs, ...), constituant alors un réseau complet. Le problème est que par soucis de praticité, la grande majorité des objets IOT fonctionnent sur batterie, ce sont donc de très petit système incapables de se défendre en cas d'attaques.

Description

Ce projet a pour but de proposer un système permettant de détecter de possibles menaces sur un réseau IOT en temps réel.

Objectifs

  • Lister les attaques possibles sur un réseau IOT
  • Mettre en place un réseau IOT permettant d'étudier certaines attaques
  • Récupérer les différentes informations des objets connectés sur un FPGA
  • Agréger ces données pour en sortir des modèles
  • A partir de ces modèles, être capable de détecter de possibles attaques
  • Proposer un système de dashboard / alerting permettant de visualiser l'état du réseau

Cahier des charges

Le système sera composé d'une base (sur laquelle les objets seront connectés) constituée d'un FPGA couplé à un processeur fonctionnant avec linux. Ce système pourra détecter des menaces réseaux (déni de service, homme du milieu, ...) ou des menaces physiques (brouillage, diminution de la batterie, ...).

  • Il faudra dans un premier temps recenser les différentes attaques possibles sur un réseau IOT puis déterminer celles qui pourront être détectées (par exemple le eavesdropping - consistant à juste écouter le traffic - ne sera pas détectable).
  • Ensuite, un réseau IOT simple sera mis en place, ce dernier sera constitué de la base (décrite ci-dessus) et de quelques nœuds communicant avec cette base. Deux cas seront à prendre en compte, le premier est une communication direct entre un nœud et la base, le second est une communication d'un nœud vers un autre noeud qui relayera vers la base. Le protocole de communication sera choisi parmi ceux qui sont les plus utilisés en IOT (BLE, Z-Wave et ZigBee pour les courtes distances ; Lora et SigFox pour les distances plus longues).
  • Une fois le réseau mis en place, il faudra récolter certaines informations concernant les nœuds et les agréger sur la base dans le but de définir les comportements normaux des nœuds.
  • Après avoir définit ces comportements normaux, les attaques retenues dans le point 2 seront testées sur le réseau afin de voir leur(s) impacte(s) sur les données récoltées et d'en déduire des seuils permettant de basculer entre l'état normal et l'état anormal.
  • Enfin, un système de dashboard sera proposé pour visualiser l'état du réseau IOT et émettre des alertes.

Réalisation du Projet

Liste non exhaustive des attaques possibles sur un réseau IOT

Couche Applicative

La couche applicative permet d'améliorer l'expérience utilisateur, elle induit aussi de possibles attaques :

  • Injection de code par l'exploitation de bug : le plus souvent réaliser avec un "buffer overflow" qui va corrompre la mémoire vive et permettre d'injecter du code exécutable.
  • Autorisation : beaucoup d'objets IOT ont la configuration par défaut (par exemple admin:admin comme logins) ce qui permet d'avoir un accès direct au shell de l'objet en question.

Couche Réseau

La couche réseau constitue les différents protocoles et trames utilisés par les objets pour communiquer, c'est la couche ou l'on retrouve le plus d'attaques possibles :

  • Déni de service (DOS) : envoyer un nombre important de requêtes pour submerger le trafic.
  • Homme du milieu (MITM) : intercepter le trafic venant d'un objet puis le transmettre à la base (ou inversement), permettant d'écouter ou de modifier le trafic de manière incognito.
  • Sybil attack (multiplication d'identités) : créer de fausses identités sur le réseau afin de le corrompre.
  • Sinkhole / Blackhole : intercepter tout le trafic et le router ailleurs (sinkhole) ou ne pas le router (blackhole), nécessite de se faire passer pour la base ou un relayeur.
  • Sniffing : écouter le trafic pour l'analyser, permet ensuite de faire du DOS ou MITM.
  • Hello spamming : se faire passer pour un nouvel objet et envoyer un nombre important de requête d'appairage, permet de faire du DOS ou d'obtenir la connexion au réseau.

Couche de Perception

La couche de perception permet aux objets d’émettre et de recevoir le trafic, rendant les objets vulnérables à plusieurs attaques :

  • Eavesdropping : écouter le trafic.
  • Brouillage RF : submerger les bandes de fréquences pour noyer les communications.
  • Spoofing : se faire passer pour un nœud valide.
  • Bloquer la mise en veille : envoyer des signaux de réveil de manière répétée afin de sur-consommer la batterie des objets.

Couche Physique

Enfin la couche physique, constituée du matériel à proprement parlé, ajoute une attaque à la liste :

  • Ajout d'un objet malicieux

Infrastructure d'un réseau IOT

Documents Rendus