reverse-engineering pour le fun et le profit

41
“Reverse-Engineering pour le Fun et le Profit” 17 Mai 2012 FAOUZI Ayoub aka “Noteworthy”, Etudiant-Chercheur Malware Analysis, Auteur de « Pas à Pas vers l'Assembleur » mail:[email protected] TAHIRI Soufiane aka “Esp!oNLerAvaGe” Chercheur Indépendant en Sécurité Logiciel, Auteur de « Premièrs Pas vers le Cracking » mail:[email protected]

Upload: soufiane-tahiri

Post on 19-Jul-2015

149 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Reverse-Engineering Pour le Fun et le Profit

“Reverse-Engineering pour

le Fun et le Profit”

17 Mai 2012

FAOUZI Ayoub aka “Noteworthy”, Etudiant-Chercheur Malware Analysis, Auteur

de « Pas à Pas vers l'Assembleur »

mail:[email protected]

TAHIRI Soufiane aka “Esp!oNLerAvaGe” Chercheur Indépendant en Sécurité

Logiciel, Auteur de « Premièrs Pas vers le Cracking »

mail:[email protected]

Page 2: Reverse-Engineering Pour le Fun et le Profit

Agenda

• Qu’est ce que la rétro-ingénierie ?

• A quoi ça sert ?

• Ses applications légales/illégales

• Pourquoi c’est toujours un Black Art ?

• En quoi c’est interessant?

• Les phases du RE

• Les connaissances requises

• Les outils pour le RE

• Pourquoi protéger son logiciel ?

• Comment protéger son logiciel ?

• Les techniques de protections simples

• Techniques avancés

• RE en action

• Conclusion

• Questions/Réponses

Page 3: Reverse-Engineering Pour le Fun et le Profit

Qu’est ce que la rétro-ingénierie ?

Est un activité qui consiste

à étudier un objet pour

en déterminer le

fonctionnement interne

ou sa méthode de

fabrication.

Page 4: Reverse-Engineering Pour le Fun et le Profit

Qu’est ce que la rétro-ingénierie

RE : Reverse Engineering

– Rétro conception

– Rétro ingénierie

– Ingénierie inverse

– Ingénierie inversé

– Ou bien Tout simplement: « reversing »

Page 5: Reverse-Engineering Pour le Fun et le Profit

A quoi ça sert ?

– Comprendre le fonctionnement de cet objet.

– Fabriquer une copie de cet objet.

– Créer un nouvel objet ayant des

fonctionnalités identiques à l'objet de départ.

– Analyser un objet produit par un concurrent.

Solution: Reverse Engineer it !

Page 6: Reverse-Engineering Pour le Fun et le Profit

Applications légales 1

– Etude d'un protocole réseau pour son portage

sur d'autres plateformes.

– Etude d'un format

de fichier pour son

portage sur d'autres

plateformes.

Page 7: Reverse-Engineering Pour le Fun et le Profit

Applications légales 2

– Recherche de vulnérabilités dans un logiciel

Légal pour les entreprises agrémentées

(exemple Google).

– Etude de malwares : comprendre les

virus/vers/rootkits/botnets pour mieux s'en

défendre. (exemple ZeuS, SpyEye, Stuxnet).

Page 8: Reverse-Engineering Pour le Fun et le Profit

Applications légales 3

– Perte du code source.

– Compatibilité ou

Interopérabilité.

– Réutilisation

du code / migration.

Page 9: Reverse-Engineering Pour le Fun et le Profit

Applications illégales 1

– Etude des vulnérabilités d'un logiciel/OS en vue

d'une exploitation.

– Casser une

protection

logiciel ainsi

qu’une publication du

patch sur Internet.

Page 10: Reverse-Engineering Pour le Fun et le Profit

Applications illégales 2

– Espionnage

industriel.

– Vol

d'algorithmes

ou même de

logiciels d'une entreprise

concurrente

Page 11: Reverse-Engineering Pour le Fun et le Profit

Pourquoi c’est toujours un Black Art ?

• Reverse Engineering = Cassage

des Protections Logiciels ?

• La DMCA qui fait chier!

• Les gens pensent encore que ça

devrait être illégal!

Please, Le reverse engineering est légal!

Dmitry Sklyarov

Page 12: Reverse-Engineering Pour le Fun et le Profit

En quoi c’est interessant?

– Une compréhension plus profonde de la façon

dont fonctionne n’importe quel

microprocesseur.

– Apprendre comment le processeur gère les

données aide à comprendre énormément

d’autres nombreux aspects de la sécurité

informatique

Page 13: Reverse-Engineering Pour le Fun et le Profit

Les phases du RE

Fichier Source

