Formations

Prochaine session le 26 novembre 2018

Objectifs

Être capable de:

  • Analyser des malwares ou des applications utilisateur standards
  • Améliorer ses compétences en débogage et plus généralement les techniques d'analyse statique / dynamique
  • Utiliser des outils comme IDA pour effectuer des analyse statiques et scripter ces mêmes outils

La méthodologie est au cœur de la formation afin de maximiser l'autonomie des participants une fois la formation terminée.

Synopsis

Cette formation est dédiée aux analystes qui veulent apprendre des concepts et des méthodologies clés et mieux comprendre ou analyser plus rapidement, à la manière d'une boîte noire, tout code qui peut être trouvé dans la nature (malwares, applications, bibliothèques, exploit ...).
La formation est axée sur les aspects méthodologiques avec tous les concepts techniques qui sont nécessaires pour apprendre à reverser un binaire aussi bien d'un point de vue statique que dynamique.
Les exercices pratiques prennent en effet une place importante dans cette formation.

Public cible

Les personnes qui souhaitent démarrer avec l'analyse binaire sur les plates-formes Intel (par exemple les analystes de logiciels malveillants ou les pentesters d'applications).
Les cibles principales sont les systèmes d'exploitation Windows et Linux, mais les connaissances peuvent facilement être appliquées sur n'importe quelle plate-forme Intel IA-32.

Durée de la formation

5 jours

Conditions préalables

L'ingénierie inverse est difficile, certaines connaissances sont nécessaires afin que la formation puisse se concentrer sur la méthodologie d'analyse.

Quelques compétences clés nécessaires:

  • Python pour les scripts de base
  • Connaissance de base / intermédiaire du langage C (manipulation des pointeurs, utilisation de la bibliothèque C standard)
  • Connaissance de base du langage d'assemblage x86 (instructions de base, pile, shellcode, débogage d'un programme simple...)

Exercices

L'ensemble de la formation est composée de cours théoriques mais insiste surtout sur la pratique, répartie de manière proportionnelle sur chaque journée de formation.

Les exercices sont adaptés en fonction du niveau d'ingénierie inverse des participants, ce dernier pouvant varier pour diverses raisons.

Quelques exercices pratiques :

  • Analyse d'algorithmes divers, résolution de crackmes
  • Analyse de logiciels malveillants
  • Contourner les astuces d'anti-débogage ou d'anti-analyse
  • Scripting IDA (par exemple: déchiffrage automatique de chaîne dans un binaire obfusqué)
  • Outillage avec Frida et quelques débogueurs

Modules

Jour 1

  • Focus sur le langage d'assemblage x86 / x86-64;
  • Rappels sur le langage d'assemblage (mnémoniques, piles et concepts principaux);
  • Reconnaissance des structures usuelles;
  • Prise en main du logiciel IDA et analyse statique.

Jour 2

  • Formats de fichiers binaires (PE / ELF)
  • Comment un programme est-il chargé en mémoire?
  • Qu'y a-t-il dans l'espace d'adressage d'un processus
  • Méthodologies d'analyse (statique et dynamique)

Jour 3

  • Analyse dynamique avec des débogueurs (spécifiques au système d'exploitation)
  • Automatisation de l'analyse; créez vos propres outils et scripts en utilisant des techniques de "hooking" avec Frida
  • Analyse de scripts avec des outils

Jour 4

  • Analyse de binaires protégés
  • Contournement des anti-débogages, des anti-vm et des obfuscations de base
  • Scripting avancé (IDA et débogueurs)

Jour 5

Le dernier jour est dédié à un module optionnel en fonction du sujet sur lequel se concentrer:

  • Option 1 (analyse des logiciels malveillants natifs):

    • Traiter les astuces couramment utilisées dans les malwares
    • Techniques d'injection de code Malware
    • Traiter les malwares en utilisant la cryptographie
    • Focus sur une analyse de malwares sur Windows
  • Option 2 (ingénierie inverse .Net):

    • Introduction aux outils d'analyse spécifiques à .Net et à la méthodologie associée
    • Analyse de ransomware (écrite en .Net) en travail pratique
    • Premières étapes avec les binaires .Net protégés
  • Option 3 (Analyse des binaires désobfuscation / protégés):

    • Reconstruction de binaires / fonctions
    • Comprendre et contourner les techniques d'obfuscation courantes
    • Premiers pas avec les machines virtuelles