-
-
-
-
-
-
-
HomeSite map
SoC/Jobs offers/Internships/2015-2016/ALSOC/Plateforme de simulation d'attaque en faute sur une carte ARM Print page

Plateforme de simulation d'attaque en faute sur une carte ARM

 

Contexte et objectifs

Ces dernières années, une multitude d'objets électroniques miniatures ont envahi notre quotidien. Téléphones mobiles, étiquettes RFID ou encore bracelets connectés, ces dispositifs ont pour objectif d'améliorer notre confort. Pour mener à bien leur tâche, ces objets sont susceptibles de stocker ou d'échanger des données personnelles, des données sensibles, convoitées pour leur haute valeur marchande. Leur nature embarquée et miniature les rend manipulables par des utilisateurs malveillants qui cherchent à extraire des informations. Pour atteindre leur objectifs, ces attaquants peuvent injecter des fautes durant l'exécution d'une application par divers moyens (fuzzing, pulse électromagnétique, laser) ou observer l'exécution afin d'en retirer des informations. Ces systèmes doivent se prémunir contre ces attaques. Les protections sont souvent une combinaison de contremesures logicielles et matérielles.

L'étude des attaques permet d'identifier les failles d'un logiciel et de déterminer comment s'en prémunir. Cela requiert des moyens de recherche de vulnérabilités et des moyens de validation de modèles d'attaque pris en compte pour la définition de protection. La simulation permet de répondre à ces deux nécessités. La simulation purement logicielle étant lente, il est préférable de réaliser des exécutions réelles avec simulation d'attaque lors de l'exécution.

Les objectifs du stage sont

  • Mettre en place d’un environnement d’exécution de programmes autour d’une carte ARM avec contrôle externe depuis un PC (sonde JTAG), permettant de charger des programmes et données en mémoire.

  • Mettre en place un environnement depuis le PC pour débugger un programme et injecter des fautes au cours de son exécution (environnement de trace et debug KEIL par exemple [2])

  • Implémenter des modèles d'attaques existants dans la littérature [1][3].

 

Le double but est à la fois de trouver des vulnérabilités du code ou des chemins d'attaques en faute ainsi que de valider des schémas de protection. L'environnement de contrôle de l'exécution devra être capable d'interrompre l'exécution d'un code, de changer le code à exécuter ou des données en mémoire (à la manière d'un debugger).

Une fois la plateforme d'exécution mise en place, le stage étudiera la mise en place de simulation d'attaques à partir de modèles d'attaques en faute. Une étude de cas de recherche de vulnérabilités sur un code exemple ou de reproduction d'attaque de la littérature sera faite.

Pré-requis

Connaissance de la programmation assembleur, programmation C/C++, goût pour le montage de plateforme, connaissance en sécurité et des notions d'attaque bienvenues

Références

[1] montage d’un banc expérimental, caractérisation de modèles de fautes et quelques schémas de contre-mesures: N. Moro : "Sécurisation de programmes assembleur face aux attaques visant les processeurs embarqués", thèse de doctorat de l’Université Pierre et Marie Curie, école doctorale EDITE, nov. 2014, Paris, France.

[2] site commercial KEIL : http://www2.keil.com/mdk5/ulink

[3] différents modèles de fautes : L. Goubet, K. Heydemann, E. Encrenaz, R. De Keulenaer : “Efficient Design and Evaluation of Countermeasures against Fault Attack with Formal Verification”, 14th Smart Card Research and Advanced Application Conference, CARDIS 2015, Bochum, Germany (2015)

Encadrement 

K. Heydemann (karine.heydemann(at)lip6(.)fr),

C. Braunstein (cecile.braunstein(at)lip6(.)fr ),

E. Encrenaz (Emmanuelle.encrenaz(at)lip6(.)fr)


LIP6 LIP6-SoC LIP6 CNRS UPMC