Table des matières
Avant-propos
Chapitre 1
Introduction et définitions
1. La sécurité informatique : pour quoi, pour qui ?
1.1 L’actualité cybercriminelle
1.2 Hacking, piratage, sécurité informatique, cyberdéfense. Que met-on derrière ces termes ?
1.3 L’importance de la sécurité
1.3.1 Pour les particuliers
1.3.2 Pour les entreprises et les écoles
1.3.3 Pour un pays ou une nation
2. Le hacking se veut éthique
2.1 Le travail en coopération
2.2 Un esprit bidouilleur et passionné avant tout
2.3 Le hacker devient un expert recherché
2.4 Dans la peau de l’attaquant
2.5 Conseils et accompagnement vers la sécurisation
3. Connaître son ennemi pour s’en défendre
3.1 À chaque attaquant son chapeau
3.1.1 Les hackers black hats
3.1.2 Les hackers grey hats
3.1.3 Les hackers white hats
3.1.4 Les script kiddies
3.1.5 Les hackers universitaires
3.2 Et à chaque audit sa boîte à secrets
3.2.1 Les tests en black box
3.2.2 Les tests en grey box
3.2.3 Les tests en white box
4. Conclusion
2 Sécurité informatique
Ethical Hacking: Apprendre l’attaque pour mieux se défendre
Chapitre 2 Éléments d’ingénierie sociale
1. Généralités
1.1 Introduction
1.2 Systèmes d’information
1.2.1 Précisions sur les systèmes d’information
1.2.2 Failles d’un système d’information
1.3 Présentation de l’ingénierie sociale
1.3.1 Définitions
1.3.2 Caractéristiques et périmètre
1.4 Problématique de la protection
2. Modes d’action de l’ingénierie sociale
2.1 Principes de l’attaque par ingénierie sociale
2.2 Processus générique de l’ingénieur social
2.2.1 Étude préalable 1
2.2.2 Préparation
2.2.3 Exploitation
2.3 Compétences et outils de l’ingénieur social
2.3.1 Comédie, ruse, subterfuge et tromperie
2.3.2 Lecture de cible
3. Connaissance des organisations attaquées
3.1 Typologies générales
3.2 Typologies de valeurs et de croyances
3.3 Modèles de maturité et certifications qualité
3.4 Exploitation
3.5 Exercices
4. Failles humaines : bases et modèles théoriques
4.1 Bases biologiques et fonctionnalités du cerveau
4.2 Biais cognitifs
4.3 Méthodes hypnotiques
4.4 Cohérence et recherche de « pattern »
4.5 Conclusion
4.6 Exercices
4.6.1 Cas particulier du téléphone
4.6.2 Camouflage final.
3
Table des matières
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.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
4. Cybersécurité et Malwares
Détection, analyse et Threat Intelligence
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. Analyse dans le cas d’un binaire
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. Format PE
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
8.3 Outils pour analyser un PE
8.4 API d’analyse d’un PE
9. Suivre l’exécution d’un binaire
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)
5
Table des matières
10. Utilisation de Cuckoo Sandbox
10.1 Introduction
10.2 Configuration
10.3 Utilisation
10.4 Limitations
10.5 Conclusion
11. Résumé
Chapitre 3 : 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
6. Cybersécurité et Malwares
Détection, analyse et Threat Intelligence
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. Analyse dynamique
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
7
Table des matières
6.2.4 Visualisation des valeurs en mémoire
6.2.5 Copie de la mémoire
6.3 WinDbg
6.3.1 Présentation
6.3.2 Interface
6.3.3 Commandes de base
6.3.4 Plug-in
6.4 Analyse du noyau Windows
6.4.1 Présentation
6.4.2 Mise en place de l’environnement
6.4.3 Protections du noyau Windows
6.5 Émulation et instrumentation
6.6 Limites de l’analyse dynamique et conclusion
Chapitre 4 : 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
8. Cybersécurité et Malwares
Détection, analyse et Threat Intelligence
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é
Chapitre 5 : 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. Vecteurs d’infection
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
9
Table des matières
4. Création d’un laboratoire d’analyse
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. Analyse statique et décompilation d’une application
5.1 Analyse d’un fichier APK
5.2 Code Java et décompilation : Byteco de Viewer
5.3 Anti-VM
5.4 Code natif
5.5 Techniques d’obfuscation
6. Analyse dynamique
6.1 Utilisation de Frida
6.2 Utilisation de gdb pour les binaires natifs
7. Résumé
Chapitre 6 : 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
10. Cybersécurité et Malwares
Détection, analyse et Threat Intelligence
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é
Chapitre 7: 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
11
Table des matières
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. Matrice du MITRE, TTPs et Threat Actors
3.1 Matrice du MITRE
3.1.1 Présentation
3.1.2 Exemples d’utilisation de la matrice ATT & CK
3.2 TTP et Threat Actors
3.2.1 Définition
3.2.2 TTP de TA 505
3.2.3 Threat Actor et Intrusion Set
4. Règles et détections
4.1 Introduction
4.2 Suricata
4.2.1 Suricata
4.2.2 Exemple de détection
4.3 YARA
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. Sources de données
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
12. Cybersécurité et Malwares
Détection, analyse et Threat Intelligence
5.3 Passives DNS
5.3.1 Présentation
5.3.2 Passive DNS de VirusTotal
5.3.3 RiskIQ
5.4 Dépôts de malwares
5.4.1 Présentation
5.4.2 VirusTotal
5.4.3 Malware Bazaar
5.5 Sources multi-indicateurs
5.5.1 Présentation
5.5.2 OTX AlienVault
5.5.3 RiskIQ
6. Plateformes de Threat Intelligence
6.1 Introduction
6.2 MISP
6.2.1 Généralités
6.2.2 Fonctionnalités
6.3 Yeti
6.3.1 Présentation
6.3.2 Fonctionnalités
7. Résumé
Index
Soyez le premier à donner votre avis sur “Sécurité informatique et Malwares”