Thèse soutenue

Evaluation des méthodes d'obscurcissement de binaire

FR  |  
EN
Auteur / Autrice : Matthieu Tofighi Shirazi
Direction : Philippe Elbaz-Vincent
Type : Thèse de doctorat
Discipline(s) : Mathématiques et informatique
Date : Soutenance le 16/12/2019
Etablissement(s) : Université Grenoble Alpes (ComUE)
Ecole(s) doctorale(s) : École doctorale mathématiques, sciences et technologies de l'information, informatique (Grenoble ; 199.-....)
Partenaire(s) de recherche : Laboratoire : Institut Fourier (Grenoble)
Jury : Président / Présidente : Marie-Laure Potet
Examinateurs / Examinatrices : Irina Mariuca Asavoae, Igor Muttik, Sébastien Josse, Guénaël Renault
Rapporteurs / Rapporteuses : Aurélien Francillon, Louis Goubin

Résumé

FR  |  
EN

L'obscurcissement de code est perçu comme une stratégie de gestion de l'information visant à masquer le sens pouvant être tiré d'un logiciel, tout en préservant ses fonctionnalités d'origines.Actuellement, l'obscurcissement est utilisé comme mécanisme de protection de la propriété intellectuelle, mais aussi pour dissimuler les comportements malveillants de certain code binaire.Par conséquent, l'évaluation des méthodes d'obscurcissement est une question ouverte à laquelle il est souvent répondu par des méthodologies de dés-obscurcissement.Le processus de dés-obscurcissement est constitué par des méthodes d’ingénierie inverse qui évaluent la force des protections d'obscurcissement appliquées. Cependant, ces méthodes se concentrent souvent sur des protections spécifiques.Cette thèse porte sur l'évaluation des transformations d'obscurcissement appliquées aux codes binaires. L'objectif est de fournir différentes études et méthodologies afin d'aider les évaluateurs et les rétro-concepteurs durant l'analyse des logiciels obscurcis.Le processus de dés-obscurcissement peut être vu sous différentes approches, telles que la suppression d'une ou plusieurs transformations, la simplification du programme ou encore la collecte d'informations dites « méta-données » à propos du code obscurci.Dans cette thèse, nous contribuons à chaque approche de dés-obscurcissement comme décrit dans les paragraphes suivants.La première contribution consiste en une approche de simplification de programme. Il s'agit d'une méthodologie de dés-obscurcissement basée sur l'équivalence sémantique de code, appelée DoSE. DoSE permet principalement de simplifier le code binaire en vérifiant l'équivalence syntaxique et sémantique de portions d'un code binaire. Cette vérification permet de supprimer les nouvelles transformations d'obscurcissement qui entravent les analyses de dés-obscurcissement de pointe, basées sur l'analyse dynamique et symbolique d'un code.La deuxième contribution consiste en une approche de suppression de transformation d'obscurcissement. Basée sur une méthodologie d'apprentissage automatique et supervisée, notre approche vise à détecter puis supprimer des schémas d'obscurcissement spécifiques, mais largement utilisés, nommé prédicat opaque. À notre connaissance, il s'agit de la première méthodologie d'élimination de transformation d'obscurcissement utilisant des techniques d'apprentissage automatique.La troisième contribution de cette thèse se base sur une méthode de collecte de méta-données du code protégé. En utilisant des techniques avancées d'apprentissage automatique et de raisonnement sémantique, la méthodologie proposée permet aux analystes d'identifier plusieurs couches de transformations d'obscurcissement appliquées au code binaire, ce qui représente une étape importante précédent la suppression de ces protections.Dans cette thèse, nous avons étudié différentes approches de dés-obscurcissement en vue d'une évaluation statique des transformations d'obscurcissement. Nous nous sommes principalement concentrés sur le raisonnement sémantique statique, en le combinant avec des techniques bien connues issues d'autres domaines de recherche, telles que la différenciation binaire et l'apprentissage automatique. Nous avons également étudié et développé plusieurs quadriciels de dés-obscurcissement, un pour chacune des approches suivantes: simplifier le code obscurci, supprimer les transformations d'obscurcissement ou collecter des informations sur les protections appliquées. Nos méthodologies et nos outils ont été évalués sur des logiciels malveillants bien connus et des outils d'obscurcissement mettant en œuvre des transformations d'obscurcissement complexes ainsi que largement utilisées.