A semantic approach to machine-level software security - TEL - Thèses en ligne Accéder directement au contenu
Thèse Année : 2021

A semantic approach to machine-level software security

Une approche sémantique à la sécurité logicielle niveau machine

Résumé

Computer science is built on many layers of abstraction, from hardware to algorithms or statements of work. In the context of computer security, vulnerabilities often originate from the discrepancies between these different abstraction levels. Such inconsistencies may lead to cyberattacks incurring losses. As a remedy, providing semantics helps formally describe and close the gap between these layers. In this thesis, we improve methods and programs by connecting the various semantic representations involved using their relationship to each level of abstraction. We briefly introduce the fundamental concepts and terminology to build assembly languages from scratch and various abstractions built atop and used in the context of binary exploitation. In the first part, we leverage higher-level semantic constructs to reduce the design complexity of advanced exploits on several recent instruction set architectures. In a tutorial-like fashion, we present three examples addressing increasingly more complex constraints. Specifically, we describe a methodology to automatically turn arbitrary programs into alphanumeric shellcodes on ARMv8-A and on RISC-V. We also provide the first analysis on the feasibility of return-oriented programming attacks on RISC-V. In the second part, we see how the use of formal methods can improve the safety and security of various languages or constructs, through three examples that respectively optimize the implementation of Hoare monitors, a well-known synchronization construct, prevent harmful aliasing in an imperative language without impeding deductive verification, or abstract binary code into a compact representation which enables further protocol desynchronization analyses.
L’informatique se fonde sur de nombreuses couches d’abstraction, allant des couches matérielles jusqu’à l’algorithmique en passant par le cahier des charges à la base de la conception du produit. Dans le cadre de la sécurité informatique, les vulnérabilités proviennent souvent de la confusion résultant des différentes abstractions décrivant un même objet. La définition de sémantiques aide à la description formelle de ces abstractions dans l’objectif de les faire coïncider. Dans cette thèse, nous améliorons différents procédés ou programmes en corrélant les diverses représentations sémantiques sous-jacentes. Nous introduisons brièvement les termes et concepts fondamentaux avec lesquels nous construisons le concept de langage assembleur ainsi que les différentes abstractions utilisées dans l’exploitation de programmes binaires. Dans une première partie, nous utilisons des constructions sémantiques de haut niveau pour simplifier la conception de codes d’exploitation avancés sur des jeux d’instructions récents. Nous présentons didactiquement trois exemples répondant à des contraintes de plus en plus complexes. Spécifiquement, nous présentons une méthode pour produire des shellcodes alphanumériques sur ARMv8-A et RISC-V, ainsi que la première analyse de faisabilité d’attaques de type return-oriented programming sur RISC-V. Dans une deuxième partie, nous étudions l’application des méthodes formelles à l’amélioration de la sécurité et de la sûreté de langages de programmation à travers trois exemples : une optimisation de primitives de synchronisation, une analyse statique compatible avec la vérification déductive limitant l’aliasing de pointeurs dans un langage impératif ou encore un formalisme permettant de représenter de façon compacte du code binaire dans le but d’analyser des problèmes de synchronisation de protocole.
Fichier principal
Vignette du fichier
Jaloyan_2021_These.pdf (4.93 Mo) Télécharger le fichier
Origine : Version validée par le jury (STAR)

Dates et versions

tel-04023324 , version 1 (10-03-2023)

Identifiants

  • HAL Id : tel-04023324 , version 1

Citer

Georges-Axel Jaloyan. A semantic approach to machine-level software security. Cryptography and Security [cs.CR]. Université Paris sciences et lettres, 2021. English. ⟨NNT : 2021UPSLE062⟩. ⟨tel-04023324⟩
72 Consultations
181 Téléchargements

Partager

Gmail Facebook X LinkedIn More