Introduction ` a la protection logicielle Techniques de protection simples Tech

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 Qu’est-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 Chiffrement de code V´ erifications furtives 3 Techniques avanc´ ees : les packers D´ efinitions et avantages des packers Protections contre le reverse engineering Fusion avec l’application Virtualisation 4 Conclusion R´ ecapitulatif Licence Pro Introduction ` a la s´ ecurit´ e informatique Introduction ` a la protection logicielle Techniques de protection simples Techniques avanc´ ees : les packers Conclusion Qu’est-ce que le reverse engineering ? Les outils pour le reverse engineering Les enjeux de la protection logicielle Plan 1 Introduction ` a la protection logicielle Qu’est-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 Qu’est-ce que le reverse engineering ? Les outils pour le reverse engineering Les enjeux de la protection logicielle Le reverse engineering Definition Le reverse engineering, traduit en fran¸ cais par r´ etro-ing´ enierie, est l’activit´ 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 Qu’est-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 l’utiliser correctement ou de le modifier Fabriquer une copie de cet objet alors qu’on 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 l’objet de d´ epart, sans violer de brevet Analyser un objet produit par un concurrent, soit dans le cadre d’une 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 Qu’est-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 d’un protocole r´ eseau pour son portage sur d’autres plateformes (exemple : samba) Etude d’un format de fichier pour son portage sur d’autres plateformes (exemple : OpenOffice et les .doc) Veille technologique : v´ erifier que vos concurrents ne violent pas vos brevets Etude de malwares : comprendre les virus/vers/rootkits pour mieux s’en 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 Qu’est-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 fins ill´ egales Espionnage industriel Vol d’algorithmes ou mˆ eme de logiciels d’une entreprise concurrente Piratage de logiciel 1 Etude du logiciel via Reverse Engineering 2 Localisation des moyens de protection V´ erification du num´ ero de s´ erie, protection anti-copie, ... 3 Publication sur internetd’un patch supprimant les protections Etude des vuln´ erabilit´ es d’un logiciel en vue d’une 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 Qu’est-ce que le reverse engineering ? Les outils pour le reverse engineering Les enjeux de la protection logicielle Plan 1 Introduction ` a la protection logicielle Qu’est-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 Qu’est-ce que le reverse engineering ? Les outils pour le reverse engineering Les enjeux de la protection logicielle Analyse statique Definition L’analyse statique d’un programme est un processus permettant d’´ evaluer un programme ou une partie d’un programme en se basant sur sa forme, sa structure, son contenu ou sa documentation. A opposer ` a l’analyse dynamique. Reviens ` a examiner le programme comme si on lisait un fichier texte normal. On ne l’ex´ 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 Qu’est-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 l’analyse statique semi-automatis´ ee Un d´ esassembleur permet ` a partir d’un ex´ ecutable binaire, d’obtenir 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 l’utilisation qui en est fait Le d´ esassembleur le plus utilis´ e et le plus g´ en´ eral en environnement win32 est IDA. Il existe d’autres 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 Qu’est-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 l’utilisateur de s’approprier le code d’une application grˆ ace ` a l’analyse tr` es fine qu’il fait du code, de l’utilisation des registres et de la pile Cette analyse lui permet d’isoler 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 Qu’est-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 Qu’est-ce que le reverse engineering ? Les outils pour le reverse engineering Les enjeux de la protection logicielle Analyse dynamique Definition L’analyse dynamique d’un programme est le processus permettant d’´ evaluer un programme ou une partie d’un programme en se basant sur son comportement ` a l’ex´ 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 Qu’est-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 l’indique, de d´ eboguer un programme, c’est-` a-dire de suivre son d´ eroulement pas ` a pas, de contrˆ oler son ex´ ecution grˆ ace ` a des points d’arrˆ et, la possibilit´ e de modifier 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 l’on observe son comportement in vivo Un avantage est ´ egalement la possibilit´ e de modifier le programme au cours de son ex´ ecution (exemple : ne pas ex´ ecuter une routine de v´ erification 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 uploads/Litterature/ cours5-pdf.pdf

  • 31
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager