Sécurisation d'architecture par la gestion dynamique de microdécodage d'instructions

Publié le
Equipe (ou département si l'offre n'est pas rattachée à une équipe)
Lieu
Lannion
Unité de recherche
IRISA - UMR 6074
Description du sujet de la thèse

Résumé du projet

 

Le projet SecDynDecI propose de mettre à profit une architecture processeur RISC-V incluant une unité de micro-décodage dynamique [1, 2]. Cette architecture, développée dans le cadre du projet ANR SECV [1], permet par construction de générer à partir d’instructions RISC-V spécifiques des séquences d’instructions RV32I à l’exécution. La capacité d'actualiser le contenu du micro-décodeur permet de modifier la manière dont sont réalisées les instructions sans avoir à recompiler les programmes (ex. correction de bugs). Nous souhaitons, à l’aide de ce financement, évaluer la pertinence d’utiliser cette unité de micro-décodage pour traiter des problématiques de sécurité. La modification du flux d’instruction à la volée doit permettre par exemple d’assurer l'obfuscation dynamique des instructions exécutées par le cœur et pourrait autoriser entre autres de contrer les attaques par canaux auxiliaires (cache, synchronisation) et physiques (DPA).

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 SecDynDecI. Ces modifications devrait permettre de monitorer l’exécution du flux d’instructions y compris du code legacy, d’obfusquer l’exécution d’instructions spécifiques, et d’adapter dynamiquement l’exécution de programme en fonction d’un contexte. Ces points couvrent 4 des 5 fonctions NIST de la cybersécurité (identifier, détecter, protéger et réagir).

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 :

  1. Introduire des vérifications des accès mémoire pour détecter les vulnérabilités logicielles.
  2. Rendre aléatoire tout ou une partie des instructions pour contrecarrer l’injection de code malveillant.
  3. Injecter des micro-opérations fictives afin de masquer temporairement l’exécution du programme.
  4. Attraper des instructions spécifiques pour effectuer une instrumentation.
  5. Actualiser le processus de décodage pour procurer un nouveau mécanisme de protection.
  6. 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 SecDynDecI nous proposons de plus la définition de mondes d’exécution, permettant l’activation de différents modes de fonctionnement en fonction des contextes applicatifs. Cette notion s’appuiera sur l’intégration d’un ensemble de micro-décodeurs d’instructions dans l’architecture du cœur RISC-V. Cette duplication des unités permettra de supporter plusieurs modes de fonctionnement (mondes), exécutant les séquences d’instructions sécurisées, ou bien leurs équivalentes haute-performance (que cela soit temporel ou d’énergie par exemple) à partir d’un unique code logiciel. Sa nature dynamique sera utilisée pour permettre une surveillance contextuelle des applications au niveau matériel.

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.

Bibliographie

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), 232138. 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): 115.

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. 

Liste des encadrants et encadrantes de thèse

Nom, Prénom
LE GAL Bertrand
Type d'encadrement
Directeur.trice de thèse
Unité de recherche
IRISA
Département
Equipe

Nom, Prénom
PILLEMENT Sébastien
Type d'encadrement
2e co-directeur.trice (facultatif)
Unité de recherche
IETR
Contact·s
Nom
LE GAL Bertrand
Email
bertrand.le-gal@irisa.fr
Mots-clés
RISC-V, sécurité, micro-décodage