Cybersécurité et Malwares Détection, analyse et Threat Intelligence (4e édition)
Présentation
Les auteurs commencent par l’identification et la classification des malwares, ils décrivent ensuite les collectes rapportées par des investigations numériques légales (inforensiques) puis les analysent. Ces collectes comportent des images disque, des journaux d’évènements, mais aussi des images mémoire. Les outils et techniques permettant d’analyser ces données sont décrits avec de nombreux exemples.
Après avoir identifié le malware, il convient de l’analyser. Les auteurs expliquent le fonctionnement des outils de sandboxes et décrivent des formats de fichier comme les documents PDF, Microsoft Office ou encore les binaires Windows. Afin de réaliser des analyses extrêmement techniques, le livre contient un chapitre entier sur le reverse engineering (ou rétro-ingénierie), les auteurs y expliquent les bases de l’assembleur (x86 et x64) et l’utilisation d’outils d’analyse statique tels que Ghidra et Rizin ou de debuggers tels que x64dbg et WinDBG. En complément sur ce sujet du reverse engineering, un chapitre explique les techniques d’obfuscation utilisées par les malwares, telles que l’obfuscation de chaînes de caractères ou l’utilisation de packers. Les auteurs détaillent les techniques permettant de dépacker des binaires packés. Deux chapitres sont dédiés à l’analyse de malwares sous systèmes mobiles : le système d’exploitation Android de Google et celui d’Apple : iOS. La dernière partie de ce livre décrit la Cyber Threat Intelligence et explique comment stocker les informations acquises durant des investigations mais aussi comment les partager pour améliorer sa connaissance et sa détection.
Le livre est illustré d’exemples d’analyses de véritables malwares et les techniques présentées ont toutes été validées sur des cas réels.
Quizinclus dans
la version en ligne !
- Testez vos connaissances à l'issue de chaque chapitre
- Validez vos acquis
Table des matières
Compréhension des malwares
- 1. Présentation des malwares par familles
- 1.1 Introduction
- 1.2 Backdoor
- 1.3 Ransomware et locker
- 1.4 Stealer
- 1.5 Miner
- 1.6 Banking trojan
- 1.7 Rootkit
- 2. Scénario d'infection
- 2.1 Introduction
- 2.2 Scénario 1 : exécution d'une pièce jointe
- 2.3 Scénario 2 : clic malencontreux
- 2.4 Scénario 3 : ouverture d'un document infecté
- 2.5 Scénario 4 : attaques informatiques
- 2.6 Scénario 5 : attaques physiques - infection par clé USB
- 2.7 Scénario 6 : attaques de type supply chain
- 3. Techniques de communication avec le C&C
- 3.1 Introduction
- 3.2 Mise à jour de la liste des noms de domaine
- 3.3 Communication via HTTP/HTTPS/FTP/IRC
- 3.4 Communication via un client e-mail
- 3.5 Communication via un réseau point à point
- 3.6 Communication via des protocoles propriétaires
- 3.7 Communication via le protocole DNS
- 3.8 Communication passive
- 3.9 Fast flux et DGA (Domain Generation Algorithms)
- 3.10 Cibles sans accès internet
- 4. Mode opératoire en cas d'attaques ciblées persistantes (APT)
- 4.1 Introduction
- 4.2 Phase 1 : reconnaissance
- 4.3 Phase 2 : intrusion
- 4.4 Phase 3 : persistance
- 4.5 Phase 4 : pivot
- 4.6 Phase 5 : exfiltration
- 4.7 Traces laissées par l'attaquant
- 5. Ressources sur Internet concernant les malwares
- 5.1 Introduction
- 5.2 Sites permettant des analyses en ligne
- 5.3 Sites présentant des analyses techniques
- 5.4 Sites permettant de télécharger des samples de malwares
- 6. Résumé
Malwares ciblant les systèmes Microsoft Windows
- 1. Introduction
- 2. Collecte d'informations
- 2.1 Introduction
- 2.2 Collecte et analyse de la base de registre
- 2.3 Collecte et analyse des journaux d'événements
- 2.4 Collecte et analyse des fichiers exécutés au démarrage
- 2.5 Collecte et analyse du système de fichiers
- 2.6 Gestion des fichiers bloqués par le système d'exploitation
- 2.7 Outil DFIR ORC
- 3. Image mémoire
- 3.1 Présentation
- 3.2 Réalisation d'une image mémoire
- 3.3 Analyse d'une image mémoire
- 3.4 Analyse de l'image mémoire d'un processus
- 4. Fonctionnalités des malwares
- 4.1 Techniques pour rester persistant
- 4.2 Techniques pour se cacher
- 4.3 Malware sans fichier
- 4.4 Contournement de l'UAC
- 5. Création d'un laboratoire d'analyse
- 5.1 Introduction
- 5.2 VirtualBox
- 5.3 Machines virtuelles préconfigurées
- 5.4 Viper : l'outil de gestion d'échantillons de malwares
- 6. Analyse du vecteur d’infection
- 6.1 Informations sur un fichier
- 6.1.1 Format d'un fichier
- 6.1.2 Chaînes de caractères présentes dans un fichier
- 6.1 Informations sur un fichier
- 6.2 Analyse dans le cas d'un fichier PDF
- 6.2.1 Introduction
- 6.2.2 Extraire le code JavaScript
- 6.2.3 Désobfusquer du code JavaScript
- 6.2.4 Conclusion
- 6.3 Analyse dans le cas d'un fichier Adobe Flash
- 6.3.1 Introduction
- 6.3.2 Extraire et analyser le code ActionScript
- 6.4 Analyse dans le cas d'un fichier JAR
- 6.4.1 Introduction
- 6.4.2 Récupération du code source depuis les classes
- 6.5 Analyse dans le cas d'un fichier Microsoft Office
- 6.5.1 Introduction
- 6.5.2 Outils permettant l'analyse de fichiers Office
- 6.5.3 Cas d’un malware utilisant des macros : Dridex
- 6.5.4 Cas d’un malware utilisant une vulnérabilité
- 6.6 Utilisation de PowerShell
- 7.1 Analyse de binaires développés en AutoIt
- 7.2 Analyse de binaires développés avec le framework .NET
- 7.3 Analyse de scripts Python compilés
- 7.4 Analyse de binaires développés en C ou C++
- 7.5 Analyse rapide des fonctionnalités d’un binaire
- 7.6 Analyse de bootkits UEFI
- 8.1 Introduction
- 8.2 Schéma du format PE
- 8.2.1 En-tête MZ-DOS
- 8.2.2 Segment DOS
- 8.2.3 En-tête PE
- 8.2.4 Table des sections
- 8.2.5 Table des imports
- 8.2.6 Table des exports
- 8.2.7 Ressources
- 9.1 Introduction
- 9.2 Activité au niveau de la base de registre
- 9.3 Activité au niveau du système de fichiers
- 9.4 Activité réseau
- 9.5 Activité réseau de type HTTP(S)
- 10.1 Introduction
- 10.2 Configuration
- 10.3 Utilisation
- 10.4 Limitations
- 10.5 Conclusion
Reverse engineering
- 1. Introduction
- 1.1 Présentation
- 1.2 Législation
- 2. Qu’est-ce qu’un processus Windows ?
- 2.1 Introduction
- 2.2 Process Environment Block
- 2.3 Thread Environment Block
- 3. Assembleur x86
- 3.1 Registres
- 3.2 Instructions et opérations
- 3.3 Gestion de la mémoire par la pile
- 3.4 Gestion de la mémoire par le tas
- 3.5 Optimisation du compilateur
- 4. Assembleur x64
- 4.1 Registres
- 4.2 Paramètres des fonctions
- 5. Analyse statique
- 5.1 Présentation
- 5.2 Ghidra
- 5.2.1 Présentation
- 5.3 Navigation
- 5.3.1 Renommages et commentaires
- 5.3.2 Extensions
- 5.3.3 Support de Python 3
- 5.4 Rizin
- 5.4.1 Présentation
- 5.4.2 Ligne de commande
- 5.4.3 Interface graphique : Cutter
- 5.5 Techniques d'analyse
- 5.5.1 Commencer une analyse
- 5.5.2 Sauts conditionnels
- 5.5.3 Boucles
- 5.6 API Windows
- 5.6.1 Introduction
- 5.6.2 API d'accès aux fichiers
- 5.6.3 API d'accès à la base de registre
- 5.6.4 API de communication réseau
- 5.6.5 API de gestion des services
- 5.6.6 API des objets COM
- 5.6.7 API restart manager
- 5.6.8 Exemples de l'utilisation de l'API
- 5.6.9 Conclusion
- 5.7 Comparaison entre binaires
- 5.7.1 Description
- 5.7.2 Outils
- 5.7.3 Exemple
- 5.8 Limites de l'analyse statique
- 6.1 Présentation
- 6.2 x64dbg
- 6.2.1 Présentation
- 6.2.2 Contrôle de flux d'exécution
- 6.2.3 Points d'arrêt
- 6.2.4 Visualisation des valeurs en mémoire
- 6.2.5 Copie de la mémoire
- 6.3.1 Présentation
- 6.3.2 Interface
- 6.3.3 Commandes de base
- 6.3.4 Plug-in
- 6.4.1 Présentation
- 6.4.2 Mise en place de l'environnement
- 6.4.3 Protections du noyau Windows
Techniques d'obfuscation
- 1. Introduction
- 2. Obfuscation des chaînes de caractères
- 2.1 Introduction
- 2.2 Utilisation de ROT13
- 2.3 Utilisation de la fonction XOR avec une clé statique
- 2.4 Utilisation de la fonction XOR avec une clé dynamique
- 2.5 Utilisation de fonctions cryptographiques
- 2.6 Utilisation de fonctions personnalisées
- 2.7 Outils permettant de décoder les chaînes de caractères
- 2.8 Utilisation de Cyberchef
- 2.9 Utilisation de Malduck
- 3. Obfuscation de l'utilisation de l'API Windows
- 3.1 Introduction
- 3.2 Étude du cas Duqu
- 3.3 Étude du cas EvilBunny
- 4. Packers
- 4.1 Introduction
- 4.2 Packers utilisant la pile
- 4.3 Packers utilisant le tas
- 4.4 Encodeur Metasploit
- 4.5 Outils pour automatiser l’unpack
- 5. Autres techniques
- 5.1 Anti-VM
- 5.2 Anti-reverse engineering et anti-débogage
- 6. Résumé
Malwares ciblant les systèmes Android
- 1. Introduction
- 2. Système d’exploitation Android
- 2.1 Historique
- 2.2 Architecture
- 2.3 Partitions et systèmes de fichiers
- 2.4 Sécurité
- 2.4.1 Sécurité au niveau système
- 2.4.2 Sécurité au niveau Dalvik/ART
- 2.4.3 Effet de bord des fonctionnalités de sécurité
- 2.5 Application Android
- 2.6 Malwares ciblant les téléphones Android
- 3.1 Installation via Google Store
- 3.2 Installation via des stores alternatifs
- 3.3 Installation manuelle
- 3.4 MDM (Mobile Device Management)
- 3.5 Accès physique au terminal
- 4.1 Machine virtuelle ou téléphone physique ?
- 4.2 Adb (Android Debug Bridge)
- 4.3 Accès administrateur (root)
- 4.4 Capture réseau
- 4.4.1 Capture réseau pure
- 4.4.2 Capture HTTP/HTTPS
- 5.1 Analyse d’un fichier APK
- 5.2 Code Java et décompilation : Bytecode Viewer
- 5.3 Anti-VM
- 5.4 Code natif
- 5.5 Techniques d’obfuscation
- 6.1 Utilisation de Frida
- 6.2 Utilisation de gdb pour les binaires natifs
Malwares ciblant les systèmes iOS
- 1. Introduction
- 2. Système d’exploitation iOS
- 2.1 Historique
- 2.2 Architecture
- 2.3 Partitions et systèmes de fichiers
- 2.4 Sécurité
- 2.5 Jailbreak
- 2.6 Application iOS
- 2.7 Malwares ciblant iOS
- 3. Vecteurs d’infection
- 3.1 Accès physique au terminal
- 3.2 Liens vers un fichier .ipa
- 3.3 Stores alternatifs
- 3.4 MDM malveillant
- 4. Création d’un laboratoire d’analyse
- 4.1 Analyse réseau
- 4.2 Jailbreak d’un terminal et déploiement d’une application
- 5. Analyse statique d’une application
- 5.1 Introduction
- 5.2 Analyse avec Ghidra
- 6. Analyse dynamique
- 6.1 Utilisation de Frida
- 6.2 Utilisation de lldb
- 7. Technique utilisée par les malwares sous iOS
- 7.1 Injection de librairies
- 7.2 Injection de JavaScript
- 7.3 Keylogger sous iOS
- 7.4 Terminal jailbreaké et injection de code
- 8. Résumé
Analyse de malware et Threat Intelligence
- 1. Introduction
- 2. Indicateurs de compromission (IOC)
- 2.1 Empreintes et signatures de fichiers
- 2.1.1 Empreintes cryptographiques
- 2.1.2 Empreintes par similarité : ssdeep et TLSH
- 2.1.3 Empreintes des tables d’imports des exécutables Windows
- 2.1 Empreintes et signatures de fichiers
- 2.2 Indicateurs système
- 2.2.1 Clés de registre
- 2.2.2 Système de fichiers
- 2.2.3 Réseau
- 2.2.4 Exécutions
- 3.1 Matrice du MITRE
- 3.1.1 Présentation
- 3.1.2 Exemples d'utilisation de la matrice ATT&CK
- 3.2.1 Définition
- 3.2.2 TTP de TA505
- 3.2.3 Threat Actor et Intrusion Set
- 4.1 Introduction
- 4.2 Suricata
- 4.2.1 Suricata
- 4.2.2 Exemple de détection
- 4.3.1 Présentation
- 4.3.2 Syntaxe
- 4.3.3 Exemple de détection de webshells
- 4.3.4 Exemple de détection de Chinoxy via le module PE
- 4.3.5 Python et YARA
- 4.3.6 Outils open source utilisant YARA
- 5.1 Présentation
- 5.2 Scanners
- 5.2.1 Définition
- 5.2.2 Shodan.io
- 5.2.3 Onyphe.io
- 5.2.4 Censys.io
- 5.3.1 Présentation
- 5.3.2 Passive DNS de VirusTotal
- 5.3.3 RiskIQ
- 5.4.1 Présentation
- 5.4.2 VirusTotal
- 5.4.3 MalwareBazaar
- 5.5.1 Présentation
- 5.5.2 OTX AlienVault
- 5.5.3 RiskIQ
- 6.1 Introduction
- 6.2 MISP
- 6.2.1 Généralités
- 6.2.2 Fonctionnalités
- 6.3.1 Présentation
- 6.3.2 Fonctionnalités
Auteurs
Paul RASCAGNERESEn savoir plus
Paul RASCAGNERES, tout au long de sa carrière, a créé en Europe diverses équipes de réponses à incidents, il a également réalisé de nombreuses analyses de codes malveillants complexes pour un éditeur d'anti-virus. Il travaille aujourd'hui dans une équipe de Cyber Threat Intelligence, au sein de laquelle il a pour mission l'analyse de malwares lors d'incidents de sécurité ou lors de projets de recherche. Il participe également activement à la communauté anti-malware et est l'auteur de nombreuses publications. Conférencier à l'international (Europe, Asie, Amérique) sur l'analyse de malwares, il partage dans ce livre ses connaissances dans ce domaine de la sécurité.
Sébastien LARINIEREn savoir plus
Sébastien LARINIER a commencé sa carrière dans les équipes de SOC à faire de la détection d'intrusion et a créé le CERT Sekoia. Aujourd’hui Enseignant-chercheur à l'ESIEA et consultant indépendant en Threat Intelligence, il contribue à de nombreux projets open source comme MISP et Yeti. Il est également auteur de nombreux articles, conférencier à l'international et enseignant sur l'analyse de malwares, l'investigation numérique et la Cyber Threat Intelligence à l'ESIEA.
Caractéristiques
- Niveau Expert
- Nombre de pages 538 pages
- Parution décembre 2022
- Livre (broché) - 17 x 21 cm
- ISBN : 978-2-409-03810-5
- EAN : 9782409038105
- Ref. ENI : EP4MAL
- Niveau Expert
- Parution décembre 2022
- HTML
- ISBN : 978-2-409-03811-2
- EAN : 9782409038112
- Ref. ENI : LNEP4MAL
Téléchargements
- Des fichiers complémentaires (135 Ko)