Modélisation de fautes utilisant la description RTL de microarchitectures pour l’analyse de vulnérabilité conjointe matérielle-logicielle - TEL - Thèses en ligne
Thèse Année : 2020

Fault modeling using the RTL description of microarchitectures for joint hardware-software vulnerability analysis

Modélisation de fautes utilisant la description RTL de microarchitectures pour l’analyse de vulnérabilité conjointe matérielle-logicielle

Résumé

Nowadays, digital security is of major importance to our societies. Communications, energy, transport, means of production, Internet of Things… The use of digital systems is ever increasing, making them critical to the correct working of our world. A little more than two decades ago, a new form of attack has risen: fault injection. Essentially, it consists in perturbing a circuit during computation, using various methods such as power glitches, electromagnetic injection or laser injection; in the aim of generating errors. These errors can then be exploited by an attacker to reveal secret information from the circuit, or to bypass some security measures.System complexification and technological advances make digital systems particularly vulnerable against fault injection attacks. In order to thwart these attacks effectively and at a reasonable cost, it is necessary to consider security from the early phases of the design flow. To do that, a better understanding of how faults impact processors is required. Effects provoked by fault injection can be modeled at various levels of abstraction. Currently, if the impact of faults at the hardware level is relatively well known, the same cannot be said for the software level. Security analyses at the software level are based on simple software fault models such as instruction skip, register corruption or test inversion. These models are applied without any serious consideration for the microarchitecture of the attacked processor. This brings the question of the realism of these models, leading to two types of problems: some modeled effects do not correspond to actual attacks; and, conversely, some effects lowering the security of the system are not modeled. These issues then translate to over-engineered, or, worse, under-engineered countermeasures.To face the limitations of typical software fault models, a precise study of processor microarchitectures is necessary. In this thesis, we first explore how various structures of the processor, such as the pipeline or optimization structures like forwarding and speculative execution, can influence the behavior of faults in the inner working of the processor; and how they call into question a pure software vision of how faults impact software execution. RTL injections are conducted in a RISC-V processor, to demonstrate how these effects could be exploited to counter typical software countermeasures and a hardened program that check PIN codes. Then, a method to study more generally the effects of faults in a processor is developed. The point of this method is twofold. The first is about modeling faults at the software level, with the definition of several metrics to evaluate models. The second point is about keeping a link to the RTL level, in order to be able to materialize effects obtained at the software level. Finally, to end this thesis, we study the possibility to use static analysis to analyze the security of programs against software fault models defined previously. Two methods are considered, one using abstract interpretation, and the other using symbolic execution.This thesis, financed by the IRT Nanoelec for the Pulse project, has been conducted within the LCIS laboratory in Valence, in collaboration with the CEA-Leti in Grenoble. It has been supervised by Vincent Beroulle (LCIS), and co-supervised by Christophe Deleuze (LCIS) and Florian Pebay-Peyroula (CEA-Leti).
La sécurité numérique est aujourd’hui un enjeu majeur dans nos sociétés. Communications, énergie, transport, outils de production, Internet des Objets… Les systèmes numériques se multiplient et deviennent toujours plus critiques pour le bon fonctionnement du monde. Depuis un peu plus d’une vingtaine d’années, une nouvelle menace a émergé pour attaquer les systèmes : l’injection de faute. Elle consiste essentiellement à perturber un circuit pendant son fonctionnement, par diverses méthodes comme des perturbations sur l’alimentation du circuit, l’injection électromagnétique, ou l’injection laser ; afin de provoquer des erreurs. Ces erreurs peuvent ensuite être exploitées par un attaquant pour révéler des informations secrètes du circuit, ou passer outre des mesures de sécurité.La complexification des systèmes numériques et les avancées technologiques comme la finesse de gravure rendent particulièrement vulnérables les systèmes numériques face aux attaques par injection de fautes. Pour contrer ces attaques efficacement et à un coût raisonnable, il est nécessaire de penser la sécurité dès la phase de conception du système. Pour cela, il faut comprendre précisément l’impact de ces fautes sur les processeurs. Les effets induits peuvent être modélisés à différents niveaux d’abstraction. Actuellement, si l’impact des fautes est relativement bien connu au niveau matériel, leurs effets au niveau logiciel restent mal compris. Les analyses de vulnérabilité au niveau logiciel se basent donc sur des modèles de faute logiciels simples que sont par exemple le saut d’instruction, la corruption de registre ou l’inversion de test. Ces modèles sont appliqués sans réelle prise en compte de la microarchitecture du processeur attaqué. Cette non-considération de l’aspect matériel pose la question du réalisme des modèles logiciels, qui conduit à deux types de problèmes : certains effets modélisés ne correspondent pas à des vulnérabilités réelles ; et, à l’inverse, certains effets affaiblissant la sécurité ne sont pas modélisés. Ces difficultés se transposent ensuite dans des contremesures sur-dimensionnées, ou, plus grave, sous-dimensionnées.Pour lutter contre ces limitations des modèles de faute logiciels usuels, une étude précise de la microarchitecture des processeurs est requise. Dans cette thèse, nous explorons tout d’abord en quoi différentes structures du processeur, comme le pipeline ou les optimisations de forwarding et d’exécution spéculative, peuvent influer sur le comportement des fautes au sein du processeur et en quoi ces structures peuvent mettre à mal une vision purement logicielle de l’impact des fautes sur l’exécution d’un programme. Des injections au niveau RTL dans un processeur d’architecture RISC-V sont effectuées pour montrer que ces effets pourraient être exploités pour attaquer des contremesures logicielles typiques, ou encore une application de vérification de PIN sécurisée. Dans un deuxième temps est développée une méthode pour étudier plus généralement les effets des fautes dans un processeur. Cette méthode a un intérêt double. Le premier est la modélisation de fautes au niveau logiciel, avec notamment la définition de métriques d’évaluation des modèles. Le second est de conserver un lien avec le niveau RTL afin de pouvoir concrétiser les effets obtenus au niveau logiciel. Pour terminer cette thèse, nous étudions la possibilité d’utiliser des méthodes d’analyse statique pour analyser la sécurité de programmes face aux modèles de faute logiciels définis précédemment. Une analyse par interprétation abstraite et une analyse par exécution symbolique sont abordées.Cette thèse, financée par l’IRT Nanoelec pour le projet Pulse, a été réalisée au sein du laboratoire LCIS de Valence, en collaboration avec le CEA-Leti de Grenoble. Elle a été dirigée par Vincent Beroulle (LCIS) et co-encadrée par Christophe Deleuze (LCIS) et Florian Pebay-Peyroula (CEA-Leti).
Fichier principal
Vignette du fichier
LAURENT_2020_archivage.pdf (2.89 Mo) Télécharger le fichier
Origine Version validée par le jury (STAR)

Dates et versions

tel-03167493 , version 1 (12-03-2021)

Identifiants

  • HAL Id : tel-03167493 , version 1

Citer

Johan Laurent. Modélisation de fautes utilisant la description RTL de microarchitectures pour l’analyse de vulnérabilité conjointe matérielle-logicielle. Micro et nanotechnologies/Microélectronique. Université Grenoble Alpes [2020-..], 2020. Français. ⟨NNT : 2020GRALT061⟩. ⟨tel-03167493⟩
450 Consultations
325 Téléchargements

Partager

More