Comprendre le fonctionnement des logiciels malveillants est un élément clé nécessaire auprès des entreprises afin de pouvoir répondre de manière plus efficiente à vos incidents de sécurités.
L’objectif de cette information est de fournir les éléments clés permettant de comprendre le fonctionnement des logiciels afin de pouvoir créer des « Indicateurs de Compromission » ainsi que des signatures permettant de détecter des versions modifiées des outils malveillants afin de détecter les mises à jour de ceux-ci sans avoir besoin de mettre à jours vos signatures.
La formation vous permettra alors de pouvoir analyser tout type de menace, du client lourd à l’application « Flash » en passant par les documents malicieux (office, PDF) en passant par les sites web malveillants et les applications mobiles.
- Qualifier la menace d'un logiciel malfaisant
- Savoir mettre en place d'un laboratoire d'analyse des logiciels malfaisants et préparer l'outillage d'analyse
- Analyser de manière statique et dynamique le comportement de logiciels malfaisants
- Apprendre l'architecture x86
- Savoir identifier les structures logiques (boucles, branchement...)
- Savoir identifier des motifs utilisés par les logiciels malfaisants en analysant le code
- Analyser la mémoire
- Connaître le système Windows
- Savoir programmer
- Avoir les bases en réseau
- Connaître l'assembleur
- Processus et méthodologie générique
- Analyse statique :
- Analyse des métadonnées
- Analyse statique
- Analyse dynamique
- Comportemental
- Débugger
- Construire son laboratoire d’analyse
- Simuler internet
- Utilisation de la virtualisation
- Contournement des mécanismes de protection anti-VM
- Simulation d’architecture « exotique » (IOT)
- Construction du laboratoire et boite à outils
- Sandbox
- Introduction au langage assembleur
- Guide de survie des instructions de bases
- Instruction modifiant le flux d’exécution
- Présentation des registres
- Conventions d’appels
- Spécificités des langages objets
- IDA Pro:
- Introduction
- Prise en main de l’outil (création de scripts)
- Chaine de compilation et binaires
- Fuite d’informations possibles
- Imports d’information dans IDA
- Introduction aux systèmes d’exploitation
- Processus vs thread
- Scheduler
- Syscall
- Différence processus vs thread
- Format d’exécutable
- Format PE
- Présentation des informations
- Structures internes
- SEH
- TEB
- PEB
- SSDT
- Introduction au « kernel debugging »
- Introduction aux outils de DRM/Protection de code
- Comment les identifier ?
- Quels sont les impacts ?
- — Introductions aux différentes techniques de protection :
- Anti-désassemblage
- Anti-debogage
- Obscurcissement du CFG
- Machine virtuelle
- Évasion (détection de sandbox/Virtualisation)
- Analyse de packer
- Présentation de la méthode générique d’unpacking
- Découverte de l’OEP
- Reconstruction de la table d’imports
- Miasm2 :
- Unpacking automatique
- Catégoriser les logiciels malveillants en fonction de leurs API
- Keyloggers
- Rootkits (userland et kerneland)
- Sniffers
- Ransomware
- Bots et C2
- Injection de code
- Technique de contournement de flux d’exécution (ie: detour)
- Shellcode
- Techniques et outils d’analyses
- Miasm2
- Unicorn Engine
- Malware « Web » (JavaScript/VBScript)
- Analyse statique et dynamique
- Limitation des navigateurs
- Malwares Flash
- Applications mobiles Android
- Documents malveillants