Amélioration des tests de sécurité dynamiques "Hardware-in-the-Loop" pour les dispositifs embarqués basés sur Linux
Auteur / Autrice : | Paul L. R. Olivier |
Direction : | Aurélien Francillon |
Type : | Thèse de doctorat |
Discipline(s) : | Informatique |
Date : | Soutenance le 22/03/2023 |
Etablissement(s) : | Sorbonne université |
Ecole(s) doctorale(s) : | École doctorale Informatique, télécommunications et électronique de Paris |
Partenaire(s) de recherche : | Laboratoire : Institut EURECOM (Sophia-Antipolis, Alpes-Maritimes) |
Jury : | Président / Présidente : Davide Balzarotti |
Examinateurs / Examinatrices : Marius Muench, Vincent Nicomette, Fabienne Waidelich | |
Rapporteurs / Rapporteuses : Vincent Roca, Guillaume Hiet |
Résumé
Les techniques d'analyse dynamique ont prouvé leur efficacité dans l'évaluation de la sécurité. Il est en revanche nécessaire de pouvoir exécuter le code à analyser et c'est souvent un défi pour les firmware dont la plupart sont profondément intégrés à l’architecture matérielle du système embarqué. L'émulation permet d’exécuter une grande partie du code mais se retrouve rapidement limitée lorsqu’il est nécessaire d'interagir avec des composants spécialisés. Pour cela, l’approche d'émulation partielle, ou hardware-in-the-loop, offre plusieurs avantages: transférer les accès aux matériels qui sont difficiles à émuler correctement et exécuter le firmware à tour de rôle sur les deux entités. Jusqu'à présent, cette approche a été principalement considérée pour les firmware monolithiques, mais moins pour les dispositifs utilisant des systèmes d'exploitation avancés. Dans cette thèse, nous explorons les défis des tests de sécurité pour les processus exécutés dans un environnement émulé où une partie de leur exécution doit être transmise à leur dispositif physique d'origine. Au travers de cette thèse, nous passons d'abord en revue les différentes techniques d'interception des appels système ainsi que leurs objectifs. Nous discutons des défis des différentes manières d'exécuter un processus dans deux noyaux Linux différents. Nous implémentons au travers d’un framework ces transferts pour un processus Linux avec ses appels système et accès mémoire entre son environnement émulé et son environnement d’origine sur le dispositif physique. Afin de surmonter les défis liés à l'utilisation de dispositifs physiques pour ces tests de sécurité, nous présentons également une nouvelle plateforme pour les tests de sécurité hardware-in-the-loop.