Rétro-ingénierie

BT221

Sommaire

Description

La rétro-ingénierie est une technique utilisée pour analyser un logiciel afin d’identifier et de comprendre ses composants et ses flux. Il s’agit d’un processus de compréhension des processus d’infraction au code et d’analyse des faiblesses des logiciels.

Les rétro-ingénieurs analysent les systèmes pour créer des représentations de système dans une autre forme d’abstraction.

Comment réussir au mieux ce cours

Pour réussir ce cours, il vous faudra :

  • Participer à l’ensemble des labos
  • Produire du travail personnel entre les cours
  • Exécuter les exercices, s’auto-former, réaliser les tâches demandées, etc.

Outre une participation active au cours, le participant doit fournir au moins 10h de travail personnel durant la semaine de cours afin d’acquérir une expérience pratique dans les domaines enseignés. Le participant doit également posséder un ordinateur personnel capable de faire tourner un système virtuel avec une connexion Internet stable (voir ci-dessous pour plus de détails).

Public cible

  • Les praticiens de la cybersécurité
  • Analystes de la cybercriminalité
  • Ingénieurs et chercheurs en sécurité
  • Intervenants en cas d’incident
  • Rétro-ingénieurs junior
  • Développeurs de logiciels
  • Administrateurs de la sécurité informatique

Objectifs

  • Se familiariser avec le concept de rétro-ingénierie et ses applications
  • Analyser les différents formats de fichiers pour découvrir les codes cachés qu’ils contiennent
  • Identifier les flux de contrôle
  • Comprendre Assembly
  • Mener des activités de renseignement à source ouverte
  • Exploitation des logiciels de serveur, de base de données et d’application

Prérequis

  • Cours ThinkCyber niveau 1 

Syllabus

Description

Cette étape vise à couvrir les théories et concepts nécessaires sur lesquels repose la rétro-ingénierie, en partant de la structure de base des fichiers et de sa source.

Contenu technique

  • Calcul des bases
    o Base hexadécimale
    o Base binaire
    o Transition entre les bases
    o Transition entre l’hexadécimal et le binaire et vice versa
    o Actions numériques sur les numéros dans différentes représentations
    o Chiffres négatifs.

Description

Au cours de cette étape, les participants s’entraîneront à une analyse approfondie des codes de programme en utilisant les principes d’Assembly. Les participants seront capables de reconnaître l’effet des logiciels et des codes avant leur première exécution.

Contenu technique

  • Assembly
    o Registres
    o Architecture du processeur
    o Format PE – Exécutable Portable
    – Installation d’un espace de travail
    o Table Syscalls Linux
    o Descripteur de fichier
    o La connexion aux fichiers
    o Début de la construction du programme
    o Processus de débogage
    o IDA
    – La professionnalisation dans la GDB
    o Jumps et conditions
    o Manipulation sur un transformateur
    o Boucles
    o Activation de la détonation de numéros sur le processeur
    o Commande d’octets
    o Maintenir le mode « drapeau » en utilisant une pile
    o Pile
    o Conventions d’appel
    o Construire des fonctions d’impression en utilisant l’assemblage
    o Appel aux fonctions

Description

Dans ce module, les participants acquerront des connaissances sur la gestion de la mémoire et le contrôle des flux de code tout en utilisant celui-ci pour répliquer et exploiter des logiciels ; les participants se concentreront sur l’utilisation des flux de code et de mémoire pour utiliser et développer des exploits.

