IMA5 2019/2020 P20 : Différence entre versions

De Wiki de Projets IMA
(Réalisation du Projet)
Ligne 50 : Ligne 50 :
  
 
==Calendrier prévisionnel==
 
==Calendrier prévisionnel==
 
=Etat de l'art=
 
  
 
=Réalisation du Projet=
 
=Réalisation du Projet=

Version du 17 septembre 2019 à 12:06


Présentation générale

Description

Les objets connectés commencent à se démocratiser dans les habitations (thermostats connectés, caméras connectés, serrures connectées, ...) et dans l'industrie (remontée de données, supervision, ...). Le marché de l'IOT (Internet Of Things) est très concurrentiel et les produits doivent être mis sur le marché rapidement à bas coût. Les problématiques de sécurités sont donc très souvent délaissées. De plus, les faibles performances et les tailles de mémoires limitées empêchent d’implémenter les méthodes classiques du monde Internet (anti-virus, pare-feux, mise à jour, certificats ,...).

Ce projet propose de concevoir et réaliser les briques de base d'une plateforme d'évaluation de la sécurité d'objets connectés :

  • Une partie logicielle permettant la récupération de code embarqué, la décompilation, la compilation, ...
  • Une partie matérielle permettant d'accéder aux données d'un objet (récupération du firmware) et l'injection de signaux ;
  • Une éventuelle base de données permettant de sauvegarder les résultats et les failles trouvées.


Objectifs

Dans un premier temps, l'objectif sera d'être capable de récupérer les données utilisateur d'un objet connecté puis son firmware dans le but d'y trouver de potentielles failles de sécurité. Le code source de l'application mobile associée à l'objet pouvant lui aussi être source de failles de sécurité, sera de même à analyser.

Dans un second temps, le but ultime de ce projet serait d'automatiser une partie de ce processus et de le rendre utilisable pour un grand nombre d'objets connectés divers et variés.

Préparation du projet

Cahier des charges

Choix techniques : matériel et logiciel

Pour la partie matérielle, ce projet nécessite :

  • Un objet connecté à exploiter à définir avec les encadrants
  • Du matériel permettant de connecter un ordinateur à l'objet via USB, JTAG, UART, JPIO, I2C ou SPI à voir selon le matériel déjà disponible

Pour la partie logicielle, de nombreux outils pourraient être utiles à ce projet et seront à investiguer :

  • Ghidra
  • IDA
  • Radare2
  • Binwalk
  • Apktool
  • dex2jar

Liste des tâches à effectuer

Ce projet se découpe en 4 tâches principales :

  • Récupération des données utilisateur de l'objet
  • Récupération du firmware de l'objet et analyse dans le but de trouver des failles de sécurité
  • Analyse du code source de l'application mobile associée à l'objet dans le but de trouver des failles de sécurité
  • Automatisation d'une partie des trois premières tâches

Calendrier prévisionnel

Réalisation du Projet

Récupération du code d'une carte Arduino Uno et analyse

Récupération de données utilisateur d'un objet connecté

Reverse engineering sur le firmware de l'objet connecté

Reverse engineering sur l'application mobile associée à l'objet

Automatisation du processus

Documents Rendus