Résumé du projet
Le projet
Description des objectifs et originalité de la thèse
Le domaine des objets connectés nécessite de produire un large spectre d’architectures de processeurs répondant à différentes contraintes applicatives. Les processeurs de types CISC ou RISC procurent actuellement des niveaux de performance élevés, mais de deux manières différentes. L’efficacité des architectures CISC provient de leur capacité à implémenter des traitements complexes. Elles mettent à disposition du compilateur logiciel un nombre élevé de macro-instructions décodées et exécutées efficacement par l’architecture matérielle. Tout en étant transparent pour l’utilisateur final, le micro-code peut être actualisé par le fabricant pour résoudre d’éventuels bugs et/ou contrer certaines attaques post-fabrication. C’est ce qui a permis à Intel de répondre aux failles de sécurité SPECTRE [3] et MELTDOWN [4]. Les architectures RISC intègrent quant à elles peu d’instructions et sont dépourvues de ce mécanisme de micro-décodage. L’ISA open-source RISC-V [5], dans sa configuration RVI, n’offre au compilateur qu’une cinquantaine d’instructions élémentaires. C’est alors au compilateur d’identifier les bonnes associations d’instructions afin de générer du code efficace. De par son implémentation matérielle, s’il est plus performant globalement, le jeu d’instructions réduit ne supporte pas de modification post-fabrication.
L’originalité de l’étude réalisée dans le projet SECV vient de l’introduction d’une unité de micro-codage au sein d’un cœur RISC apportant de la flexibilité. Ce mécanisme permet le décodage d’instructions spécialisées vers des instructions RISC-V ou encore la transformation d’instructions RISC-V en séquences d’instructions RISC-V. Il est alors possible d’altérer dynamiquement le comportement de la micro-architecture sans remanier ni le logiciel, ni l’architecture. Dans un contexte de sécurisation d’une architecture contre des menaces, cette modification contrôlée du fonctionnement de l’architecture est un atout pour permettre, par exemple, le support du polymorphisme de code, ou encore l’ajout du monitoring pour de la détection d’anomalies. C’est l’objet du projet
Description des principaux verrous et techniques envisagées
Ce projet propose de travailler sur un cœur de processeur open-source, sécurisé et haute-performance. Le principal verrou scientifique est lié à l’identification des modèles de menaces et des contre-mesures applicables à partir de l’unité de micro-décodage. Nous envisageons d’examiner 6 schémas spécifiques :
- Introduire des vérifications des accès mémoire pour détecter les vulnérabilités logicielles.
- Rendre aléatoire tout ou une partie des instructions pour contrecarrer l’injection de code malveillant.
- Injecter des micro-opérations fictives afin de masquer temporairement l’exécution du programme.
- Attraper des instructions spécifiques pour effectuer une instrumentation.
- Actualiser le processus de décodage pour procurer un nouveau mécanisme de protection.
- Attester que le code s’exécute en isolation tout en garantissant la confidentialité des données.
Ces travaux mèneront assurément à des évolutions de l’architecture proposée dans [2], base de départ de ce travail. Dans le projet
Approche méthodologique et critères de qualité des résultats obtenus
L’objectif principal est de cibler des attaques logicielles connues au niveau micro-architectural, mais la capacité d’adaptation du système vise également à traiter des attaques futures, et les attaques physiques par canaux auxiliaires, sans nécessiter de modifications profondes de l’architecture. Ainsi, dans un premier temps, les travaux débuteront par un état de l’art relatifs aux modèles de menaces pour lesquels des contre-mesures logicielles sont envisageables incluant les solutions matérielles dont le comportement pourrait être émulé logiciellement.
Les résultats de cette phase prospective donneront lieu à la formalisation des modèles de menaces et des exigences de sécurité. L’ensemble de ces scénarios permettra de dériver différentes architectures de micro-décodeurs en fonction des contextes. Les décisions de conception micro-architecturale prises durant cette étape de la thèse seront évaluées sous l’angle des exigences de sécurité.
Une fois cette tâche réalisée, une étape de prototypage sera réalisée. Cette phase exploitera possiblement les travaux déjà réalisé autour du cœur CVA6. Le prototype sur circuit FPGA permettra de valider les architectures proposées et de réaliser des expérimentations avec ou sans OS. Il permettra de plus de caractériser les surcouts en termes de temps d’exécution, de complexité matérielle du micro-décodeur. Les améliorations des capacités de sécurité offertes dans ce cadre seront alors évaluées notamment en évaluant les supports des attaques MITRE et les autres benchmarks du domaine.
Valorisation scientifique
Les travaux proposés dans le cadre de ce projet peuvent être valorisés au travers de publications dans des conférences de rang A telles que DATE, DAC sur les aspects matériels (unité de micro-décodage plus évoluée) ainsi que dans des journaux internationaux (IEEE Trans. on Computer ou Microprocessors and Microsystems). Les aspects relatifs à la sécurité et aux contre-mesures seront valorisés aussi dans les conférences et revues de spécialités comme HOST, ou Transactions on Cryptographic Hardware and Embedded Systems.
De plus, l’ensemble des développements logiciels et matériels réalisés dans le cadre de ces travaux seront publiés sous licence open-source pour permettre à la communauté de les reprendre et de les étendre.
État de l'art s’appuyant sur un choix de publications importantes liées au sujet
Depuis maintenant une décennie, de nombreuses études se sont focalisées sur la conception de cœurs RISC-V high-end [6,7] et low-cost [8] ainsi que sur des extensions de l’ISA afin d’accélérer différents domaines applicatifs [9]. En parallèle de ces travaux, se focalisant principalement sur les performances calculatoires et énergétiques, de nombreuses études se sont intéressées aux problématiques de sécurité [10]. Différents types de menaces ont été considérés :
(1) au niveau architectural - contre des attaques physiques, des attaques par canaux cachés mais aussi contre les attaques logicielles [11, 12, 13]
(2) au niveau système - afin de sécuriser les éléments du système, par exemple, à l’aide d’enclaves [14]
Dans certains travaux relatifs à la sécurité matérielle, l’injection d’instructions dans le pipeline a été proposée mais dans des contextes différents [15]. L’objectif est ici de contrer certaines attaques par canaux cachés en injectant aléatoirement des instructions factices. Ces injections de code nécessitent d’une part de garantir le fonctionnement correct du code et il est démontré que des attaques à des ordre plus élevées permettent d’outrepasser ces contre-mesures, et d’autres part elles induisent des overheads d’exécution non négligeables. L’application de ces contre-mesures seulement lors d’une attaque détectée est alors souhaitable [16].
L’objectif que nous souhaitons atteindre est de donner à l’architecture la capacité d’altérer le flux d’instructions exécuté de manière contrôlée afin de déployer des contre-mesures lorsque cela est jugé nécessaire par le système.
IEEE Design, Automation and Test in Europe Conference and Exhibition (DATE), Antwerpen, Belgium, April 2023.
P. Kocher, J. Horn, and al., “Spectre Attacks: Exploiting Speculative Execution,” in Proceedings of S&P’19, 2019.
M. Lipp, M. Schwarz, and al., “Meltdown: Reading Kernel Memory from User Space,” in Proceedings of USENIX Security, 2018
The RISC-V Instruction Set - Manual Volume I : Unprivileged Architecture, 2024.
Xuantie-910: A Commercial Multi-Core 12-Stage Pipeline Out-of-Order 64-bit High Performance RISC-V Processor with Vector Extension
J. Zhao, B. Korpan, and al., “SonicBOOM: The 3rd Generation Berkeley Out-of-Order Machine,” in Proceedings of the Workshop on Computer Architecture Research with RISC-V, 2020.
PicoRV32 - https://github.com/YosysHQ/picorv32
E. Cui, T. Li and Q. Wei, "RISC-V Instruction Set Architecture Extensions: A Survey," in IEEE Access, vol. 11, pp. 24696-24711, 2023
Tao Lu, "A Survey on RISC-V Security: Hardware and Architecture", arxiv 2021.
Gerlach, Lukas, Daniel Weber, Ruiyi Zhang, et Michael Schwarz. « A security RISC: microarchitectural attacks on hardware RISC-V CPUs ». In 2023 IEEE Symposium on Security and Privacy (SP), 2321‑38. IEEE, 2023.
Su, Chao, et Qingkai Zeng. « Survey of CPU Cache-Based Side-Channel Attacks: Systematic Analysis, Security Models, and Countermeasures ». Édité par Petros Nicopolitidis. Security and Communication Networks 2021 (10 juin 2021): 1‑15.
Martinoli, Valentin, “Secure Processors with respect to Micro Architectural Attacks”. Thèse de doctorat. Université Grenoble Alpes, 2023.
Schrammel, David, et al. "SPEAR-V: Secure and Practical Enclave Architecture for RISC-V." Proceedings of the 2023 ACM Asia Conference on Computer and Communications Security. 2023.
Belleville, Nicolas, « Compilation pour l'application de contre-mesures contre les attaques par canal auxiliaire ».Thèse de doctorat. Université Grenoble Alpes. 2019.
Mushtaq, Maria, “Software-based Detection and Mitigation of Microarchitectural Attacks on Intel’s x86 Architecture”. Thèse de doctorat. Université de Bretagne Sud, 2019.