Programme

Le programme de la journée est aménagé pour maximiser les interactions entre les participants. Les présentations de chaque session auront vocation à être ouvertes aux interactions avec l’assemblée, et un temps de questions et de discussions sera réservé à la fin de chaque session.

Programme préliminaire :

09h30 Accueil autour d’un café
10h00 Guillaume Bouffard Ouverture de la journée
10h10 Session 1 Injection de fautes et modélisation
Jean-Max Dutertre Discussion of the laser and EM Instruction Skip Fault Models [résumé]
Karim M. Abdellatif et Olivier Hériveaux SiliconToaster: A Cheap and Programmable EM Injector [résumé]
Vincent Werner Méthodologie d’analyse de vulnérabilité en presence de faute multiple [résumé]
Q&R
11h25 Pause
12h00 Session 2 Questions ouvertes sur la sécurité des systèmes
José Lopes-Esteves (nouvel orateur à confirmer) AGREMI, EMFI et CEM
Christophe Evrard A journey to Soft IP Common Criteria Certification
Q&R
13h00 Déjeuner
14h30 Session 3 Protections logicielles
Yliès Falcone Detecting Fault-injection Attacks at Runtime [résumé]
Son Tuan Vu Propagation et péservation de propriétés dans un flot de compilation optimisant et applications à la préservation de protections contre les attaques en faute [résumé]
Étienne Boespflug Analyse et placement de contremesures logicielles contre l’injection de faute en multi-faute [résumé]
Q&R
15h55 Session 4 Architecture et exploitabilité
Johan Laurent Bridging the Gap between RTL and Software Fault Injection: a Methodology for Accurate Fault Modeling [résumé]
Thomas Trouchkine Perturbation attacks on modern CPU, from the fault model to the exploitation
Q&R
16h55 Comité d’organisation Clôture de la journée

SiliconToaster: A Cheap and Programmable EM Injector

Karim M. Abdellatif et Olivier Hériveaux (Ledger)

Résumé. Electromagnetic Fault Injection (EMFI) is considered as an effective fault injection technique for the purpose of conducting physical attacks against integrated circuits. It enables an adversary to inject errors on a circuit to gain knowledge of sensitive information or to bypass security features. The aim of this talk is to highlight the design and validation of SiliconToaster, which is a cheap and programmable platform for EM pulse injection. It has been designed using cheap components that can be easily found. In addition, it can inject faults with a programmable voltage up to 1KV. We validate the efficiency of our platform by injecting successful faults on a well-known microcontroller in the market without any chip decapsulation.

Analyse et placement de contremesures logicielles contre l’injection de faute en multi-faute

Etienne Boespflug (Verimag / Grenoble Alpes Cybersecurity Institute)

Résumé. Le passage au multi-faute apporte des problématiques nouvelles en terme d’évaluation de la robustesse d’une application et de construction d’applications robustes. En effet l’approche consistant à trouver des attaques puis ajouter une contre-mesure puis montrer la robustesse de l’application atteint ses limites, les contre-mesures pouvant être attaquées à leur tour.

Nous proposons une méthodologie permettant d’évaluer des contre-mesures en multi-fautes en terme d’efficacité (qui bloquent réellement des attaques) basé sur l’outil Lazart qui permet d’analyser du code LLVM en multi-fautes par exécution symbolique. Nous illustrons cette approche dans le cadre de contre-mesures ajoutées automatiquement par des outils visant à surveiller le flot de contrôle. L’objectif à terme est d’aider au placement de contre-mesures.

Discussion of the laser and EM Instruction Skip Fault Models

Jean-Max Dutertre (École des Mines de Saint-Etienne - Gardanne), Alexandre Menu, Timothé Riom, Olivier Potin, Jean-Baptiste Rigaud.

Résumé. Nous proposons dans cette présentation une discussion du modèle de faute associé aux sauts d’instructions dans les microcontroleurs. Nous décrivons les caractéristiques principales des sauts d’instructions obtenus expérimentalement à partir de pertubations laser ou electromagnétique. La connaissance des caractéristiques des fautes pouvant être obtenues (répétitivité, étendue, etc.) est essentielle pour les travaux de modélisation des attaques et la mise au point de contre-mesures.

Detecting Fault-injection Attacks at Runtime

