Vous êtes sur la page 1sur 69

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

Protection logicielle et reverse engineering


Licence Pro
Renaud Tabary: renaud.tabary@labri.fr

2009-2010

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

Plan
1 Introduction ` a la protection logicielle

Quest-ce que le reverse engineering ? Les outils pour le reverse engineering Les enjeux de la protection logicielle 2 Techniques de protection simples Le num ero de s erie Obfuscation de code Chirement de code V erications furtives 3 Techniques avanc ees : les packers D enitions et avantages des packers Protections contre le reverse engineering Fusion avec lapplication Virtualisation 4 Conclusion Licence Pro Introduction ` a la s ecurit e informatique R ecapitulatif

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

Quest-ce que le reverse engineering ? Les outils pour le reverse engineering Les enjeux de la protection logicielle

Plan

1 Introduction ` a la protection logicielle

Quest-ce que le reverse engineering ? Les outils pour le reverse engineering Les enjeux de la protection logicielle
2 Techniques de protection simples 3 Techniques avanc ees : les packers 4 Conclusion

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

Quest-ce que le reverse engineering ? Les outils pour le reverse engineering Les enjeux de la protection logicielle

Le reverse engineering

Denition Le reverse engineering, traduit en fran cais par r etro-ing enierie, est lactivit e qui consiste ` a etudier un objet pour en d eterminer le fonctionnement interne ou sa m ethode de fabrication.

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

Quest-ce que le reverse engineering ? Les outils pour le reverse engineering Les enjeux de la protection logicielle

Objectifs du RE

Plusieurs objectifs peuvent motiver une ing enierie inverse :


Comprendre le fonctionnement de cet objet, pour etre en mesure de lutiliser correctement ou de le modier Fabriquer une copie de cet objet alors quon ne peut en obtenir ni les plans ni les m ethodes de fabrication
Activit e g en eralement ill egale sur un plan juridique

Cr eer un nouvel objet ayant des fonctionnalit es identiques ` a lobjet de d epart, sans violer de brevet Analyser un objet produit par un concurrent, soit dans le cadre dune activit e de veille concurrentielle soit pour d etecter de potentielles violations de brevets

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

Quest-ce que le reverse engineering ? Les outils pour le reverse engineering Les enjeux de la protection logicielle

Applications l egales du reverse engineering


Le reverse engineering a le plus souvent une application l egale Etude dun protocole r eseau pour son portage sur dautres plateformes (exemple : samba) Etude dun format de chier pour son portage sur dautres plateformes (exemple : OpenOce et les .doc) Veille technologique : v erier que vos concurrents ne violent pas vos brevets Etude de malwares : comprendre les virus/vers/rootkits pour mieux sen d efendre Recherche de vuln erabilit e dans un logiciel
L egal pour les entreprises agr ement ees (exemple Guillermito)

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

Quest-ce que le reverse engineering ? Les outils pour le reverse engineering Les enjeux de la protection logicielle

Applications ill egales

... mais est egalement utilis e` a des ns ill egales Espionnage industriel
Vol dalgorithmes ou m eme de logiciels dune entreprise concurrente

Piratage de logiciel
1 2 3

Etude du logiciel via Reverse Engineering Localisation des moyens de protection


V erication du num ero de s erie, protection anti-copie, ...

Publication sur internetdun patch supprimant les protections

Etude des vuln erabilit es dun logiciel en vue dune exploitation

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

Quest-ce que le reverse engineering ? Les outils pour le reverse engineering Les enjeux de la protection logicielle

Plan

