Thèse soutenue

Analyse de codes auto-modifiants pour la sécurité logicielle

FR  |  
EN
Auteur / Autrice : Daniel Reynaud
Direction : Jean-Yves Marion
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance le 15/10/2010
Etablissement(s) : Vandoeuvre-les-Nancy, INPL
Ecole(s) doctorale(s) : École doctorale IAEM Lorraine - Informatique, Automatique, Électronique - Électrotechnique, Mathématiques de Lorraine
Partenaire(s) de recherche : Laboratoire : Laboratoire lorrain de recherche en informatique et ses applications
Jury : Président / Présidente : Hélène Kirchner
Examinateurs / Examinatrices : Jean-Yves Marion, Hélène Kirchner, Marc Dacier, Marc Pouzet, José M. Fernandez, Fred Raynal
Rapporteurs / Rapporteuses : Marc Dacier, Marc Pouzet

Résumé

FR  |  
EN

Les programmes auto-modifiants fonctionnent de manière singulière car ils sont capables de réécrire leur propre code en cours d'exécution. Absents des modèles de calcul théoriques, ils sont pourtant omniprésents dans les ordinateurs et les systèmes d'exploitations actuels. Ils sont en effet utilisés par les chargeurs d'amorçages, pour la compilation à la volée ou encore l'optimisation dynamique de code. Ils sont également omniprésents dans les programmes malveillants, dont les auteurs ont bien compris qu'ils constituaient des objets complexes à analyser. Ils sont également virtuellement présents dans tous les autres programmes mais de manière non-intentionnelle. En effet, on peut voir certaines classes de vulnérabilités, par exemple les failles par débordement de tampon, comme la possibilité d'exécuter accidentellement des données -- ce qui est un comportement caractéristique des programmes auto-modifiants.Au cours de cette thèse, nous avons proposé un modèle théorique permettant de caractériser un certain nombre de comportements auto-modifiants avancés. Nous avons également mis au point un prototype, TraceSurfer, permettant de détecter efficacement ces comportements à partir de l'analyse de traces et de les visualiser sous forme de graphes d'auto-référence. Enfin, nous avons validé par l'expérience à la fois le modèle théorique et l'outil en les testant sur un grand nombre de programmes malveillants