Analyse des vulnérabilités dans des systèmes embarqués face à des attaques par fuzzing (Vulnerability analysis for embedded systems against fuzzing attacks) Ouairy, Léopold - (2020-09-24) / Universite de Rennes 1 - Analyse des vulnérabilités dans des systèmes embarqués face à des attaques par fuzzing
| |||
Langue : Français Directeur(s) de thèse: Lanet, Jean-Louis Discipline : Informatique Laboratoire : INRIA-RENNES Ecole Doctorale : MATHSTIC Classification : Informatique Mots-clés : Traitement Automatique du Langage Naturel, Apprentissage Automatique, Cartes à puces
| |||
Résumé : De nos jours, les cartes à puces sont utilisées quotidiennement. Elles nous permettent par exemple d'effectuer des paiements ou encore de signer des documents numériques. Parce que les cartes à puces contiennent des informations personnelles et sensibles relatives à leur propriétaire légitime, elles sont convoitées par les attaquants. En particulier, ces attaquants peuvent utiliser le fuzzing. Cette attaque consiste à tester le plus de messages de communication possible avec un programme afin de pouvoir détecter des vulnérabilités. Cette thèse vise à protéger les cartes à puces face aux attaques par fuzzing. Deux approches de détection automatique d'erreurs d'implémentation sont proposées. La première, est l'adaptation pour Java et son amélioration d'un outil issu de l'état de l'art. Il repose sur une technique de fouille de code sources automatique. La seconde approche est également basée sur la fouille de code sources, en prenant en compte les limites de la première. En particulier, la précision et la réduction des dimensions est améliorée par l'utilisation de techniques issues du Traitement Automatique du Langage Naturel. De plus, une étude des techniques de plagiat augmente la robustesse de l'analyse face aux différences d'implémentation des applets. Cette même approche effectue une analyse inter-procédurale du graphe de flot de contrôle des applets, lui permettant de réduire le nombre de faux positifs lors de la détection d'anomalies. Les deux approches sont évaluées sur deux points: leur capacité à retrouver des méthodes de sémantique similaire, ainsi que sur leur capacité à détecter des anomalies. Cette évaluation repose sur trois oracles construits manuellement à partir de programmes AES et d'applets OpenPGP. Les résultats montrent que la seconde approche permet de détecter des vulnérabilités avec plus de précision, de rappel, et en moins de temps que la première approche. Aussi, son implémentation nommée Confiance pourrait être utilisé en entreprise pour sécuriser des applets. Abstract : Nowadays, smart cards are used daily. They enable users to pay or sign numeric documents for example. Because they contain sensible information about their user and secrets, attackers are interested in them. In particular, these attackers can use fuzzing. This attack consists in sending the most possible communication messages to a program in order to detect its vulnerabilities. This thesis aims at protecting smart cards against fuzzing. Two approaches for detecting implementation errors are proposed. The first one is from the state of the art, and it is adapted and improved for Java. It is based on an automated source code analysis. The second approach analyses source codes too, but it takes into account limitations of the first one. In particular, the precision and the dimension reduction is improved by using Natural Language Processing techniques. In addition, it studies plagiarsm techniques in order to reinforce its analysis against different implementations choices. An inter-procedural of the control flow graph is achieved for reducing the false positives. Both approaches are evaluated against three manually created oracles from OpenPGP and AES implementations for the neighborhood discovery and the anomaly detection. Results show that the second approach is improved in precision, recall and with less execution time than the first one. Its implementation, Confiance can be used in companies to secure source codes. |