Sécurité informatique et Malwares tionnelle et …multimedia.fnac.com/multimedia/editorial/pdf/9782409000737.pdf · 2 Analyse des menaces et mise en œuvre des contre-mesures Sécurité
Post on 11-Sep-2018
216 Views
Preview:
Transcript
Sécu
rité
info
rmat
ique
et M
alw
ares
ISSN : 1960-3444ISBN : 978-2-409-00073-7
54 €
Pour plus d’informations :
Sécurité informatique et Malwares Analyse des menaces et mise en œuvre des contre-mesuresCe livre décrit les techniques et la méthodologie utilisées par les professionnels de l’analyse de malwares (ou logiciels malveillants). Il s’adresse à des informaticiens passionnés de sécurité, à des professionnels dans le domaine de la sécurité informatique, qui souhaitent une approche opéra-tionnelle et hautement technique.L’auteur commence par l’identification et la classification des malwares, il décrit ensuite les collectes rapportées par des investigations numériques légales (inforensiques) puis les analyse. 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. L’auteur explique le fonctionnement des outils de sandboxes et décrit 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), l’auteur y explique les bases de l’assembleur (x86 et x64) et l’utilisation d’outils d’analyse statique tel que IDA Pro et Radare2 ou de debuggers tel que Immunity Debugger 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. L’auteur détaille les techniques permettant de dépacker des binaires packés. La dernière partie de ce livre parcourt les méthodes permettant d’éradiquer les malwares précédemment identifiés et analysés. 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. Tous les codes sources du livre sont en téléchargement sur le site www.editions-eni.fr.
Avant-propos • Identification d’un malware • Analyse de base • Reverse engineering • Tech-niques d’obfuscation • Détection, confinement et éradication
Les chapitres du livre Paul RASCAGNERES, tout au long de sa car-rière, a créé en Europe diverses équipes de réponses à incidents, il a également réalisé de nombreuses analyses de codes malveillants com-plexes pour un éditeur d’anti-virus. Il travaille aujourd’hui au CERT SEKOIA, où il a pour mis-sion l’analyse de malwares lors d’incidents de sécurité ou lors de projets de recherches. Il par-ticipe également activement à la communauté anti-malware et est l’auteur de nombreuses pu-blications. Au fil des années, il a créé des bases de données de malwares à disposition des cher-cheurs. 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é.
Téléchargementwww.editions-eni.fr.fr
sur www.editions-eni.fr : b Le code source des exemples
du livre, en Python ou en C.b Webographie.
Sécurité informatique
et Malwares Analyse des menaces
et mise en œuvre des contre-mesures
Paul RASCAGNERES
2e édition
Nouvelle édition
1Table des matières
Avant-propos
Chapitre 1
Identification d'un malware
1. Présentation des malwares par familles . . . . . . . . . . . . . . . . . . . . . . . . 91.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.2 Backdoor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101.3 Ransomware et locker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111.4 Stealer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121.5 Rootkit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2. Scénario d'infection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.2 Scénario 1 : l'exécution d'une pièce jointe. . . . . . . . . . . . . . . . . . 142.3 Scénario 2 : le clic malencontreux . . . . . . . . . . . . . . . . . . . . . . . . 152.4 Scénario 3 : l'ouverture d'un document infecté . . . . . . . . . . . . . 162.5 Scénario 4 : les attaques informatiques. . . . . . . . . . . . . . . . . . . . 162.6 Scénario 5 : les attaques physiques : infection par clé USB . . . 17
3. Techniques de communication avec le C&C . . . . . . . . . . . . . . . . . . . 173.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173.2 Mise à jour de la liste des noms de domaine. . . . . . . . . . . . . . . . 183.3 Communication via HTTP/HTTPS/FTP/IRC . . . . . . . . . . . . . . 183.4 Communication via e-mail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193.5 Communication via un réseau point à point . . . . . . . . . . . . . . . 193.6 Communication via des protocoles propriétaires . . . . . . . . . . . . 193.7 Communication passive. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193.8 Fast flux et DGA (Domain Generation Algorithms) . . . . . . . . . 20
Les éléments à télécharger sont disponibles à l'adresse suivante :http://www.editions-eni.fr
Saisissez la référence de l'ouvrage EP2MAL dans la zone de recherche et validez. Cliquez sur le titre du livre puis sur le bouton de téléchargement.
2Analyse des menaces et mise en œuvre des contre-mesures
Sécurité informatique et Malwares
4. Collecte d'informations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214.2 Collecte et analyse de la base de registre. . . . . . . . . . . . . . . . . . . 224.3 Collecte et analyse des journaux d'événements . . . . . . . . . . . . . 244.4 Collecte et analyse des fichiers exécutés au démarrage . . . . . . . 254.5 Collecte et analyse du système de fichiers . . . . . . . . . . . . . . . . . 264.6 Gestion des fichiers bloqués par le système d'exploitation . . . . 324.7 Framework d'investigation inforensique. . . . . . . . . . . . . . . . . . . 334.8 Outil FastIR Collector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
5. Image mémoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375.2 Réalisation d'une image mémoire . . . . . . . . . . . . . . . . . . . . . . . . 385.3 Analyse d'une image mémoire . . . . . . . . . . . . . . . . . . . . . . . . . . . 415.4 Analyse de l'image mémoire d'un processus . . . . . . . . . . . . . . . . 48
6. Fonctionnalités des malwares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496.1 Techniques pour rester persistant . . . . . . . . . . . . . . . . . . . . . . . . 496.2 Techniques pour se cacher . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516.3 Malware sans fichier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556.4 Contournement de l'UAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
7. Mode opératoire en cas d'attaques ciblées persistantes (APT) . . . . . 577.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 577.2 Phase 1 : reconnaissance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587.3 Phase 2 : intrusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587.4 Phase 3 : persistance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 597.5 Phase 4 : pivot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 597.6 Phase 5 : exfiltration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 607.7 Traces laissées par l'attaquant . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
8. Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3Table des matières
Chapitre 2
Analyse de base
1. Création d'un laboratoire d'analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . 631.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 631.2 VirtualBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 641.3 L'outil de gestion d'échantillons de malware Viper . . . . . . . . . . 70
2. Informations sur un fichier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 762.1 Format d'un fichier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 762.2 Chaînes de caractères présentes dans un fichier . . . . . . . . . . . . . 77
3. Analyse dans le cas d'un fichier PDF . . . . . . . . . . . . . . . . . . . . . . . . . . 793.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 793.2 Extraire le code JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 793.3 Désobfusquer du code JavaScript . . . . . . . . . . . . . . . . . . . . . . . . 843.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
4. Analyse dans le cas d'un fichier Adobe Flash . . . . . . . . . . . . . . . . . . . 884.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 884.2 Extraire et analyser le code ActionScript . . . . . . . . . . . . . . . . . . 89
5. Analyse dans le cas d'un fichier JAR . . . . . . . . . . . . . . . . . . . . . . . . . . 905.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 905.2 Récupération du code source depuis les classes . . . . . . . . . . . . . 91
6. Analyse dans le cas d'un fichier Microsoft Office. . . . . . . . . . . . . . . . 936.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 936.2 Outils permettant l'analyse de fichiers Office . . . . . . . . . . . . . . 936.3 Cas de malware utilisant des macros : Dridex . . . . . . . . . . . . . . 946.4 Cas de malware utilisant une vulnérabilité . . . . . . . . . . . . . . . . 96
7. Utilisation de PowerShell. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
8. Analyse dans le cas d'un binaire. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 988.1 Analyse de binaires développés en AutoIt . . . . . . . . . . . . . . . . . 988.2 Analyse de binaires développés avec le framework .NET . . . . 1008.3 Analyse de binaires développés en C ou C++ . . . . . . . . . . . . 101
4Analyse des menaces et mise en œuvre des contre-mesures
Sécurité informatique et Malwares
9. Le format PE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1019.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1019.2 Schéma du format PE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1029.3 Outils pour analyser un PE . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1099.4 API d'analyse d’un PE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
10. Suivre l'exécution d'un binaire. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11610.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11610.2 Activité au niveau de la base de registre . . . . . . . . . . . . . . . . . . 11710.3 Activité au niveau du système de fichiers. . . . . . . . . . . . . . . . . 11910.4 Activité réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12010.5 Activité réseau de type HTTP(S). . . . . . . . . . . . . . . . . . . . . . . . 128
11. Utilisation de Cuckoo Sandbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12911.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12911.2 Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13011.3 Utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13511.4 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14411.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
12. Ressources sur Internet concernant les malwares . . . . . . . . . . . . . . 14612.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14612.2 Sites permettant des analyses en ligne . . . . . . . . . . . . . . . . . . . 14612.3 Sites présentant des analyses techniques . . . . . . . . . . . . . . . . . 15112.4 Sites permettant de télécharger des samples de malwares . . . 153
Chapitre 3
Reverse engineering
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1551.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1551.2 Législation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
2. Assembleur x86. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1572.1 Registres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1572.2 Instructions et opérations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
5Table des matières
2.3 Gestion de la mémoire par la pile . . . . . . . . . . . . . . . . . . . . . . . 1692.4 Gestion de la mémoire par le tas . . . . . . . . . . . . . . . . . . . . . . . . 1712.5 Optimisation du compilateur . . . . . . . . . . . . . . . . . . . . . . . . . . 172
3. Assembleur x64. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1733.1 Registres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1733.2 Paramètres des fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
4. Analyse statique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1744.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1744.2 IDA Pro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
4.2.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1754.2.2 Navigation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1784.2.3 Renommages et commentaires . . . . . . . . . . . . . . . . . . . . 1814.2.4 Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1824.2.5 Plug-ins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
4.3 Radare2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1874.3.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1874.3.2 Ligne de commande . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1874.3.3 Interfaces graphiques non officielles . . . . . . . . . . . . . . . . 189
4.4 Techniques d'analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1894.4.1 Commencer une analyse . . . . . . . . . . . . . . . . . . . . . . . . . 1894.4.2 Sauts conditionnels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1914.4.3 Boucles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
4.5 API Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1934.5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1934.5.2 API d'accès aux fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . 1944.5.3 API d'accès à la base de registre . . . . . . . . . . . . . . . . . . . . 1974.5.4 API de communication réseau . . . . . . . . . . . . . . . . . . . . . 2034.5.5 API de gestion des services . . . . . . . . . . . . . . . . . . . . . . . . 2084.5.6 API des objets COM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2104.5.7 Exemples de l'utilisation de l'API. . . . . . . . . . . . . . . . . . . 2114.5.8 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
4.6 Limites de l'analyse statique . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
6Analyse des menaces et mise en œuvre des contre-mesures
Sécurité informatique et Malwares
5. Analyse dynamique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2205.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2205.2 Immunity Debugger. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
5.2.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2215.2.2 Contrôle de flux d'exécution . . . . . . . . . . . . . . . . . . . . . . 2255.2.3 Analyse d'une librairie . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295.2.4 Points d'arrêt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2305.2.5 Visualisation des valeurs en mémoire . . . . . . . . . . . . . . . 2325.2.6 Copie de la mémoire. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2335.2.7 Support du langage Python . . . . . . . . . . . . . . . . . . . . . . . 2345.2.8 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
5.3 WinDbg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2355.3.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2355.3.2 Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2365.3.3 Commandes de base. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2385.3.4 Plug-in . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2435.3.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
5.4 Analyse noyau Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2445.4.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2445.4.2 Mise en place de l'environnement . . . . . . . . . . . . . . . . . . 2445.4.3 Protections kernel Windows . . . . . . . . . . . . . . . . . . . . . . 2455.4.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
5.5 Limites de l'analyse dynamique et conclusion . . . . . . . . . . . . . 246
Chapitre 4
Techniques d'obfuscation
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
2. Obfuscation des chaînes de caractères . . . . . . . . . . . . . . . . . . . . . . . 2492.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2492.2 Cas de l'utilisation de ROT13 . . . . . . . . . . . . . . . . . . . . . . . . . . 2492.3 Cas de l'utilisation de la fonction XOR avec une clé statique . 252
7Table des matières
2.4 Cas de l'utilisation de la fonction XOR avec une clé dynamique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
2.5 Cas de l'utilisation de fonctions cryptographiques . . . . . . . . . 2602.6 Cas de l'utilisation de fonctions personnalisées . . . . . . . . . . . . 2672.7 Outils permettant de décoder les chaînes de caractères. . . . . . 276
3. Obfuscation de l'utilisation de l'API Windows. . . . . . . . . . . . . . . . . 2773.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2773.2 Étude du cas Duqu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2783.3 Étude du cas EvilBunny . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
4. Packers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2844.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2844.2 Packers utilisant la pile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2864.3 Packers utilisant le tas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2994.4 Encodeur Metasploit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
5. Autres techniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3105.1 Anti-VM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3105.2 Anti-reverse engineering et anti-debug . . . . . . . . . . . . . . . . . . . 312
6. Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
Chapitre 5
Détection, confinement et éradication
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
2. Indicateurs de compromission réseau . . . . . . . . . . . . . . . . . . . . . . . . 3182.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3182.2 Utilisation des proxys. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3192.3 Utilisation des détecteurs d'intrusions . . . . . . . . . . . . . . . . . . . 3222.4 Cas complexes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
3. Détection de fichiers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3253.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3253.2 Empreintes (ou Hash) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3263.3 Signatures avec YARA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
8Analyse des menaces et mise en œuvre des contre-mesures
Sécurité informatique et Malwares
3.4 Signatures avec ssdeep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
4. Détection et éradication de malwares avec ClamAV. . . . . . . . . . . . 3374.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3374.2 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3384.3 Utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
5. Artefacts système . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3475.1 Types d'artefacts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3475.2 Outils. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
6. Utilisation d'OpenIOC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3506.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3506.2 Utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3516.3 Interface graphique d'édition . . . . . . . . . . . . . . . . . . . . . . . . . . . 3526.4 Détection. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
7. Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
Chapitre 2
Analyse de base
Analyse de base
1. Création d'un laboratoire d'analyse
1.1 Introduction
Les malwares sont par nature dangereux pour les systèmes d'information. Lesanalystes doivent donc configurer un environnement afin de ne pas infecterleurs propres machines. Pour cela, les solutions de machines virtuelles sonttrès pratiques et simples à utiliser. En effet, si le malware est exécuté dans cetenvironnement cloisonné, l'infection ne pourra pas se propager à la machinede l'analyste, appelée machine hôte.
Cependant, il faut faire attention à certains points. Les solutions de virtuali-sation permettent de partager des disques ou des répertoires entre la machinehôte et les machines virtuelles. Ces fonctionnalités sont à proscrire ou à utili-ser avec une très grande attention. Par exemple, dans le cas d'un ransomwarechiffrant certains types de fichiers, si un répertoire de la machine hôte conte-nant ce type de fichier était partagé avec la machine virtuelle, ces fichiersseraient bien évidemment chiffrés lors de l'exécution de ce malware.
D'autres points sont également à contrôler. Pour éviter que leurs malwares nesoient trop facilement analysables, certains développeurs de malwares contrô-lent si le malware s'exécute bien sur une machine physique et non unemachine virtuelle. Il convient donc de configurer la machine virtuelle pourqu'elle ressemble autant que possible à une machine physique.
© E
dit
ions
EN
I -
All r
ights
rese
rved
64Analyse des menaces et mise en œuvre des contre-mesures
Sécurité informatique et Malwares
1.2 VirtualBox
VirtualBox est une solution de virtualisation libre développée par Oracle etdisponible à l'adresse suivante : https://www.virtualbox.org/. Cet outil esttrès intéressant pour un analyste de malwares car très simple d'utilisation, trèssouple, et il existe également une API pour pouvoir le manipuler à l'aide descripts. Après l'installation, voici l'écran affiché lors du premier lancement :
Pour créer une première machine virtuelle, il suffit de cliquer sur le boutonNew. Un assistant va alors poser des questions afin de configurer la machinevirtuelle, telles que le nombre de CPU (Central Processor Unit), la quantité demémoire à allouer à la machine virtuelle... Il est important de suivre les recom-mandations de l'assistant afin que la machine virtuelle puisse fonctionner nor-malement.
© E
dit
ions
EN
I -
All r
ights
rese
rved
66Analyse des menaces et mise en œuvre des contre-mesures
Sécurité informatique et Malwares
La seconde partie de la configuration consiste à paramétrer le réseau. Pour lemodifier, il faut cliquer sur Settings, puis Network. À présent, la configura-tion réseau apparaît :
Il est préférable de configurer l'interface en mode Host-only Adapter. Cetteconfiguration permet de créer une interface réseau dédiée à la machine vir-tuelle et de ne pas partager l'interface physique de la machine hôte. Ce type deconfiguration est intéressant dans le cas où l'analyste souhaiterait enregistrerle trafic réseau sortant de la machine virtuelle, directement sur l'interfacevboxnet0.
À présent, le système d'exploitation peut être installé dans VirtualBox, l'ins-tallation s'effectuant de la même manière qu'une installation sur une machinephysique. Il est possible de partager directement le CD-ROM d'installationavec une machine virtuelle. Pour cela, il faut aller dans Settings, puis Sto-rage, choisir le lecteur CD parmi les contrôleurs IDE disponibles et connecterle lecteur CD de la machine hôte au lecteur CD virtuel. Il est possible d'utiliserun fichier ISO à la place d'un lecteur CD physique.
67Analyse de baseChapitre 2
Pour finir, afin de pouvoir exécuter des malwares modernes tentant de détec-ter les machines virtuelles, il est nécessaire de modifier la configuration de lamachine virtuelle dans VirtualBox. Ces modifications ont pour but de fairepasser la machine virtuelle pour une machine physique.
Dans le cas où la machine hôte est un système sous Linux, il est possible derécupérer les caractéristiques de la machine physique :
rootbsd@lab:~$ dmidecode -t0
# dmidecode 2.11
SMBIOS 2.7 present.
Handle 0x0000, DMI type 0, 24 bytes
BIOS Information
Vendor: <vendeur>
Version: <version du BIOS>
Release Date: <date du BIOS>
[...]
rootbsd@lab:~$ dmidecode -t1
# dmidecode 2.11
SMBIOS 2.7 present.
Handle 0x0001, DMI type 1, 27 bytes
System Information
Manufacturer: <vendeur>
Product Name: <produit>
Version: <version>
Serial Number: <numero de serie>
UUID: <UUID>
Wake-up Type: Power Switch
SKU Number: <chiffres>
Family: <chiffres>
Ces données sont à appliquer dans la configuration de la machine virtuelle.Pour cela, il faut utiliser la commande VBoxManage. Voici les commandesdans le cas où la machine virtuelle se nommerait « lab » :
rootbsd@lab:~$ VBoxManage setextradata "lab"
"VBoxInternal/Devices/pcbios/0/Config/DmiBIOSVendor" "<vendeur>"
rootbsd@lab:~$ VBoxManage setextradata "lab"
"VBoxInternal/Devices/pcbios/0/Config/DmiBIOSVersion" "<version du
BIOS>"
rootbsd@lab:~$ VBoxManage setextradata "lab"
"VBoxInternal/Devices/pcbios/0/Config/DmiBIOSReleaseDate" "<date
© E
dit
ions
EN
I -
All r
ights
rese
rved
68Analyse des menaces et mise en œuvre des contre-mesures
Sécurité informatique et Malwares
du BIOS>"
rootbsd@lab:~$ VBoxManage setextradata "lab"
"VBoxInternal/Devices/pcbios/0/Config/DmiBIOSReleaseMajor" <date
du BIOS>
rootbsd@lab:~$ VBoxManage setextradata "lab"
"VBoxInternal/Devices/pcbios/0/Config/DmiBIOSReleaseMinor" <date
du BIOS>
rootbsd@lab:~$ VBoxManage setextradata "lab"
"VBoxInternal/Devices/pcbios/0/Config/DmiBIOSFirmwareMajor" <date
du BIOS>
rootbsd@lab:~$ VBoxManage setextradata "lab"
"VBoxInternal/Devices/pcbios/0/Config/DmiBIOSFirmwareMinor" <date
du BIOS>
rootbsd@lab:~$ VBoxManage setextradata "lab"
"VBoxInternal/Devices/pcbios/0/Config/DmiSystemVendor" "<vendeur>"
rootbsd@lab:~$ VBoxManage setextradata "lab"
"VBoxInternal/Devices/pcbios/0/Config/DmiSystemProduct"
"<produit>"
rootbsd@lab:~$ VBoxManage setextradata "lab"
"VBoxInternal/Devices/pcbios/0/Config/DmiSystemVersion"
"<produit>"
rootbsd@lab:~$ VBoxManage setextradata "lab"
"VBoxInternal/Devices/pcbios/0/Config/DmiSystemSerial" "<numero de
serie>"
rootbsd@lab:~$ VBoxManage setextradata "lab"
"VBoxInternal/Devices/pcbios/0/Config/DmiSystemSKU" "Not
Specified"
rootbsd@lab:~$ VBoxManage setextradata "lab"
"VBoxInternal/Devices/pcbios/0/Config/DmiSystemFamily"
"<"chiffre">"
rootbsd@lab:~$ VBoxManage setextradata "lab"
"VBoxInternal/Devices/pcbios/0/Config/DmiSystemUuid" "<UUID>"
Il peut être également intéressant de modifier l'adresse MAC (Media AccessControl) de la carte réseau de la machine virtuelle :
rootbsd@lab:~$ VBoxManage modifyvm "lab" --macaddressX
<MAC>
On peut également modifier les paramètres des disques durs et descontrôleurs :
rootbsd@lab:~$ VBoxManage setextradata "lab"
"VBoxInternal/Devices/piix3ide/0/Config/PrimaryMaster/SerialNumber"
"<serial>"
rootbsd@lab:~$ VBoxManage setextradata "lab"
top related