Quantification de la sécurité des applications en présence d’attaques physiques et détection de chemins d’attaques - TEL - Thèses en ligne Accéder directement au contenu
Thèse Année : 2020

Software security quantifcation before physical attacks and detection of attack paths

Quantification de la sécurité des applications en présence d’attaques physiques et détection de chemins d’attaques

Jean-Baptiste Bréjon
  • Fonction : Auteur
  • PersonId : 1092200

Résumé

Embedded systems are processing and handling more and more sensitive data. They now come in multiple forms and affect areas such as health, aerospace or transportation. The security of these systems is now a prime concern for those who designs them. Fault attacks are indented to disrupt the execution of programs through the manipulation of physical quantities in the system environment and enable an attacker to bypass security mechanisms or achieve privilege escalation. To address this threat, software counter-measures in the form of additional code interleaving with the sensitive functionality are deployed. Various analyses are now being used to assess the efficiency of the counter-measures once deployed. Yet, those analyses have limitations : they are little or not automated, they are costly and, depending of the method used, they are limited in terms of code coverage of the possible behaviour and of faults types that can be analysed. We propose a method to analyse the robustness of binary code combining formal methods and symbolic execution. Performing the analysis at the binary level presents two major advantages. First, it positions the analysis after compilation which can affect the counter-measures ; second, it allows to take into account information which is only visible at the binary level and which can be exploited to perform an attack. Formal methods are capable of exhaustiveness and thus allow the analysis to consider all possible configurations of inputs. The proposed analysis is nevertheless carried out with respect to a symbolic context, extracted by symbolic execution, which confines it to a realistic set of inputs and thus limits false positives. We have implemented this method in a tool called RobustB. It is automated from the source code and supports various types of transient faults affecting both the code and the data. In addition, we propose three metrics synthesising the analysis results and helping the designer of counter-measures to assess the sensitivity of the code as a whole and at the granularity of an instruction. Our experiences show the usefulness of our tool and metrics to analyse and understand the effects of compilation, determine protections redundancy, check the proper deployment of counter-measures when inserted at compile time and search for attack paths.
Les systèmes embarqués traitent et manipulent de plus en plus de données sensibles. Ils sont de plus en plus variés et touchent des domaines comme la santé, l’aérospatial ou encore les transports. La sécurité de ces systèmes est une préoccupation de premier ordre pour ceux qui les conçoivent. Les attaques en fautes visent à perturber l’exécution des programmes à travers la manipulation de grandeurs physiques dans l’environnement du système et permettent, par exemple, de contourner des mécanismes de sécurité ou encore de réaliser une escalade de privilèges. Pour faire face à cette menace, des contre-mesures logicielles prenant la forme d’ajout de code autour de la fonctionnalité à protéger sont déployées. Différentes analyses sont actuellement utilisées pour évaluer l’efficacité des contre-mesures une fois déployées mais, elles présentent des limitations : elles sont peu ou pas automatisées, coûteuses et selon la méthode employée elles sont limitées quant à la couverture des comportements possibles et aux types de fautes analysables. Nous proposons une méthode d’analyse de robustesse de code binaire combinant des méthodes formelles et de l’exécution symbolique. L’analyse au niveau du code binaire permet non seulement de se placer après la compilation, qui peut altérer les contre-mesures, mais aussi de prendre en compte des éléments du code binaire invisibles à plus haut niveau. Les méthodes formelles, capables d’exhaustivité, permettent à l’analyse de considérer toutes les configurations des paramètres d’entrée. L’analyse est toutefois réalisée vis-à-vis d’un contexte symbolique, extrait par exécution symbolique, ce qui la circonscrit à des paramètres d’entrée réalistes et limite ainsi les faux positifs. Nous avons implémenté cette méthode dans un outil, nommé RobustB, automatisé depuis le code source. Il supporte différents types de fautes transitoires affectant aussi bien le code que les données. De plus, nous proposons trois métriques permettant de synthétiser les résultats de l’analyse et d’aider le concepteur de contre-mesures à évaluer la sensibilité globale du code ainsi qu’au niveau de chaque instruction. Nos expériences montrent l’utilité de RobustB et de ses métriques pour analyser les effets de la compilation, déterminer la redondance de protections, vérifier le bon déploiement de contre-mesures insérées à la compilation, ou encore rechercher des chemins d’attaques.
Fichier principal
Vignette du fichier
these.pdf (2.07 Mo) Télécharger le fichier
Origine : Fichiers produits par l'(les) auteur(s)

Dates et versions

tel-03987599 , version 1 (14-02-2021)
tel-03987599 , version 2 (14-02-2023)

Identifiants

  • HAL Id : tel-03987599 , version 1

Citer

Jean-Baptiste Bréjon. Quantification de la sécurité des applications en présence d’attaques physiques et détection de chemins d’attaques. Cryptographie et sécurité [cs.CR]. Université Pierre et Marie CURIE, 2020. Français. ⟨NNT : ⟩. ⟨tel-03987599v1⟩
166 Consultations
229 Téléchargements

Partager

Gmail Facebook X LinkedIn More