Contrôle sûr de chaînes d'obfuscation logicielle - TEL - Thèses en ligne
Thèse Année : 2020

Safe control of obfuscation toolchains

Contrôle sûr de chaînes d'obfuscation logicielle

Résumé

Code obfuscation is a software protection technique that is designed to make reverse engineering a program more challenging, in order to protect secrets, intellectual property, or to complicate detection (malware). The obfuscation is generally carried out using a set of transformations on the target program. Obfuscation is also often used in conjunction with other software protection techniques, such as watermarking or tamperproofing. These transformations are usually integrated into code transformations applied during the compilation process, such as optimisations. However, the application of obfuscation transformations requires more preconditions on the code and more precision in the application to provide an acceptable performance/safety trade-off, making traditional compilers unsuitable for obfuscation. To address these problems, this thesis presents SCOL, a language that is able to describe the process of compiling a program while considering the specific problems of obfuscation. This allows you to describe compilation chains with a high level of abstraction, while allowing a high degree of accuracy on the composition of the transformations. The language has a type system which checks the correctness of the compilation chain. That means that the composition of transformations provides the targeted level of protection and coverage.
L’obfuscation de code est une technique de protection de programme qui consiste à rendre la rétro-ingénierie d’un programme plus difficile, afin de protéger des secrets, de la propriété intellectuelle, ou de compliquer la détection (malware). L’obfuscation est généralement effectuée à l’aide d’un ensemble de transformations sur le programme cible. L’obfuscation est également souvent utilisée en conjonction avec d’autres techniques de protection de programmes telles que le watermarking ou le tamperproofing. Ces transformations sont généralement intégrées dans les transformations de code appliquées pendant le processus de compilation, comme les optimisations. Cependant, appliquer des transformations d’obfuscation demande plus de préconditions sur le code et de précisions dans l’application pour offrir un compromis performance/sécurité acceptable ce qui rend les compilateurs traditionnels peu adaptés à l’obfuscation. Pour répondre à ces problèmes, cette thèse propose SCOL, un langage qui permet de décrire le processus de compilation d’un programme en prenant en compte les problématiques spécifiques à l’obfuscation. Celui-ci permet de décrire des chaînes de compilation avec un haut niveau d’abstraction, tout en permettant une précision élevée sur la composition des transformations. Le langage possède un système de types qui permet de vérifier la cohérence de la chaîne de compilation. C’est-à-dire que vérifier que la composition des transformations permet d’obtenir le niveau de protection et de couverture visé.
Fichier principal
Vignette du fichier
2020IMTA0223_Szlifierski-Nicolas.pdf (1.33 Mo) Télécharger le fichier
Origine Version validée par le jury (STAR)

Dates et versions

tel-03143040 , version 1 (16-02-2021)

Identifiants

  • HAL Id : tel-03143040 , version 1

Citer

Nicolas Szlifierski. Contrôle sûr de chaînes d'obfuscation logicielle. Langage de programmation [cs.PL]. Ecole nationale supérieure Mines-Télécom Atlantique, 2020. Français. ⟨NNT : 2020IMTA0223⟩. ⟨tel-03143040⟩
239 Consultations
431 Téléchargements

Partager

More