Sécurisation matérielle de la compilation à la volée des machines virtuelles langage
Auteur / Autrice : | Quentin Ducasse |
Direction : | Loïc Lagadec |
Type : | Thèse de doctorat |
Discipline(s) : | Informatique |
Date : | Soutenance le 29/03/2024 |
Etablissement(s) : | Brest, École nationale supérieure de techniques avancées Bretagne |
Ecole(s) doctorale(s) : | École doctorale Sciences pour l'ingénieur et le numérique |
Partenaire(s) de recherche : | Laboratoire : Laboratoire en sciences et techniques de l'information, de la communication et de la connaissance - Lab-STICC_ARCAD |
Jury : | Président / Présidente : Ludovic Mé |
Examinateurs / Examinatrices : Gaël Thomas, Zoé Drey, Pascal Cotret, Guillermo Polito | |
Rapporteurs / Rapporteuses : Sébastien Pillement, Laure Gonnord |
Mots clés
Résumé
Les machines virtuelles langage (VM) sont l’environnement d’exécution des langages de haut niveau les plus répandus. Elles permettent une portabilité du code applicatif et la gestion automatique de la mémoire. Leur large diffusion couplée à l’exécution de tâches de bas niveau les rendent intéressantes pour les attaquants. Les solutions purement logicielles entraînent souvent une perte de performance incompatible avec la compilation just-in-time (JIT). Des solutions accélérées matériellement sont ajoutées dans des processeurs commerciaux pour concilier des garanties de sécurité fortes avec la performance. Pour comparer ces solutions, cette thèse s’intéresse au jeu d’instructions RISC-V et à ses capacités d’extension. Nous présentons Gigue, un générateur de binaires similaires au code JIT directement exécutables sur les softcores RISC-V. Il fournit une interface pour des instructions personnalisées et garantit leur exécution. Nous présentons une solution d’isolation de domaine au niveau des instructions ajoutée aux binaires de Gigue et déployée dans un processeur avec des modifications minimales. La solution ajoute un surcoût de performance négligeable tout en garantissant des propriétés fortes sur les domaines. Afin de motiver le déploiement dans des cas d’utilisation réels, nous étendons le compilateur JIT Pharo au jeu d’instructions RISC-V, ainsi que son infrastructure de test.