1 Introduction ` a la protection logicielle

Quest-ce que le reverse engineering ? Les outils pour le reverse engineering Les enjeux de la protection logicielle
2 Techniques de protection simples 3 Techniques avanc ees : les packers 4 Conclusion

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

Quest-ce que le reverse engineering ? Les outils pour le reverse engineering Les enjeux de la protection logicielle

Analyse statique

Denition Lanalyse statique dun programme est un processus permettant d evaluer un programme ou une partie dun programme en se basant sur sa forme, sa structure, son contenu ou sa documentation. A opposer ` a lanalyse dynamique. Reviens ` a examiner le programme comme si on lisait un chier texte normal. On ne lex ecute pas.

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

Quest-ce que le reverse engineering ? Les outils pour le reverse engineering Les enjeux de la protection logicielle

Les d esassembleurs
Outil le plus souvent utilis e pour lanalyse statique semi-automatis ee Un d esassembleur permet ` a partir dun ex ecutable binaire, dobtenir son code en langage machine. Le code obtenu ne contient bien sur plus aucun commentaire ni labels Les d esassembleurs les plus performants arrivent ` a retrouver le type des variables, permettent de les renommer et, si ils le peuvent, g en` erent automatiquement un nom ` a partir de lutilisation qui en est fait Le d esassembleur le plus utilis e et le plus g en eral en environnement win32 est IDA. Il existe dautres d esassembleur qui ciblent des ex ecutables g en er es par des compilateurs pr ecis mais nous ne les aborderons pas dans ce cour
Licence Pro Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

Quest-ce que le reverse engineering ? Les outils pour le reverse engineering Les enjeux de la protection logicielle

IDA

IDA est un d esassembleur professionnel tr` es puissant qui permet ` a lutilisateur de sapproprier le code dune application gr ace ` a lanalyse tr` es ne quil fait du code, de lutilisation des registres et de la pile Cette analyse lui permet disoler les fonctions, leurs relations, leurs variables locales etc. Certains plugins (tr` es chers) permettent m eme dans certains cas de retrouver le code source originel du programme analys e

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

Quest-ce que le reverse engineering ? Les outils pour le reverse engineering Les enjeux de la protection logicielle

Exemple IDA

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

Quest-ce que le reverse engineering ? Les outils pour le reverse engineering Les enjeux de la protection logicielle

Analyse dynamique

Denition Lanalyse dynamique dun programme est le processus permettant d evaluer un programme ou une partie dun programme en se basant sur son comportement ` a lex ecution

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

Quest-ce que le reverse engineering ? Les outils pour le reverse engineering Les enjeux de la protection logicielle

Les debogueurs
Un d ebogueur permet, comme son nom lindique, de d eboguer un programme, cest-` a-dire de suivre son d eroulement pas ` a pas, de contr oler son ex ecution gr ace ` a des points darr et, la possibilit e de modier le contenu des registres, de la m emoire etc. Les d ebogueurs sont plus intrusifs que les d esassembleurs comme IDA. Ils permettent n eanmoins de mieux analyser le programme, etant donn e que lon observe son comportement in vivo Un avantage est egalement la possibilit e de modier le programme au cours de son ex ecution (exemple : ne pas ex ecuter une routine de v erication de license) Lors des TPs, nous utiliserons OllyDbg, un debogueur tr` es utilis e et gratuit
Licence Pro Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

Quest-ce que le reverse engineering ? Les outils pour le reverse engineering Les enjeux de la protection logicielle

OllyDbg

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

Quest-ce que le reverse engineering ? Les outils pour le reverse engineering Les enjeux de la protection logicielle

Plan

1 Introduction ` a la protection logicielle

Quest-ce que le reverse engineering ? Les outils pour le reverse engineering Les enjeux de la protection logicielle
2 Techniques de protection simples 3 Techniques avanc ees : les packers 4 Conclusion

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

Quest-ce que le reverse engineering ? Les outils pour le reverse engineering Les enjeux de la protection logicielle

Pourquoi prot eger son logiciel ?

Les d esassembleurs et les d ebogueurs permettent d etudier un ex ecutable sans poss eder sa source Prot eger les logiciels dune entreprise est alors indispensable
Pour eviter lespionnage industriel
Perte de leadership par exemple

Pour ne pas quil soit pirat e


Perte de revenu pour lentreprise

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

Quest-ce que le reverse engineering ? Les outils pour le reverse engineering Les enjeux de la protection logicielle

