Résumé :
Malware, traduit par "logiciel malveillant" sont des programmes créés pour s'attaquer à des infrastructures cibles, et se définissent souvent par leurs comportements. Dans ce contexte, on fait la distinction entre analyse statique et dynamique. Là où l'une consiste à inférer le comportement d'un échantillon en étudiant son code binaire exécutable, fréquemment rendu difficile à exploiter, l'analyse dynamique consiste à observer l'échantillon dans un environnement suffisamment isolé et contrôlé. Dans cette thèse, nous étudions les types de données collectées lors de l'analyse dynamique pour comprendre comment les utiliser au mieux. Nous définissons ainsi une ontologie pour représenter la connaissance des traces d'exécution d'un programme, et implémentons un compilateur de graphe de connaissances pour représenter ces traces. Nous arrivons ainsi à définir des motifs de graphes dans cette ontologie qui représentent des comportements de malware. Grâce à cela, nous sommes capables de faire des expériences d'apprentissage machine avec les occurrences de motifs que nous apprenons ou encore de décrire des jeux de données de malware avec, d'apprendre les familles, trouver des motifs comportementaux, détecter des échantillons anormaux, le tout grâce à cette approche ontologique.
Abstract:
Malware, short for malicious software, are pieces of software designed to hard target systems, and are often defined depending on their behaviors. In this context, there is a major distinction between static and dynamic analysis. Where one focuses on studying the binary code of executable that can be made hard to analyze to draw conclusions on the expected behaviors of the samples, dynamic analysis relies on capturing the behavior of the sample when running it in a controlled and isolated enough environment. In this thesis, we study the types of data collected during such dynamic analysis to infer the best ways to use it. We then define an ontology for representing software execution traces, and design a knowledge graph compiler for these reports. We are then able to search for patterns that define typical behaviors in these graphs. From this we are able to run machine learning experiments based on the matches of patterns we learn and automatically characterize datasets of malware, learning families, behavioral patterns, detecting outliers, all thanks to this ontological approach.
- Luca DEMETRIO, Assistant Professor à l'université de Gênes, Italy
- Yufei HAN, Chercheur à Inria, Rennes, France
- Valérie VIET TRIEM TONG, Professeure à CentraleSupélec, Rennes, France
- Tayssir TOUILI, Directrice de recherche au CNRS, Paris, France
- Jean-Yves MARION, Professeur des universités à l'université de Lorraine, France