Le jargon en cybersécurité

Obfuscation

Ce sont toutes les techniques que peut mettre en place un programme pour gêner sa rétro-ingénierie.

On a dit que le reverse engineering était particulièrement compliqué. Et bé en fait c’est encore pire que ça, car ceux qui craignent qu’on fasse du reverse sur leur binaire s’emploient à complexifier inutilement leur programme pour le rendre incompréhensible.

Donc vous pouvez passer 10 minutes à essayer de comprendre ce que fait une portion du langage assembleur, alors qu’en fait elle fait juste un truc trivial. Par exemple, voici un algorithme obfusqué qui en fait réalise seulement l’addition de a et de b :

a = 5
b = 6
c = 17
d = (189933838988003 / 37889609) / 9667699
e = a - c
f = b + d + e
g = a - d
resultat = f - e + g

L’obfuscation peut prendre plusieurs formes : faire des tâches inutiles (du «code mort»), faire des tâches simples de manière compliquée, chiffrer des partie du code pour qu’on ne voit pas directement ce qui sera exécuté, etc.

Qui s’amuse à faire de l’obfuscation ? Principalement deux populations.

  1. Les éditeurs qui veulent éviter qu’on pirate leur programme (éviter qu’un concurrent leur pique leur savoir faire ou bien qu’un petit jeune utilise leur programme sans payer en faisant sauter la partie vérification de la licence).
  2. Les pirates qui veulent éviter que leurs maliciels (malwares) soient détectés par l’antivirus. Et là on peut entendre pirate dans le sens «groupe cybercriminel» ou «agence de renseignement étatique». C’est la même façon de procéder

Par contre, il y a une règle indépassable qui est à l’avantage de ceux qui font du reverse : on ne peut pas empêcher quelqu’un qui possède un binaire de l’analyser. Tout ce qu’on peut faire c’est rendre ça le plus difficile et pénible possible.
Par exemple, les équipes de développeurs de Photoshop expliquaient que leur but c’est que les reversers («riverseurs», ceux qui font du reverse) passent au moins un an avant d’arriver à casser le programme (c’est-à-dire à faire sauter la licence). Car, après un an, ils sortent une nouvelle version du programme, donc c’est moins de pertes financières si l’ancienne version est piratée.

Une règle qui par contre est à l’avantage des obfuscateurs, c’est qu’il est irréalisable (en tout cas actuellement) de faire du reverse engineering de manière entièrement automatisée.
Donc les antivirus ne peuvent pas arrêter 100% des programmes malveillants qui sont obfusqués.

← Terme précédentSommaireTerme suivant →