Thèse soutenue

Sécurisation matérielle de la compilation à la volée des machines virtuelles langage

FR  |  
EN
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

Résumé

FR  |  
EN

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.