Formal Approaches for Automatic Deobfuscation and Reverse-engineering of Protected Codes

L’analyse de codes malveillants est un domaine de recherche en pleine expansion de par la criticité des infrastructures touchées et les coûts impliqués de plus en plus élevés. Ces logiciels utilisent fréquemment différentes techniques d’évasion visant à limiter la détection et ralentir les analyses....

Full description

Bibliographic Details
Main Author: David, Robin
Other Authors: Université de Lorraine
Language:en
Published: 2017
Subjects:
Online Access:http://www.theses.fr/2017LORR0013/document
id ndltd-theses.fr-2017LORR0013
record_format oai_dc
spelling ndltd-theses.fr-2017LORR00132019-05-24T03:33:00Z Formal Approaches for Automatic Deobfuscation and Reverse-engineering of Protected Codes Approches formelles de désobfuscation automatique et de rétro-ingénierie de codes protégés Codes malveillants Désobfuscation Méthodes formelles Exécution Symbolique Rétro-Ingénierie Malware Deobfuscation Formal Methods Symbolic Execution Reverse-Engineering 005.8 L’analyse de codes malveillants est un domaine de recherche en pleine expansion de par la criticité des infrastructures touchées et les coûts impliqués de plus en plus élevés. Ces logiciels utilisent fréquemment différentes techniques d’évasion visant à limiter la détection et ralentir les analyses. Parmi celles-ci, l’obfuscation permet de cacher le comportement réel d’un programme. Cette thèse étudie l’utilité de l’Exécution Symbolique Dynamique (DSE) pour la rétro-ingénierie. Tout d’abord, nous proposons deux variantes du DSE plus adaptées aux codes protégés. La première est une redéfinition générique de la phase de calcul de prédicat de chemin basée sur une manipulation flexible des concrétisations et symbolisations tandis que la deuxième se base sur un algorithme d’exécution symbolique arrière borné. Ensuite, nous proposons différentes combinaisons avec d’autres techniques d’analyse statique afin de tirer le meilleur profit de ces algorithmes. Enfin tous ces algorithmes ont été implémentés dans différents outils, Binsec/se, Pinsec et Idasec, puis testés sur différents codes malveillants et packers. Ils ont permis de détecter et contourner avec succès les obfuscations ciblées dans des cas d’utilisations réels tel que X-Tunnel du groupe APT28/Sednit. Malware analysis is a growing research field due to the criticity and variety of assets targeted as well as the increasing implied costs. These softwares frequently use evasion tricks aiming at hindering detection and analysis techniques. Among these, obfuscation intent to hide the program behavior. This thesis studies the potential of Dynamic Symbolic Execution (DSE) for reverse-engineering. First, we propose two variants of DSE algorithms adapted and designed to fit on protected codes. The first is a flexible definition of the DSE path predicate computation based on concretization and symbolization. The second is based on the definition of a backward-bounded symbolic execution algorithm. Then, we show how to combine these techniques with static analysis in order to get the best of them. Finally, these algorithms have been implemented in different tools Binsec/se, Pinsec and Idasec interacting alltogether and tested on several malicious codes and commercial packers. Especially, they have been successfully used to circumvent and remove the obfuscation targeted in real-world malwares like X-Tunnel from the famous APT28/Sednit group. Electronic Thesis or Dissertation Text en http://www.theses.fr/2017LORR0013/document David, Robin 2017-01-06 Université de Lorraine Marion, Jean-Yves Bardin, Sébastien
collection NDLTD
language en
sources NDLTD
topic Codes malveillants
Désobfuscation
Méthodes formelles
Exécution Symbolique
Rétro-Ingénierie
Malware
Deobfuscation
Formal Methods
Symbolic Execution
Reverse-Engineering
005.8
spellingShingle Codes malveillants
Désobfuscation
Méthodes formelles
Exécution Symbolique
Rétro-Ingénierie
Malware
Deobfuscation
Formal Methods
Symbolic Execution
Reverse-Engineering
005.8
David, Robin
Formal Approaches for Automatic Deobfuscation and Reverse-engineering of Protected Codes
description L’analyse de codes malveillants est un domaine de recherche en pleine expansion de par la criticité des infrastructures touchées et les coûts impliqués de plus en plus élevés. Ces logiciels utilisent fréquemment différentes techniques d’évasion visant à limiter la détection et ralentir les analyses. Parmi celles-ci, l’obfuscation permet de cacher le comportement réel d’un programme. Cette thèse étudie l’utilité de l’Exécution Symbolique Dynamique (DSE) pour la rétro-ingénierie. Tout d’abord, nous proposons deux variantes du DSE plus adaptées aux codes protégés. La première est une redéfinition générique de la phase de calcul de prédicat de chemin basée sur une manipulation flexible des concrétisations et symbolisations tandis que la deuxième se base sur un algorithme d’exécution symbolique arrière borné. Ensuite, nous proposons différentes combinaisons avec d’autres techniques d’analyse statique afin de tirer le meilleur profit de ces algorithmes. Enfin tous ces algorithmes ont été implémentés dans différents outils, Binsec/se, Pinsec et Idasec, puis testés sur différents codes malveillants et packers. Ils ont permis de détecter et contourner avec succès les obfuscations ciblées dans des cas d’utilisations réels tel que X-Tunnel du groupe APT28/Sednit. === Malware analysis is a growing research field due to the criticity and variety of assets targeted as well as the increasing implied costs. These softwares frequently use evasion tricks aiming at hindering detection and analysis techniques. Among these, obfuscation intent to hide the program behavior. This thesis studies the potential of Dynamic Symbolic Execution (DSE) for reverse-engineering. First, we propose two variants of DSE algorithms adapted and designed to fit on protected codes. The first is a flexible definition of the DSE path predicate computation based on concretization and symbolization. The second is based on the definition of a backward-bounded symbolic execution algorithm. Then, we show how to combine these techniques with static analysis in order to get the best of them. Finally, these algorithms have been implemented in different tools Binsec/se, Pinsec and Idasec interacting alltogether and tested on several malicious codes and commercial packers. Especially, they have been successfully used to circumvent and remove the obfuscation targeted in real-world malwares like X-Tunnel from the famous APT28/Sednit group.
author2 Université de Lorraine
author_facet Université de Lorraine
David, Robin
author David, Robin
author_sort David, Robin
title Formal Approaches for Automatic Deobfuscation and Reverse-engineering of Protected Codes
title_short Formal Approaches for Automatic Deobfuscation and Reverse-engineering of Protected Codes
title_full Formal Approaches for Automatic Deobfuscation and Reverse-engineering of Protected Codes
title_fullStr Formal Approaches for Automatic Deobfuscation and Reverse-engineering of Protected Codes
title_full_unstemmed Formal Approaches for Automatic Deobfuscation and Reverse-engineering of Protected Codes
title_sort formal approaches for automatic deobfuscation and reverse-engineering of protected codes
publishDate 2017
url http://www.theses.fr/2017LORR0013/document
work_keys_str_mv AT davidrobin formalapproachesforautomaticdeobfuscationandreverseengineeringofprotectedcodes
AT davidrobin approchesformellesdedesobfuscationautomatiqueetderetroingenieriedecodesproteges
_version_ 1719192591583412224