Aplatissement de code

Magazine
Marque
MISC
Numéro
68
Mois de parution
juillet 2013
Domaines


Résumé

Les transformations d'obfuscation de code visent à protéger le code en le rendant le plus difficile possible à comprendre. Nous proposons une obfuscation d'aplatissement du flot de contrôle, qui appartient à la classe très étudiée des transformations d'obfuscation du flot de contrôle. Nous décrivons l'utilité de ce type de transformation et son utilisation dans les outils de protection logicielle. Nous présentons l'implémentation et l'évaluation de sécurité de ce type de protection. Nous discutons en toile de fond de l'utilité de la cryptographie dans le domaine d'application de la protection logicielle.


1. Introduction

1.1 Contextes et méthodes d'attaque

Lorsqu'un logiciel est distribué, il est parfois souhaité que son fonctionnement interne soit protégé. Ce peut être le cas lorsqu'il utilise un algorithme particulier, ou qu'il contient des données sensibles (par exemple, une clé de déchiffrement) que l'on veut protéger. Il est en effet préférable qu'une « simple » analyse du code du logiciel n'expose pas la clé de déchiffrement sur laquelle repose le fonctionnement du logiciel. De même, si l'on veut empêcher la modification du logiciel (c'est-à-dire protéger son intégrité), il est préférable qu'il soit difficilement compréhensible afin de ne pas rendre la tâche de l'attaquant trop facile.

L'obfuscation est une des techniques pouvant être utilisées lorsque l'on souhaite cacher le fonctionnement d'un composant à son utilisateur. Elle permet de transformer le composant original pour en obtenir un second ayant une forme différente et dont la...

Cet article est réservé aux abonnés. Il vous reste 97% à découvrir.
à partir de 21,65€ HT/mois/lecteur pour un accès 5 lecteurs à toute la plateforme
J'en profite


Articles qui pourraient vous intéresser...

Zéro SQLi malgré les développeurs

Magazine
Marque
MISC
Numéro
111
Mois de parution
septembre 2020
Domaines
Résumé

Nous proposons une méthode pour effectuer des requêtes SQL qui garantit l'invulnérabilité aux injections SQL, y compris lorsqu'elle est utilisée par un développeur pressé ou incompétent, contrairement aux requêtes paramétrées. Basée sur l'utilisation d'arbres de syntaxe abstraite, elle permet facilement de construire des requêtes dynamiques et est plus facile à mettre en œuvre qu'un ORM. Nous proposons une bibliothèque Java implémentant nos idées, mais la méthode peut s'appliquer à d'autres langages de programmation et d'autres types de requêtes.

Introduction à QBDI et ses bindings Python

Magazine
Marque
MISC
Numéro
109
Mois de parution
mai 2020
Domaines
Résumé

Le présent article traite de l'outil d'instrumentation dynamique QBDI. C'est un framework de DBI (Dynamic Binary Instrumentation), comparable à d'autres projets publics tels qu’Intel PIN, Valgrind ou encore DynamoRIO. Avant d'entrer dans le vif du sujet, quelques rappels peuvent s'avérer nécessaires…

Introduction au dossier : Python au service de la recherche et l’exploitation de vulnérabilités

Magazine
Marque
MISC
Numéro
109
Mois de parution
mai 2020
Domaines
Résumé

Quand on s’adonne aux plaisirs de la sécurité informatique, il est ce moment où doivent s’aligner les idées et la pratique, c’est-à-dire la production d’une preuve de concept. Et quand il faut écrire du code, le choix du langage s’impose forcément : d’un côté, il y a les contraintes fortes qui nous donnent des possibilités restreintes, et de l’autre il y a nos bas instincts qui prennent la solution qui produira le plus rapidement possible le résultat escompté.