Cette formation accréditée par la CGE se concentre à la fois sur les techniques de retro-ingénierie et sur les différences selon les applications recherchées : analyser un code malveillant est très différent de la découverte d’un protocole inconnu.

Objectifs de la formation

Le BADGE Reverse Engineering (Bilan d’Aptitude Délivré par les Grandes Écoles) reviendra sur les notions élémentaires liées aux architectures étudiées pendant la formation (x86, x86_64 et ARM principalement). Les étudiants se pencheront sur les principales applications du reverse engineering : malwares, protections, programmes de grosse taille, protocoles non documentés et cryptographie.

À l’issue de cette formation, les participants seront capables de répondre à tous les besoins en terme de reverse engineering et auront été confrontés à de nombreux cas pratiques. Ils seront alors capables de comprendre le comportement de tout programme, protégé ou non, et de l’étudier de manière approfondie.

 

Le BADGE « Reverse Engineering » 2019 en un coup d’œil

  • Nombre d’heures de formation : 230h de séances présentielles
  • Horaires :  (voir planning).
  • Prochaine session : débute le lundi 18 février 2019, se termine le vendredi 28 juin 2019(voir planning).
  • Lieu : Paris (Métro « Les Gobelins », ligne 7).
  • Candidatures : Actuellement.
  • Tarifs 2019
  • Formation financée par l’entreprise dans le cadre du budget de formation continue : 8 900€ nets de taxe ;
  • Formation auto-financée par le participant : 6 500€ nets de taxe paiement comptant sinon 6 600€ nets de taxe pour le paiement échelonné.

De plus, il convient de rajouter les frais de de dossier de 150€ nets de taxe.

  • Formation compatible avec une activité professionnelle en parallèle: les séances se passent principalement en soirées et week-ends.
  • Formation accréditée par la Conférence des Grandes Écoles (CGE).

 

Brochure BADGE"Reverse Engineering"

 

Responsables pédagogiques

Cette formation BADGE en « Reverse Engineering » (tout comme celle en « Sécurité Offensive ») a été conçue conjointement par l’ESIEA et QUARKSLAB en collaboration avec des personnalités aux compétences reconnues issues de différents milieux (entreprises de service, industrie, État). L’objectif de ce BADGE étant de faire de vous l’expert en sécurité de l’information que les entreprises, mais aussi les organismes publics recherchent activement, il vous préparera aux multiples environnements dans lesquels vous serez amenés à évoluer.

 

Prérequis pour postuler à la formation

La connaissance du fonctionnement d’un système d’exploitation (Windows / Linux) est une base utile – en particulier la gestion de la mémoire et des processus.

Il faut également connaître au moins l’un des outils suivants par catégorie :

  • Notions pour un assembleur (x86, ARM, MIPS, PPC, …)
  • Langages : C/C++, python, ruby
  • Désassembleurs : IDA, metasm
  • Debuggers : ollydbg, windbg, gdb

 

Connaissances acquises à l’issue du BADGE

ACQUISDESCRIPTION
Introduction à l’ASM x86 et à l’ARMCe module est une brique de base sur lequel les intervenants de la formation s’appuieront. Il s’agit de voir ou revoir les concepts liés au reverse engineering ainsi que les particularités de l’ASM et de l’ARM. Au travers des différents exercices pratiques, les étudiants vont acquérir un bagage technique suffisant pour aborder les différents sujets de la formation.
CryptographieCe cours a pour objectif d’introduire les concepts fondamentaux de la cryptographie moderne ainsi que de donner un aperçu des primitives présentes dans les protocoles cryptographiques actuels. À l’issue de la formation, les étudiants auront les connaissances et la méthodologie nécessaires à l’identification et au reverse engineering d’algorithmes cryptographiques.
Reverse Engineering appliqué aux langages orientés objetL’analyse de binaires développés dans un langage orienté objet nécessite des notions spécifiques à ce dernier. Cette intervention a pour but, par le biais de l’étude des caractéristiques liées au C++, d’introduire les concepts et la façon d’analyser ce type d’exécutable.
Compilation et obfuscationCe cours permet de se familiariser avec les différentes étapes du processus de compilation d’un programme et propose un aperçu des techniques d’obfuscation basiques. Ces notions sont utiles afin de comprendre les optimisations effectuées par le compilateur ainsi que d’identifier certains mécanismes utilisés pour contrer l’analyse de binaire.
Reverse MobileL’objectif de ce module est de présenter les notions de base associées au reverse engineering sur mobile. À l’issue de la formation, les étudiants seront capables d’analyser et de débugger des applications IOS et Android et auront une connaissance générale des mécaniques internes à ces deux plateformes.
Outils et framework d’analyseLe reverse engineering d’applications réelles peut être long et fastidieux. Il est parfois nécessaire de développer ses propres scripts afin de faciliter leur analyse. Ce module présente différents outils tels que Metasm, Miasm et Triton qui aident au reverse en proposant chacun un angle d’approche différent. À la fin de la formation, les étudiants auront une idée de l’utilité de tels outils, et seront en capacité de les utiliser efficacement.
Format de fichier exécutableCe cours apporte des connaissances sur les structures internes d’un fichier exécutable ainsi que sur le processus de chargement de binaires sur le système d’exploitation.
À l’issue de cette intervention, les étudiants seront capables d’étudier et de manipuler ce type de format ainsi que de reconnaitre les différentes structures le constituant.
EmbarquéLe reverse engineering ne s’arrête pas à la couche logicielle. De plus en plus d’attaques sont possibles au niveau matériel. Ce module a pour objectif de montrer, par la pratique, une méthodologie d’analyse de devices embarqués et de fournir les connaissances de base en reverse engineering matériel.
Architectures d’un système d’exploitationCe cours présente l’architecture des ordinateurs, les couches physiques, le noyau, l’espace utilisateur, et les liens entre les composants logiciels et le matériel. Il s’agit de comprendre le fonctionnement interne d’un ordinateur et des mécanismes qui permettent ensuite d’interagir avec un programme (pagination, segmentation, DMA, breakpoints logiciels et matériels, gestion des fautes, etc.).
ExploitationCette intervention a pour vocation de présenter les différentes classes de vulnérabilité ainsi qu’une méthodologie liée à la recherche de ces dernières. Dans ce module, les étudiants sont invités à analyser des failles logicielles et développer des codes d’exploitation fonctionnels.
Analyse de malwaresLes malwares sont des binaires particuliers qui peuvent s’avérer compliqués à reverser : ils sont généralement accompagnés par de nombreux mécanismes de protection et leur nature même peut rendre pénible leur analyse. Ce cours a pour objectif d’apprendre à étudier efficacement ces programmes. Vu le nombre sans cesse croissant de tels codes, il est impossible de tout regarder manuellement. Nous passerons donc en revue les outils et les méthodes de classification afin d’optimiser les analyses.

Comment candidater et s’inscrire ?

Cette procédure d’inscription a pour objectifs de cerner vos connaissances et de s’assurer que vous êtes aptes à suivre un BADGE.

  1. Envoyez un CV détaillé (expérience, projets réalisés, articles, ou tout autre élément illustrant votre expérience) par email à l’adresse suivante :
  2. Si le jury vous déclare admissible, vous recevrez un dossier à compléter et nous retourner accompagné des frais de candidature (150€ – non remboursables).
  3. Vous serez ensuite convoqué à un entretien, qui s’appuiera sur ce dossier. Les résultats d’admission seront disponibles rapidement après l’entretien.

 

Brochure BADGE"Reverse Engineering"