Le co ut du piratage en France
Le co ut du piratage dans le monde / en France : Ann ee 2003 2004 2005 2006 2007 Taux de piratage 36%/45% 35%/45% 35%/47% 35%/45% 38%/42% Manque ` a gagner en M$ 28 803 / 2 311 32 778 / 2 928 34 482 / 3 191 39 698 / 2 676 47 809 / 2 601

Figure: Source : BSA and IDC Global Software Piracy Study

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

Quest-ce que le reverse engineering ? Les outils pour le reverse engineering Les enjeux de la protection logicielle

Comment prot eger son logiciel ?


Juridiquement
Tous les logiciels sont prot eg es par le droit dauteur D eposer un brevet pour une technologie innovante

En bloquant ou freinant le piratage du logiciel


En obfuscant le code binaire du programme En d etectant et en bloquant les tentatives de reverse engineering du logiciel En utilisant des mesures pr eventives (Version de d emo incompl` etes, v erication ` a distance du num ero de license, ...) En utilisant des outils de protection professionnels

En utilisant des mesures punitives


Watermarking, ou comment retrouver lorigine dun logiciel pirat e Blacklisting des licenses de logiciels pirat es Recours en justice
Licence Pro Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

Quest-ce que le reverse engineering ? Les outils pour le reverse engineering Les enjeux de la protection logicielle

Objectifs de ce cours

Le piratage logiciel est une grande nuisance pour lentreprise La faute en revient souvent aux d eveloppeurs :
Qui sous-estiment le probl` eme pos e par la r etro-ing enierie Qui essayent de prot eger eux-m emes leur application Qui utilisent mal les protections commerciales

Objectifs de ce cours
Introduction ` a la protection logicielle et au reverse engineering

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

Le num ero de s erie Obfuscation de code Chirement de code V erications furtives

Plan
1 Introduction ` a la protection logicielle 2 Techniques de protection simples

Le num ero de s erie Obfuscation de code Chirement de code V erications furtives


3 Techniques avanc ees : les packers 4 Conclusion

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

Le num ero de s erie Obfuscation de code Chirement de code V erications furtives

Protection par num ero de s erie


La protection la plus intuitive pour prot eger un logiciel est la v erication dun num ero de s erie
Si celui-ci est valide, le logiciel fonctionne Si il est invalide, le logiciel ne d emarrera pas ou sera brid e

Atouts
Tr` es simple ` a impl ementer (if (num serie ! = 1234) exit ();) Nombre dalgorithmes de v erication du num ero de s erie inni Possibilit e de v erication du num ero sur internet

Inconv enients
Une simple analyse statique permet parfois de retrouver le num ero de s erie Il est toujours possible de ne pas ex ecuter la routine de v erication
Licence Pro Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

Le num ero de s erie Obfuscation de code Chirement de code V erications furtives

Exemple

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

Le num ero de s erie Obfuscation de code Chirement de code V erications furtives

Comment pallier ` a ces d efauts ?

D efauts de cette m ethode


Toujours possible de d esassembler et analyser la routine de v erication Possible de modier lapplication pour fausser la v erication

Solutions
Obfusquer le code machine de la routine v erication Chirement du code machine de la routine v erication Utilisation dalgorithmes asym etriques

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

Le num ero de s erie Obfuscation de code Chirement de code V erications furtives

Plan
1 Introduction ` a la protection logicielle 2 Techniques de protection simples

Le num ero de s erie Obfuscation de code Chirement de code V erications furtives


3 Techniques avanc ees : les packers 4 Conclusion

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

Le num ero de s erie Obfuscation de code Chirement de code V erications furtives

Lobfuscation

Lobfuscation a pour but de par lhomme dune application incompr ehensible directement par lhomme Le code devra etre trait e avant de pouvoir etre analys e et si lobfuscation est bien faite, la programmation d ?un outil qui eliminera enti` erement et automatiquement lobfuscation sera quasi impossible En th eorie cependant, il est impossible dobfusquer parfaitement un programme (Barak)

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

Le num ero de s erie Obfuscation de code Chirement de code V erications furtives

Di erentes sortes dobfuscations


Rendre le code le moins clair possible, utiliser des moyens d etourn es pour arriver au m eme r esultat : Exemple var 1 = var 2 + var 3 var 1 = (var 1 + var 2 const + var 3 const var 1)/const Insertion de code inutile, ou code mort Exemple var 1+ = var 2[. . . ]var 1 = var 2 if(TRUE) {...} else {...} Obfusquer le ot de contr ole, ajout de sauts inutiles, appels de fonctions inutils, m elanger les instructions
Licence Pro Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

Le num ero de s erie Obfuscation de code Chirement de code V erications furtives

Quoi obfusquer ?

Souvent, on preferera obfusquer le code machine dun programme (cest ce que voit le reverse engineerer) plut ot quobfusquer son code source
Obfusquer le code source nuit ` a la maintenance Le compilateur eectuera de toute mani` ere des optimisations

Il ne faut pas obfusquer tout le programme


Perte de performance

Seulement les fonctions critiques


V erication du num ero de s eries Algorithmes ` a forte valeur ajout ee

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