Yliès Falcone (INRIA / Corse)

Résumé. We present an approach to detect fault-injection attacks at runtime. Our approach is based on the principles of Runtime Verification, which is a lightweight yet formal and rigorous verification technique. As such, we use a formal model of an attacker who can invert tests and insert arbitrary jumps in the control flow of a program. We define runtime verification monitors, which detect the fault injections performed by such attacker. Runtime verification monitors offer several advantages. The code implementing a monitor is small compared to the entire application code. Monitors have a formal semantics; we prove that they effectively detect attacks. Each monitor is a module dedicated to the detection of an attack and it can be deployed as needed to secure the application. We target the Java ecosystem and overview an instrumentation framework allowing to automatically instrument an application and deploy monitors. We present preliminary evaluation results on some Java applications. Finally, we outline some avenues for future work including the mitigation of attacks with monitors.

Bio. Yliès Falcone received the Master degree (2006) and PhD (2009) in computer science from the University of Grenoble at Vérimag Laboratory. His research interests concern formal software engineering and runtime validation techniques for various application domains, i.e. techniques aiming at evaluating whether a system meets a set of desired properties at runtime. He is a member of the Steering Committees of the Runtime Verification conference and the Software Verification and Testing track of the ACM Symposium on Applied Computing. He has cofounded the competition of tools on Runtime Verification. He was an invited researcher in several places such as NASA JPL in Pasadena (USA), NICTA Canberra (Australia), Manchester University and University of Illinois at Urbana Champaign (USA). Since September 2011, he is an associate professor at University of Grenoble and a researcher at Laboratory of Informatics Grenoble.

Bridging the Gap between RTL and Software Fault Injection: a Methodology for Accurate Fault Modeling

Johan Laurent (LCIS)

Résumé. Protecting programs against hardware fault injection requires accurate software fault models. But typical models such as the instructions skip do not take into account the microarchitecture specificities of a processor, which can lead to unpredictable attacks. We propose in this talk a methodology to precisely model faults at the software level by comparing results from RTL simulations and software injection (using a program mutation tool). Various analyses are performed in this methodology to give insight on the relevance of software fault models, such as coverage and reliability analyses, and linking models to injection parameters.

Propagation et péservation de propriétés dans un flot de compilation optimisant et applications à la préservation de protections contre les attaques en fautes

Son Tuan Vu (Sorbonne Université / LIP6)

Résumé. Le besoin de vérifier des propriétés de sécurité ou fonctionnelles des applications a répandu l’usage d’annotations (e.g. ACSL). Lorsque cette vérification a lieu au niveau binaire, il est nécessaire de transporter et transposer ces propriétés portant sur le code source au niveau du code compilé. La préservation de propriétés tout au long du flot de compilation est un problème difficile à cause des optimisations qui réorganisent les calculs ou éliminent les variables inutiles.

Dans cet exposé, nous présenterons une approche permettant de propager et préserver des propriétés fonctionnelles tout au long d’un flot de compilation optimisant sans modifier les passes d’optimisation du compilateur. Dans notre implémentation dans LLVM, les propriétés sont émises dans le code binaire sous forme d’information de débug DWARF permettant leur utilisation par des outils d’analyse binaire. Nous montrerons comment notre approche et les mécanismes sur lesquelles elle repose peuvent être utilisés pour préserver des protections contre les attaques en faute insérées dans le code source tout en activant les optimisations du compilateur.

Méthodologie d’évaluation de la vulnérabilité aux attaques par fautes multiples

Vincent Werner (Université Grenoble Alpes / VERIMAG)

Résumé. En perturbant à plusieurs reprises l’exécution d’une application embarquée sur un microcontrôleur, les attaques par fautes multiples sont redoutables pour venir à bout de contremesures matérielles et logicielles. Cependant, la mise en pratique de ce type d’attaque reste difficile. Dans cet exposé, nous présenterons une méthodologie d’attaque par fautes multiples avec une connaissance partielle de la cible. Cette méthodologie est générique et repose sur l’inférence de modèles à partir des fautes observées et sur la simulation d’injection de fautes au niveau ISA. Nous détaillerons chaque étape en nous appuyant sur des exemples pratiques, depuis la revue de code jusqu’à l’exploitation de l’attaque.