Affiner la déobfuscation symbolique et concrète de programmes protégés par des prédicats opaques
Auteur / Autrice : | Alexandre Gonzalvez |
Direction : | Caroline Fontaine, Fabien Dagnat |
Type : | Thèse de doctorat |
Discipline(s) : | Informatique |
Date : | Soutenance le 02/06/2020 |
Etablissement(s) : | Ecole nationale supérieure Mines-Télécom Atlantique Bretagne Pays de la Loire |
Ecole(s) doctorale(s) : | École doctorale Mathématiques et sciences et technologies de l'information et de la communication (Rennes) |
Partenaire(s) de recherche : | Laboratoire : Département lmage et Traitement Information - Laboratoire en sciences et techniques de l'information, de la communication et de la connaissance - Institut de recherche en informatique et systèmes aléatoires (Rennes) - Lab-STICC_IMTA_CID_IRIS |
Jury : | Président / Présidente : Jean-Louis Lanet |
Examinateurs / Examinatrices : Caroline Fontaine, Fabien Dagnat, Pascal Lafourcade, Daniel Le Berre, Sébastien Bardin | |
Rapporteurs / Rapporteuses : Pascal Lafourcade, Daniel Le Berre |
Mots clés
Résumé
Une forte demande existe aujourd’hui pour améliorer les techniques avancées d’obfuscation et de déobfuscation, dans le but d’éviter le vol de propriétés intellectuelles ou de perfectionner la défense face aux attaques en cybersécurité. Les travaux réalisés au cours de cette thèse portent sur la consolidation de la déobfuscation réalisée par des outils d’analyse symbolique et concrète de programmes protégés par des prédicats opaques. Ces outils s’appuient sur des outils d’analyse automatisée de programmes (moteur d’exécution symbolique dynamique) qui utilisent des solveurs de satisfiabilité modulo théorie (solveurs SMT). Nous souhaitons comprendre plus précisément certaines situations pour lesquelles l’analyse de prédicats effectuée par ces outils est mise en échec, pour ensuite pouvoir proposer des solutions pratiques évitant ces scénarios, et les tester dans des cas réels. C’est pourquoi notre travail se concentre sur la compréhension des concepts de raisonnement automatisé dans une théorie décidable et complète, afin de clarifier les mécanismes de capture de l’information. Nos premiers résultats montrent comment un jeu d’instructions machine assembleur (ISA) autorise l’apparition ou non de prédicats opaques. Nous proposons une amélioration de la détection de prédicats opaques à partir du comportement du solveur SMT. Nous proposons une redéfinition des requêtes SMT pour réduire les effets des prédicats opaques. Nous intégrons ces améliorations dans plusieurs outils automatiques tels que KLEE ou Angr, puis les testons sur différents programmes contenant des prédicats opaques.