15
Sécurité informatique et Malwares Analyse des menaces et mise en œuvre des contre-mesures Paul RASCAGNERES 2 e édition

Sécurité informatique et Malwares tionnelle et hautement …€¦ · plexes pour un éditeur d’anti-virus. Il travaille aujourd’hui au CERT SEKOIA, où il a pour mis-sion l’analyse

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Sécurité informatique et Malwares tionnelle et hautement …€¦ · plexes pour un éditeur d’anti-virus. Il travaille aujourd’hui au CERT SEKOIA, où il a pour mis-sion l’analyse

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

Page 2: Sécurité informatique et Malwares tionnelle et hautement …€¦ · plexes pour un éditeur d’anti-virus. Il travaille aujourd’hui au CERT SEKOIA, où il a pour mis-sion l’analyse

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.

Page 3: Sécurité informatique et Malwares tionnelle et hautement …€¦ · plexes pour un éditeur d’anti-virus. Il travaille aujourd’hui au CERT SEKOIA, où il a pour mis-sion l’analyse

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

Page 4: Sécurité informatique et Malwares tionnelle et hautement …€¦ · plexes pour un éditeur d’anti-virus. Il travaille aujourd’hui au CERT SEKOIA, où il a pour mis-sion l’analyse

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

Page 5: Sécurité informatique et Malwares tionnelle et hautement …€¦ · plexes pour un éditeur d’anti-virus. Il travaille aujourd’hui au CERT SEKOIA, où il a pour mis-sion l’analyse

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

Page 6: Sécurité informatique et Malwares tionnelle et hautement …€¦ · plexes pour un éditeur d’anti-virus. Il travaille aujourd’hui au CERT SEKOIA, où il a pour mis-sion l’analyse

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

Page 7: Sécurité informatique et Malwares tionnelle et hautement …€¦ · plexes pour un éditeur d’anti-virus. Il travaille aujourd’hui au CERT SEKOIA, où il a pour mis-sion l’analyse

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

Page 8: Sécurité informatique et Malwares tionnelle et hautement …€¦ · plexes pour un éditeur d’anti-virus. Il travaille aujourd’hui au CERT SEKOIA, où il a pour mis-sion l’analyse

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

Page 9: Sécurité informatique et Malwares tionnelle et hautement …€¦ · plexes pour un éditeur d’anti-virus. Il travaille aujourd’hui au CERT SEKOIA, où il a pour mis-sion l’analyse

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

Page 10: Sécurité informatique et Malwares tionnelle et hautement …€¦ · plexes pour un éditeur d’anti-virus. Il travaille aujourd’hui au CERT SEKOIA, où il a pour mis-sion l’analyse

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.

Page 11: Sécurité informatique et Malwares tionnelle et hautement …€¦ · plexes pour un éditeur d’anti-virus. Il travaille aujourd’hui au CERT SEKOIA, où il a pour mis-sion l’analyse

© 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.

Page 12: Sécurité informatique et Malwares tionnelle et hautement …€¦ · plexes pour un éditeur d’anti-virus. Il travaille aujourd’hui au CERT SEKOIA, où il a pour mis-sion l’analyse

65Analyse de baseChapitre 2

La machine virtuelle est à présent configurée :

Page 13: Sécurité informatique et Malwares tionnelle et hautement …€¦ · plexes pour un éditeur d’anti-virus. Il travaille aujourd’hui au CERT SEKOIA, où il a pour mis-sion l’analyse

© 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.

Page 14: Sécurité informatique et Malwares tionnelle et hautement …€¦ · plexes pour un éditeur d’anti-virus. Il travaille aujourd’hui au CERT SEKOIA, où il a pour mis-sion l’analyse

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

Page 15: Sécurité informatique et Malwares tionnelle et hautement …€¦ · plexes pour un éditeur d’anti-virus. Il travaille aujourd’hui au CERT SEKOIA, où il a pour mis-sion l’analyse

© 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"