Attaques et protection des systèes embarqués contraints contre les attaques de flot de contrôle
Auteur / Autrice : | Aurélien Francillon |
Direction : | Claude Castelluccia |
Type : | Thèse de doctorat |
Discipline(s) : | Informatique |
Date : | Soutenance en 2009 |
Etablissement(s) : | Grenoble INPG |
Ecole(s) doctorale(s) : | École doctorale Mathématiques, sciences et technologies de l'information, informatique (Grenoble ; 1995-....) |
Partenaire(s) de recherche : | Laboratoire : Institut national de recherche en informatique et en automatique (France). Centre de recherche de l'université Grenoble Alpes |
Equipe de recherche : Projet Planète (INRIA ; Grenoble) | |
Jury : | Président / Présidente : Andrzej Duda |
Examinateurs / Examinatrices : Levente Buttyán, Éric Filiol | |
Rapporteur / Rapporteuse : Jean-Louis Lanet, Peter Langendörfer |
Résumé
La sécurité des systèmes embarqués très contraints est un domaine qui prend de l’importance car ceux-ci ont tendance à être toujours plus connectés et présents dans de nombreuses applications industrielles aussi bien que dans la vie de tous les jours. Cette thèse étudie les attaques logicielles dans le contexte des systèmes embarqués communicants par exemple de type réseaux de capteurs. Ceux-ci, reposent sur diverses architectures qui possèdent souvent, pour des raisons des coût, des capacités de calcul et de mémoire très réduites. Dans la première partie de cette thèse nous montrons la faisabilité de l’injection de code dans des micro-contrôleurs d’architecture Harvard, ce qui était, jusqu’à présent, souvent considéré comme impossible. Dans la seconde partie nous étudions les protocoles d’attestation de code. Ceux-ci permettent de détecter les équipements compromis dans un réseau de capteurs. Nous présentons plusieurs attaques sur les protocoles d’attestation de code existants. De plus nous proposons une méthode améliorée permettant d’éviter ces attaques. Finalement, dans la dernière partie de cette thèse, nous proposons une modification de l’architecture mémoire d’un micro-contrôleur. Cette modification permet de prévenir les attaques de manipulation du flot de contrôle, tout en restant très simple à implémenter