Thèse soutenue

Défense contre les attaques de logiciels

FR  |  
EN
Auteur / Autrice : El Habib Boudjema
Direction : Nadia Lynda Mokdad
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance le 04/05/2018
Etablissement(s) : Paris Est
Ecole(s) doctorale(s) : École doctorale Mathématiques, Sciences et Technologies de l'Information et de la Communication (Champs-sur-Marne, Seine-et-Marne ; 2015-....)
Partenaire(s) de recherche : Laboratoire : Laboratoire d'algorithmique, complexité et logique (Créteil) - Laboratoire d'Algorithmique Complexité et Logique / LACL
Jury : Président / Présidente : Jalel Ben Othman
Examinateurs / Examinatrices : Nadia Lynda Mokdad, Christèle Faure, Zineb Habbas, Hamadache Khedouci, Serghei Verlan
Rapporteurs / Rapporteuses : Sherali Zeadally, Damien Sauveron

Résumé

FR  |  
EN

Dans ce début du troisième millénium, nous sommes témoins d'un nouvel âge. Ce nouvel âge est caractérisé par la transition d'une économie industrielle vers une économie basée sur la technologie de l'information. C'est l’âge de l'information. Aujourd’hui le logiciel est présent dans pratiquement tous les aspects de notre vie. Une seule vulnérabilité logicielle peut conduire à des conséquences dévastatrices. La détection de ces vulnérabilités est une tâche qui devient de plus en plus dure surtout avec les logiciels devenant plus grands et plus complexes. Dans cette thèse, nous nous sommes intéressés aux vulnérabilités de sécurité impactant les applications développées en langage C et particulièrement les vulnérabilités provenant de l'usage des fonctions de ce langage. Nous avons proposé une liste de vérifications pour la détection des portions de code causant des vulnérabilités de sécurité. Ces vérifications sont sous la forme de conditions rendant l'appel d'une fonction vulnérable. Des implémentations dans l'outil Carto-C et des expérimentations sur la base de test Juliet et les sources d'applications réelles ont été réalisées. Nous nous sommes également intéressés à la détection de vulnérabilités exploitables au niveau du code binaire. Nous avons défini en quoi consiste le motif comportemental d'une vulnérabilité. Nous avons proposé une méthode permettant de rechercher ces motifs dans les traces d'exécutions d'une application. Le calcul de ces traces d'exécution est effectué en utilisant l'exécution concolique. Cette méthode est basée sur l'annotation de zones mémoires sensibles et la détection d'accès dangereux à ces zones. L'implémentation de cette méthode a été réalisée dans l'outil Vyper et des expérimentations sur la base de test Juliet et les codes binaires d'applications réelles ont été menées avec succès