Le num ero de s erie Obfuscation de code Chirement de code V erications furtives

Exemple dobfuscation

Obfuscation du code mov al, byte ptr [edi]

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

Le num ero de s erie Obfuscation de code Chirement de code V erications furtives

Autre exemple

Ici le d ebogueur nest m eme plus capable danalyser correctement le code machine

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

Le num ero de s erie Obfuscation de code Chirement de code V erications furtives

Plan
1 Introduction ` a la protection logicielle 2 Techniques de protection simples

Le num ero de s erie Obfuscation de code Chirement de code V erications furtives


3 Techniques avanc ees : les packers 4 Conclusion

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

Le num ero de s erie Obfuscation de code Chirement de code V erications furtives

Le chirement de code

En assembleur, le code peut etre manipul e comme des donn ees Le code sensible de lapplication est stock e chir e sur le disque dur
Il appara t chir e lors de lanalyse statique

A lex ecution seulement, le code sensible est d echir e, avant d etre ex ecut e cf. exemple au tableau Pour compliquer la t ache, la routine de d echirement est souvent obfusqu ee

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

Le num ero de s erie Obfuscation de code Chirement de code V erications furtives

Code chir e

Code chir e

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

Le num ero de s erie Obfuscation de code Chirement de code V erications furtives

Code dechir e

Code dechir e

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

Le num ero de s erie Obfuscation de code Chirement de code V erications furtives

Avantages/inconv enients
Avantages :
Les routines importantes du programme napparaissent pas en clair avant d etre ex ecut ee Rend beaucoup plus dicile lanalyse statique Associ e` a lobfuscation, souvent ecace contre les crackeurs amateurs
Certaines routines de d echirement, une fois obfusqu ee, font en eet plusieurs Mo

Inconv enients
Lanalyse dynamique est toujours possible
A condition de savoir o` u sarr eter pour regarder (par exemple, juste apr` es le d echirement des routines importantes)

Il est toujours possible denregistrer le programme une fois que toutes les routines ont et e d echir ees (dumping )
Licence Pro Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

Le num ero de s erie Obfuscation de code Chirement de code V erications furtives

Plan
1 Introduction ` a la protection logicielle 2 Techniques de protection simples

Le num ero de s erie Obfuscation de code Chirement de code V erications furtives


3 Techniques avanc ees : les packers 4 Conclusion

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

Le num ero de s erie Obfuscation de code Chirement de code V erications furtives

V erications furtives
Le debogage est surement le processus de reverse engineering le plus puissant Il est cependant un peu intrusif, et il est donc possible de d etecter dans un programme si lon est en train d etre debogu e La plupart des protections embarquent donc des tests anti-debogage :
Si aucun debogeur nest d etect e, le programme se d eroule normalement Si un d ebogeur (ou toute modication du programme) est d etect e, le programme agira dune mani` ere erronn ee

Lid ee est de modier le programme de la mani` ere la plus subtile possible


Le cracker se rendra compte que son piratage du logiciel na et e d etect e que le plus tard possible ... et devra donc recommencer depuis le d ebut
Licence Pro Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

Le num ero de s erie Obfuscation de code Chirement de code V erications furtives

Exemple

Modication furtive (Vietcong)

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

Le num ero de s erie Obfuscation de code Chirement de code V erications furtives

V erications possibles

V erication dint egrit e du code


D etecte les modications (patch) du logiciel

Appels dAPIs sp ecialis ee


CheckRemoteDebugger, IsDebuggerPresent, etc

V erication des temps dex ecution


Un debogeur est toujours plus lent que lex ecution simple du programme

Induire le d ebogeur en erreur


Eacement des points darret, exceptions multiples, multi-threading, etc.

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

Le num ero de s erie Obfuscation de code Chirement de code V erications furtives

Les protections maison


La plupart des logiciels amateurs ne sont pas prot eg es, ou alors par un simple num ero de s erie Quelque fois des protections plus sophistiqu ees sont appliqu ees (chirement, obfuscation) Dans tous les cas, ce sont souvent des protection triviales, qui ne posent aucun frein ` a un pirate comp etent Cest pourquoi prot eger soi-m eme son logiciel est souvent une mauvaise id ee Pour le milieu proferssionnel, mieux vaut utiliser des solutions de protection existantes

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

D enitions et avantages des packers Protections contre le reverse engineering Fusion avec lapplication Virtualisation

Plan
1 Introduction ` a la protection logicielle 2 Techniques de protection simples 3 Techniques avanc ees : les packers

D enitions et avantages des packers Protections contre le reverse engineering Fusion avec lapplication Virtualisation
4 Conclusion

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

D enitions et avantages des packers Protections contre le reverse engineering Fusion avec lapplication Virtualisation

Quest-ce quun packer ?


Cest un logiciel charg e de prot eger votre programme Il sins` ere dans votre logiciel pour
Prot eger le logiciel contre le reverse engineering Faire en sorte que si la protection est enlev ee, le logiciel devient inutilisable Ajouter un m ecanisme de v erication de license Parfois compresser le programme (dou le nom de packer)

De nombreuses solutions existent


Themida StarForce MCFACT AsPro, etc.

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

D enitions et avantages des packers Protections contre le reverse engineering Fusion avec lapplication Virtualisation

Quest-ce quun packer ?

Logiciel de protection logicielle (packer ) :

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

D enitions et avantages des packers Protections contre le reverse engineering Fusion avec lapplication Virtualisation

Comment est prot eg ee votre application

Le code de votre programme est chir e La routine de d echirement est situ ee dans le packer
Packer qui contient les routines de validation de license

Pour pirater le programme, il faut donc neutraliser le packer (on parle dunpacking ) Le code du packer est quant ` a lui d evelopp e par des experts en s ecurit e
Extr emement prot eg e (chirement, obfuscation de qualit e etc.) Rebute la plupart des crackeurs amateurs

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

D enitions et avantages des packers Protections contre le reverse engineering Fusion avec lapplication Virtualisation

Avantage des packers professionnel

Ils sont techniquement plus aboutis que les protections maisons


Utilisation de drivers de protection Chirement, obfuscation, v erication du num ero de s erie sur internet, la totale

Plus ables Certaines ores sont tr` es pointues, et se basent sur des mat eriels quil est tr` es d ur de reverser
Dongle USB, carte ` a puce exemple MCFACT (Cubase) : la protection a tenu plus dun an

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

D enitions et avantages des packers Protections contre le reverse engineering Fusion avec lapplication Virtualisation

Plan
1 Introduction ` a la protection logicielle 2 Techniques de protection simples 3 Techniques avanc ees : les packers

D enitions et avantages des packers Protections contre le reverse engineering Fusion avec lapplication Virtualisation
4 Conclusion

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

D enitions et avantages des packers Protections contre le reverse engineering Fusion avec lapplication Virtualisation

Mesures logicielles
Anti-desassembleurs
Le plus ecace restant le chirement

Anti-debogeurs
Peuvent cibler un ou plusieurs debogueurs Il est cependant toujours possible ` a un cracker averti de els eviter

Obfuscation ` a outrance Utilisation de drivers noyau


Les routines de v erication sont situ ees dans un driver windows Il est tr` es dicle danalyser un driver blind e

