Reverse-Engineering Pour le Fun et le Profit

Preview:

Citation preview

“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:ayoub@marocpharm.net

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

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

mail:soufiane@marocpharm.net

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

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.

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 »

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 !

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.

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).

Applications légales 3

– Perte du code source.

– Compatibilité ou

Interopérabilité.

– Réutilisation

du code / migration.

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.

Applications illégales 2

– Espionnage

industriel.

– Vol

d'algorithmes

ou même de

logiciels d'une entreprise

concurrente

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

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

Les phases du RE

Fichier Source

Fichier Objet (*.obj)

Fichier Exécutable

Langage

Assembleur

Compilation Linking

DésassemblageDécompilation

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 ;

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 ;

– …

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é

Les débogueurs - OllyDBG

– Est gratuit.

– Est Très utilisé.

– Interface conviviale.

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

plugins.

Les décompilateurs

– VB Decompiler ;

– Java Decompiler ;

– DeDe Delphi Decompiler ;

– Reflector .NET Decompiler ;

– Sothink SWF Decompiler ;

Les éditeur Hexadécimaux

– WinHex

– HexDecCharEditor

– Hex Workshop

– Hiew

Outils de control de système

• Le suite Sysinterls de M$.

– Process Explorer

– RegMon

– FileMon

– TCPView

– Etc...

Les outils de Diffing

– WinDiff ;

– eEye Digital Security Diffing ;

– Zynamics BinDiff.

– DarunGrim

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.

Comment protéger son logiciel ?

– Juridiquement

– En bloquant ou freinant le piratage du logiciel

– En utilisant des mesures punitives

Techniques de protection simples

– Protection par

numéto de série.

– Limitation du

temps.

– Obfuscation de

code

– Chiffrement de

code

– Vérifications

furtives

Techniques avancés

– Les Packers

– Techniques d’anti-

RE

– Fusion avec

l'application

– Virtualisation

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.

RE en action 2

– Cracker le reverse-me pour accepter tous les

serials.

– Chopper un serial valide.

– Faire un self-keygenerateur.

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é. »

Questions ?

Recommended