Fichier Objet (*.obj)

Fichier Exécutable

Langage

Assembleur

Compilation Linking

DésassemblageDécompilation

Page 14: Reverse-Engineering Pour le Fun et le Profit

Les connaissances requises

• Identifier le format binaire cible ;

• Maîtriser les outils ;

• Creuser et découvrir autant que vous le pouvez ...

• Identifier le

processeur cible ;

• Identifier le système

d'exploitation cible ;

Page 15: Reverse-Engineering Pour le Fun et le Profit

Les outils pour le RE

– Désassembleurs ;

– Débuggeurs ;

– Décompilateurs ;

– Editeurs hexadécimaux ;

– Outils de contrôles de systèmes

;

– Les outils de diffing ;

– …

Page 16: Reverse-Engineering Pour le Fun et le Profit

Les désassembleurs – IDA

– Est un désassembleur professionnel et très

puissant mais $$

– Certains plugins (très chers) de retrouver le

code source originel du programme analysé

Page 17: Reverse-Engineering Pour le Fun et le Profit
Page 18: Reverse-Engineering Pour le Fun et le Profit

Les débogueurs - OllyDBG

– Est gratuit.

– Est Très utilisé.

– Interface conviviale.

– Peut être étendu grâce à un système de

plugins.

Page 19: Reverse-Engineering Pour le Fun et le Profit
Page 20: Reverse-Engineering Pour le Fun et le Profit

Les décompilateurs

– VB Decompiler ;

– Java Decompiler ;

– DeDe Delphi Decompiler ;

– Reflector .NET Decompiler ;

– Sothink SWF Decompiler ;

Page 21: Reverse-Engineering Pour le Fun et le Profit
Page 22: Reverse-Engineering Pour le Fun et le Profit
Page 23: Reverse-Engineering Pour le Fun et le Profit
Page 24: Reverse-Engineering Pour le Fun et le Profit
Page 25: Reverse-Engineering Pour le Fun et le Profit
Page 26: Reverse-Engineering Pour le Fun et le Profit

Les éditeur Hexadécimaux

– WinHex

– HexDecCharEditor

– Hex Workshop

– Hiew

Page 27: Reverse-Engineering Pour le Fun et le Profit
Page 28: Reverse-Engineering Pour le Fun et le Profit

Outils de control de système

• Le suite Sysinterls de M$.

– Process Explorer

– RegMon

– FileMon

– TCPView

– Etc...

Page 29: Reverse-Engineering Pour le Fun et le Profit
Page 30: Reverse-Engineering Pour le Fun et le Profit
Page 31: Reverse-Engineering Pour le Fun et le Profit
Page 32: Reverse-Engineering Pour le Fun et le Profit

Les outils de Diffing

– WinDiff ;

– eEye Digital Security Diffing ;

– Zynamics BinDiff.

– DarunGrim

Page 33: Reverse-Engineering Pour le Fun et le Profit
Page 34: Reverse-Engineering Pour le Fun et le Profit

Pourquoi protéger son logiciel ?

– Les désassembleurs et les débogueurs

permettent d‘étudier un exécutable sans

posséder sa source.

– Protéger les logiciels d'une entreprise est alors

indispensable.

Page 35: Reverse-Engineering Pour le Fun et le Profit

Comment protéger son logiciel ?

– Juridiquement

– En bloquant ou freinant le piratage du logiciel

– En utilisant des mesures punitives

Page 36: Reverse-Engineering Pour le Fun et le Profit

Techniques de protection simples

– Protection par

numéto de série.

– Limitation du

temps.

– Obfuscation de

code

– Chiffrement de

code

– Vérifications

furtives

Page 37: Reverse-Engineering Pour le Fun et le Profit

Techniques avancés

– Les Packers

– Techniques d’anti-

RE

– Fusion avec

l'application

– Virtualisation

Page 38: Reverse-Engineering Pour le Fun et le Profit

RE en action 1

– Un ReverseMe

(littéralement

« crack-moi ») est

un petit programme

destiné à tester les

capacités en rétro-

ingénierie d'un

programmeur.

Page 39: Reverse-Engineering Pour le Fun et le Profit

RE en action 2

– Cracker le reverse-me pour accepter tous les

serials.

– Chopper un serial valide.

– Faire un self-keygenerateur.

Page 40: Reverse-Engineering Pour le Fun et le Profit

Conclusion

– RE est vaste et complexe.

– Avec beaucoup de pratique,

il devient très facile.

« Un bon rétro-ingénieure maitrise parfaitement le proc

cible, l’OS cible, le format fichier cible, et les outils

disponible au marché. »

Page 41: Reverse-Engineering Pour le Fun et le Profit

Questions ?