Utilisation de p eriph eriques s ecuris es (ex : carte ` a puce)


Ces p eriph eriques sont prot eg es physiquement
Licence Pro Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

D enitions et avantages des packers Protections contre le reverse engineering Fusion avec lapplication Virtualisation

Un anti-debugeur

Anti-d ebogueur exploitant une faille de OllyDBG :

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

D enitions et avantages des packers Protections contre le reverse engineering Fusion avec lapplication Virtualisation

Plan
1 Introduction ` a la protection logicielle 2 Techniques de protection simples 3 Techniques avanc ees : les packers

D enitions et avantages des packers Protections contre le reverse engineering Fusion avec lapplication Virtualisation
4 Conclusion

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

D enitions et avantages des packers Protections contre le reverse engineering Fusion avec lapplication Virtualisation

Fusion avec lapplication

M eme si la routine de v erication de license est extr emement prot eg ee au sein du packer ... .. il y a toujours le risque quelle soit supprim ee tout bonnement Aussi les packers professionnels se doivent de fusionner avec lapplication prot eg ee
Si le packer est supprim e ou modi e, le programme sera inutilisable Le plus souvent, ce sont des v erications furtives

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

D enitions et avantages des packers Protections contre le reverse engineering Fusion avec lapplication Virtualisation

Exemple : les triggers de SecuROM


SecuROM est une packer utilis e dans la protection des jeux vid eos, il a beaucoup fait parler de lui en 2002 avec une nouvelle forme de protection anti-cracking : les triggers Les triggers sont une fonctionnalit e oerte par SecuROM qui permet aux d eveloppeurs dutiliser les APIs Windows pour r ealiser des v erications furtives du code pour sassurer que la protection du jeux na pas et e enlev ee Certains appels aux API windows dans lapplication prot eg ee sont redirig es vers le packer
Si un argument sp ecial est donn e, le packer renvoit une valeur pr ed enie Sinon, il appelle lAPI windows qui a et e d etourn ee

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

D enitions et avantages des packers Protections contre le reverse engineering Fusion avec lapplication Virtualisation

Redirection dAPIs

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

D enitions et avantages des packers Protections contre le reverse engineering Fusion avec lapplication Virtualisation

Pourquoi ca marche
Si un cracker veut supprimer la protection (le packer), il va devoir rerediriger les appels aux APIs qui ont et e d etourn es Cest facile, sauf que :
Lorsque lAPI windows sera appel ee avec largument sp ecial ... .. la valeur sp eciale ne sera pas retourn ee (c etait le code du packer qui sen chargeait)

Le programmeur de lapplication quant ` a lui, eectue des tests sur la valeur de retour Si la valeur de retour nest pas celle attendue, il sait que le packeur a et e supprim e
V erications furtives

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

D enitions et avantages des packers Protections contre le reverse engineering Fusion avec lapplication Virtualisation

Exemple

Exemple dapplication (mal) d eprot eg ee

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

D enitions et avantages des packers Protections contre le reverse engineering Fusion avec lapplication Virtualisation

Exemple

Exemple de jeux (mal) d eprot eg e (Vietcong) : v erication furtive

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

D enitions et avantages des packers Protections contre le reverse engineering Fusion avec lapplication Virtualisation

Plan
1 Introduction ` a la protection logicielle 2 Techniques de protection simples 3 Techniques avanc ees : les packers

D enitions et avantages des packers Protections contre le reverse engineering Fusion avec lapplication Virtualisation
4 Conclusion

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

D enitions et avantages des packers Protections contre le reverse engineering Fusion avec lapplication Virtualisation

VMProtect : Virtualisation de code


VMProtect va virtualiser le code de lapplication cest-` a-dire cr eer un processeur virtuel logiciel qui interpr etera les instructions qui auront et e transform ees au depart Le code ainsi transform e ne pourra pas etre d esassembl e par les d esassembleur x86 et ne pourra pas etre d ebogu e directement La virtualisation est utilis ee dans toutes les protections r ecentes de qualit e Elle bloque le cracker qui devra etudier le processeur logiciel et cr eer un outils qui fera la relation instruction du processeur logiciel instruction x86

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

D enitions et avantages des packers Protections contre le reverse engineering Fusion avec lapplication Virtualisation

Fonctionnement dun programme normal

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

D enitions et avantages des packers Protections contre le reverse engineering Fusion avec lapplication Virtualisation

Un programme Virtualis e

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

D enitions et avantages des packers Protections contre le reverse engineering Fusion avec lapplication Virtualisation

Au nal
Il devient tr` es dicile ` a un pirate de reverser une application prot eg ee par un packer professionnel
Egalement tr` es couteux pour les protections mat erielles

La protection parfaite nexiste pas (cest th eoriquement impossible) Le but est de d ecourager les pirates Et de les ralentir
... au moins jusqu` a la prochaine version du logiciel

Certaines protections commerciales y arrivent tr` es bien (le record est dun an)

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

R ecapitulatif Le pr esent/futur Le m etier de reverse engineer

Plan

1 Introduction ` a la protection logicielle 2 Techniques de protection simples 3 Techniques avanc ees : les packers 4 Conclusion

R ecapitulatif Le pr esent/futur Le m etier de reverse engineer

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

R ecapitulatif Le pr esent/futur Le m etier de reverse engineer

R ecapitulatif

Le reverse engineering logiciel est lart danalyser et de modier des programmes sans en poss eder la source Lobjectif de la protection logicielle est de freiner le processus de piratage
Analyse par d esassemblage ou d ebogage Modication du binaire pour supprimer les routines anti-copie

Tout logiciel commercial se doit d etre prot eg e

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

R ecapitulatif Le pr esent/futur Le m etier de reverse engineer

R ecapitulatif

D evelopper sois-m emes une protection, n ecessite beaucoup de temps et dinvestissement, mais est tr` es enrichissant
Nous avons vu en cours et en TP les protections les plus simples et les plus r epandues : num ero de s erie, chirement, obfuscation, v erications furtives

N eanmoins, lutilisation de protections professionnelles est recomand ee


Utilisez toutes les options quelle vous ore Nh esitez pas ` a vous renseigner sur son ecacit e, ` a chercher des outils, des techniques permettant de le contourner Nh esitez pas ` a rajouter dautres v erications par vous-m eme

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

R ecapitulatif Le pr esent/futur Le m etier de reverse engineer

R ecapitulatif

Il est toujours n ecessaire dobserver une bonne politique de s ecurit e


Evitez de distribuer des versions d evaluation 100% fonctionnelles, m eme prot eg ees Garder un chier des clients Utilisez les options permettant de calculer le num ero de s erie ` a partir dune variable mat erielle (adresse MAC, num ero de s erie du disque dur ...) ?

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

R ecapitulatif Le pr esent/futur Le m etier de reverse engineer

Plan

1 Introduction ` a la protection logicielle 2 Techniques de protection simples 3 Techniques avanc ees : les packers 4 Conclusion

R ecapitulatif Le pr esent/futur Le m etier de reverse engineer

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

R ecapitulatif Le pr esent/futur Le m etier de reverse engineer

Protections materielles
Le logiciel est distribu e avec un p eriph erique s ecuris e
Dongle USB, carte ` a puce

Une partie du programme est ecrite dans le p eriph erique s ecuris e


Une partie importante du programme

Le logiciel est alors d ependant du p eriph erique s ecuris e


Pour chaque version du programme distribu e, une seul p eriph erique s ecuris e correspond Le p eriph erique s ecuris e joue le role de license

Le p eriph erique s ecuris e est :


dicile ` a cloner dicile ` a analyser/lire Gr ace ` a des moyens physiques
Licence Pro Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

R ecapitulatif Le pr esent/futur Le m etier de reverse engineer

Utilisation dun p eriph erique s ecuris e

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

R ecapitulatif Le pr esent/futur Le m etier de reverse engineer

Plan

1 Introduction ` a la protection logicielle 2 Techniques de protection simples 3 Techniques avanc ees : les packers 4 Conclusion

R ecapitulatif Le pr esent/futur Le m etier de reverse engineer

Licence Pro

Introduction ` a la s ecurit e informatique

Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion

R ecapitulatif Le pr esent/futur Le m etier de reverse engineer

Le m etier de Reverse Engineer


Il consiste ` a etudier des ex ecutables de toutes sortes, des protection logicielles, des malwares, des formats etc. Le reverse engineer d eveloppe des outils, des protections et fait de la recherche Les salaires peuvent varier entre 50 000 euros et 100 000 euros brut par an. Mais une personne faisant seulement du reverse aura en g en eral un salaire moins elev e quune personne faisant du reverse , ainsi que de la recherche et du d eveloppement En France, les postes de reverse engineer sont rares et souvent moins bien pay e que dans les autres pays

Licence Pro

Introduction ` a la s ecurit e informatique