Thèse soutenue

Cartographie des programmes et de leurs interrelations

FR  |  
EN
Auteur / Autrice : Tristan Benoit
Direction : Jean-Yves MarionSébastien Bardin
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance le 13/12/2023
Etablissement(s) : Université de Lorraine
Ecole(s) doctorale(s) : École doctorale IAEM Lorraine - Informatique, Automatique, Électronique - Électrotechnique, Mathématiques de Lorraine (1992-....)
Partenaire(s) de recherche : Laboratoire : Laboratoire lorrain de recherche en informatique et ses applications
Jury : Président / Présidente : Marine Minier
Examinateurs / Examinatrices : Jean-Yves Marion, Christophe Hauser, Davide Balzarotti, Valérie Viêt Triêm Tông, Yves Le Traon
Rapporteurs / Rapporteuses : Christophe Hauser, Davide Balzarotti

Résumé

FR  |  
EN

Dans le domaine du génie logiciel, assurer la qualité et la sûreté des logiciels est complexe. Ce contexte est dû à un ensemble de facteurs, notamment l'utilisation croissante de bibliothèques et le recours à des pratiques comme la copie de codes à partir de services en ligne. Une réponse courante à cette problématique est l'application de méthodes formelles de validation des programmes avant leur diffusion. Cette approche, cependant, requiert une compréhension précise des enjeux à vérifier et un haut degré d'expertise. Cette thèse introduit des méthodes innovantes de rétro-ingénierie pour collecter automatiquement des informations sur l'origine d'un programme et pour identifier des clones de programmes au sein de larges jeux de données. Notre première contribution est le nouveau modèle de réseau de neurones Site Neural Network (SNN) qui prédit la chaîne de compilation utilisée pour produire un programme entier. SNN offre une grande rapidité ainsi qu'une bonne précision. Sa modularité grâce à l'utilisation de hiérarchies de classificateurs permet de considérer facilement des chaînes de compilation supplémentaires. Notre seconde contribution est Program Spectral Similarity (PSS), un outil qui fournit un moyen rapide et efficace de détecter des clones de programmes, même quand leur architecture matérielle visée diffère ou en cas d'offuscation. Contrairement aux méthodes basées sur les fonctions binaires ou sur la distance d'édition des graphes, qui sont chronophages et peu robustes, PSS s'appuie sur l'analyse spectrale de graphes pour mesurer la similarité entre programmes. Cette thèse participe ainsi à renforcer la sécurité des systèmes en mettant à disposition des outils pour identifier rapidement les clones de programmes malveillants. En outre, elle apporte un soutien à l'investigation numérique en donnant des informations pertinentes sur la chaîne de compilation. Ce travail ouvre la voie à de nouveaux réseaux de neurones spécialisés pour les programmes, ainsi qu'au développement de méthodes d'analyse spectrale pour l'étude de la similarité des codes binaires.