Thèse soutenue

Analyse binaire des logiciels malveillants pour Linux et IoT
FR  |  
EN
Accès à la thèse
Auteur / Autrice : Emanuele Cozzi
Direction : Davide Balzarotti
Type : Thèse de doctorat
Discipline(s) : Informatique, télécommunications et électronique
Date : Soutenance le 14/12/2020
Etablissement(s) : Sorbonne université
Ecole(s) doctorale(s) : École doctorale Informatique, télécommunications et électronique de Paris
Partenaire(s) de recherche : Laboratoire : Institut EURECOM (Sophia-Antipolis, Alpes-Maritimes)
Jury : Président / Présidente : Aurélien Francillon
Examinateurs / Examinatrices : Mariano Graziano, Martina Lindorfer
Rapporteurs / Rapporteuses : Christian Rossow, Lorenzo Cavallaro

Résumé

FR  |  
EN

Au cours des deux dernières décennies, la communauté de la sécurité a lutté contre les programmes malveillants pour les systèmes d’exploitation basés sur Windows. Cependant, le nombre croissant de dispositifs embarqués interconnectés et la révolution de l’IoT modifient rapidement le paysage des logiciels malveillants. Les acteurs malveillants ne sont pas restés les bras croisés, mais ont rapidement réagi pour créer des “logiciels malveillants Linux”. Par cette thèse, nous naviguons dans le monde des logiciels malveillants basés sur Linux et mettons en évidence les problèmes que nous devons surmonter pour leur analyse correcte. Après une exploration systématique des défis liés à l’analyse des logiciels malveillants sous Linux, nous présentons la conception et la mise en œuvre du premier pipeline d’analyse des logiciels malveillants, spécialement conçu pour étudier ce phénomène émergent. Nous appliquons ensuite des techniques de similarité de code binaire pour reconstruire systématiquement la lignée des familles de logiciels malveillants de l’IoT, et suivre leurs relations, leur évolution et leurs variantes. Nous montrons comment la libre disponibilité du code source a entraîné une grand nombre de variantes, ce qui a souvent un impact sur la classification des systèmes antivirus. Enfin et surtout, nous abordons un problème majeur que nous avons rencontré dans l’analyse des exécutables liés statiquement. En particulier, nous présentons une nouvelle approche pour identifier la frontière entre le code utilisateur et les bibliothèques tierces.