Contenu technique

  • Tampon
    o Protostar
    o Débordement de la mémoire tampon
  • Coder des exploits pour contourner les protections
    o Processus en informatique
    o Pseudo-terminal
    o Condition de race
    o Service de soutien
    o Comment fonctionne le débogueur
    o Anti-retour
    o Programmation axée sur le retour (POR)
    – Politique de gestion de la mémoire
    o W^X
    o NX bit
    o DEP
    o Ret2libc
    o Chaîne de format
    o Surmonter le mécanisme de l’ASLR par l’attaque de la chaîne de format
    o Le processus d’ajout des adresses à un code écrit
  • Gestion de la mémoire
    o Tas
    o Comment un processus obtient de la mémoire du système
    o Débordement de tas
  • Préparation d’un espace de travail Windows
    o Visual Studio
    o OllyDbg
  • Exploitation sur l’internet
    o Débordement de la mémoire tampon sur l’Internet
    o Détection de traceurs par navigateur
    o Fuzzing
    o SPIKE
    o Déboguer en utilisant OllyDbg pour restaurer le crash
    o Shellcode
    o Créer manuellement un shellcode
    o Créer un Shellcode en utilisant Metasploit
  • Les mauvais caractères
    o Encodage
    o De python à metasploits
    o Mélanges
    o SLmail
    o Débogueur d’immunité
    o Mona.py
  • Préparer le crack pour le jeu « mine-sweeper »
    o Le processus de fabrication du crack
    o L’analyse des DLL

Labos

Les labos suivants font partie du cours BT221:

  • Labo 1 Calcul des bases
  • Labo 2 Représentation de l’information
  • Labo 3 Assembly
  • Labo 4 Flags des contrôleurs dans le processeur
  • Labo 5 La professionnalisation dans la GDB
  • Labo 6 Tampons
  • Labo 7 Coder des exploits pour contourner les protections
  • Labo 8 Politique de gestion de la mémoire
  • Labo 9 Utilisation des GOT
  • Labo 10 Gestion de la mémoire
  • Labo 11 Exploitation
  • Labo 12 Mauvais caractères

Etudes de cas réels

Etude de cas #1 (RE001)
Lors de la récente épidémie de Corona, de nombreux étudiants et employés ont utilisé l'application Zoom pour discuter, faire des vidéoconférences et des audioconférences. Un groupe de pirates informatiques a saisi l'occasion et a commencé à répandre un cheval de Troie qui imite le comportement de l'installateur de Zoom. Nous avons réussi à acquérir un échantillon de ce cheval de Troie, à vous d'utiliser vos compétences pour inverser son comportement et à identifier les auteurs du cheval de Troie
Reference
Etude de cas #2 (RE002)
Les chercheurs en cybersécurité ont découvert un nouveau logiciel malveillant destructeur de données, appelé ZeroCleare, qui est utilisé par des pirates informatiques dans la nature, parrainés par l'État pour cibler les organisations énergétiques et industrielles au Moyen-Orient. Ils ont réussi à capturer un binaire qui pourrait contenir des traces du logiciel malveillant. Votre tâche consiste à analyser le fichier binaire afin d'identifier le comportement du malware.
Reference
Diapositive précédente
Diapositive suivante
BT221

Type de Cours

Le participant peut bénéficier d’un des deux modes de cours :

  • Une classe de cours virtuelle avec des labos avec instructeur et des scénarios exécutés dans notre Cyberium Arena
  • Des cours in situ avec des labos avec instructeur et des scénarios exécutés dans notre Cyberium Arena

Cependant, en raison des restrictions sanitaires, l’ensemble des cours se fait sous la forme de classes virtuelles. Toutes les sessions sont enregistrées et peuvent être re-visionnées pendant 30 jours. Tout le matériel de cours  est mis à disposition du participant sous  forme électronique, couvrant les syllabus, les labos, et les études de cas.

Groupe de cours:
défense

NIVEAU
0%
HEURES
1

Entre Pratique et Théorie

Notre approche de la formation est éminemment pratique et vise à permettre au participant d’appliquer dans un contexte pratique les connaissances qu’il acquiert.
Pratique
1 %
Labos
1
Etudes de cas
1

Certification

Ce cours prépare aux certifications suivantes:

  • GREM (SANS)

Équipement requis

Connexion réseau

Comme ce cours est essentiellement fondé sur un Learning Managament System (LMS), incluant une arène pour les labos, les participants ont besoin d’une connexion fiable à Internet.

Apporter votre propre matériel

Le cours étant principalement basé sur la pratique, les participants doivent avoir un ordinateur portable avec :

  • L’audio et la vidéo
  • 8 GB RAM
  • 200 GB d’espace disque
  • La capacité d’un environnement virtuel (capable de faire tourner la dernière version de Virtualbox ou un simulateur de machine virtuelle équivalent)

Et bien sûr un bon kit casque/micro. Plus de détails ici

Inscription