Documente Academic
Documente Profesional
Documente Cultură
2009-2010
Licence Pro
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
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 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 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
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 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
Licence Pro
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
... 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
Licence Pro
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
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 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 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 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 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 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 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
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 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 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
Licence Pro
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
Licence Pro
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
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 protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion
Plan
1 Introduction ` a la protection logicielle 2 Techniques de protection simples
Licence Pro
Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion
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
Exemple
Licence Pro
Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion
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 protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion
Plan
1 Introduction ` a la protection logicielle 2 Techniques de protection simples
Licence Pro
Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion
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 protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion
Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion
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
Licence Pro
Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion
Exemple dobfuscation
Licence Pro
Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion
Autre exemple
Ici le d ebogueur nest m eme plus capable danalyser correctement le code machine
Licence Pro
Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion
Plan
1 Introduction ` a la protection logicielle 2 Techniques de protection simples
Licence Pro
Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion
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 protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion
Code chir e
Code chir e
Licence Pro
Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion
Code dechir e
Code dechir e
Licence Pro
Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion
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
Plan
1 Introduction ` a la protection logicielle 2 Techniques de protection simples
Licence Pro
Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion
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
Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion
Exemple
Licence Pro
Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion
V erications possibles
Licence Pro
Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion
Licence Pro
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 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
Licence Pro
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
Licence Pro
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
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 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
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 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 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
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
Licence Pro
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 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
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 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
Licence Pro
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 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 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
Licence Pro
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
Licence Pro
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 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
Licence Pro
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
Licence Pro
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 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 protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion
Plan
1 Introduction ` a la protection logicielle 2 Techniques de protection simples 3 Techniques avanc ees : les packers 4 Conclusion
Licence Pro
Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion
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
Licence Pro
Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion
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
Licence Pro
Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion
R ecapitulatif
Licence Pro
Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion
Plan
1 Introduction ` a la protection logicielle 2 Techniques de protection simples 3 Techniques avanc ees : les packers 4 Conclusion
Licence Pro
Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion
Protections materielles
Le logiciel est distribu e avec un p eriph erique s ecuris e
Dongle USB, carte ` a puce
Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion
Licence Pro
Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion
Plan
1 Introduction ` a la protection logicielle 2 Techniques de protection simples 3 Techniques avanc ees : les packers 4 Conclusion
Licence Pro
Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc ees : les packers Conclusion
Licence Pro