Inside Out - Blog CyberSécurité Blog   /  

Présentation des 11 meilleurs outils d’analyse des malwares et de leurs fonctionnalités

Présentation des 11 meilleurs outils d’analyse des malwares et de leurs fonctionnalités | Varonis

Les malwares constituent désormais une menace redoutable pour les entreprises du monde entier. Le simple fait d’ouvrir la pièce jointe d’un courriel peut coûter des millions de dollars à une entreprise, si aucun contrôle approprié n’a été mis en place. Par chance, de nombreux outils permettent de lutter contre ces cybermenaces.

Lorsqu’elle prend en charge un incident de sécurité impliquant un malware, une équipe d’analyse numérique ou de recherche récupère généralement un échantillon du malware pour l’étudier, mieux comprendre ses capacités et guider son enquête.

Plusieurs outils peuvent l’aider à procéder à une ingénierie inverse de cet échantillon. La bonne nouvelle ? Tous ceux que j’utilise sont gratuits et open source. Dans cet article, je vais évoquer mes 11 outils d’analyse de malwares préférés (sans ordre particulier) et leur intérêt :

  1. PeStudio
  2. Process Hacker
  3. Process Monitor (ProcMon)
  4. ProcDot
  5. Autoruns
  6. Fiddler
  7. Wireshark
  8. x64dbg
  9. Ghidra
  10. Radare2/Cutter
  11. Cuckoo Sandbox

Outils et techniques d’analyse des malwares

techniques d’analyse de malwares à utiliser en parallèle des outils Avant d’exécuter le malware pour surveiller son comportement, je procède à une analyse statique. Les outils que j’utilise pour ce type d’analyse n’exécutent pas le code, mais tentent d’en extraire des indicateurs suspects, comme des hachages, des chaînes et des importations, et de déterminer si le malware est packé. Une fois que j’ai obtenu autant d’informations que possible à l’aide de mes outils et techniques statiques, je lance le malware dans une machine virtuelle spécialement conçue pour l’exécution et l’analyse de programmes malveillants. En parallèle, je m’appuie sur divers outils pour enregistrer son activité, une technique que l’on appelle analyse dynamique. Pendant cette analyse dynamique, je recherche des caractéristiques uniques que je peux attribuer à ce malware. Je m’intéresse ainsi à la création de fichiers ou aux modifications du registre indiquant qu’il cherche à établir une présence persistante. Je peux aussi analyser le trafic réseau pour déterminer quelle infrastructure C2 est appelée.

  • Avertissement : les outils mentionnés dans cet article doivent être utilisés dans une sandbox, par exemple une machine virtuelle conçue pour l’analyse des malwares. N’essayez en aucun cas d’analyser des malwares avec ces outils sur votre système d’exploitation hôte.

1. PeStudio

capture d’écran de l’utilisation de l’outil d’analyse des malwares PeStudio Je commence toujours par me tourner vers PeStudio pour analyser un fichier exécutable Windows. Il s’agit d’un outil très utile pour obtenir un premier aperçu d’un échantillon de malware, et grâce auquel je suis en mesure d’extraire rapidement les artéfacts suspects. Il suffit d’y charger un fichier binaire pour obtenir sans délai des hachages du malware et les éventuels éléments détectés par VirusTotal. Il extrait également une liste de chaînes. Toutefois, si l’échantillon est packé, il ne parviendra peut-être pas à renvoyer des indicateurs de compromission solides. Il convient donc de dépacker l’échantillon, puis d’étudier les chaînes pour obtenir des informations utiles, comme les domaines et adresses IP malveillants. La capture d’écran ci-dessus présente l’entropie du malware. Elle permet de déterminer si le malware est packé ou non. Le packing consiste pour l’auteur du malware à ajouter à ce dernier du code destiné à masquer son véritable fonctionnement et à empêcher son analyse. Pour faciliter l’identification des malwares packés, PeStudio indique le niveau d’entropie du fichier. L’entropie est mesurée sur une échelle allant de 0 à 8, 8 indiquant le niveau le plus élevé d’entropie. Plus l’entropie est élevée, plus le malware a de chances d’être packé. Autre section utile : l’onglet Imports, qui répertorie les fonctionnalités importées dans le malware afin de lui permettre d’exécuter certaines tâches. Par exemple, Windows dispose de nombreuses bibliothèques nommées DLL (Dynamic link library). Chacune de ces bibliothèques contient un ensemble de fonctions qui lui est propre, des API Windows. Ces API sont utilisées par des programmes tout à fait légitimes pour accomplir diverses fonctions. Ainsi, le fichier Kerner32.dll contient l’API CreateProcessW, qui permet de créer un nouveau processus. Toutefois, le malware utilise lui aussi ce mécanisme pour importer ses propres fonctionnalités. Si le malware doit créer un fichier sur le disque, son auteur n’a pas besoin de coder cette fonction : il lui suffit d’importer l’API CreateFileW. En analysant les importations d’un malware, il devient par conséquent possible d’essayer de prédire son comportement.

2. Process Hacker

capture d’écran de l’utilisation de l’outil d’analyse des malwares Process HackerAvec Process Hacker, un analyste peut déterminer quels processus sont en cours d’exécution sur un appareil. Cet outil se montre utile lors de l’exécution d’un malware, car il permet d’identifier les nouveaux processus créés par celui-ci et les emplacements du disque à partir desquels ils sont exécutés. Les malwares essaient souvent de se dissimuler en cachant un clone dans un nouvel emplacement, puis en changeant de nom. Process Hacker met en évidence ces activités, ce qui permet de débusquer facilement les logiciels malveillants. Il est également utile pour extraire des informations de la mémoire d’un processus. Lors de l’exécution d’un malware, Process Hacker est en effet en mesure de rechercher des chaînes dans la mémoire. Ces chaînes renferment souvent des informations utiles, comme les adresses IP, domaines et agents utilisateurs exploités par le malware.

3. Process Monitor (ProcMon)

capture d’écran de l’utilisation de l’outil d’analyse des malwares PeStudio ProcMon est un outil puissant mis au point par Microsoft. Il enregistre en temps réel les activités intervenant sur le système de fichiers, telles que les créations de processus et les modifications du registre. Il se montre extrêmement utile en tandem avec Process Hacker. En effet, les processus créés peuvent être terminés très rapidement : il est alors possible de les analyser dans la capture effectuée par ProcMon. À l’aide de filtres prédéfinis ou de l’arborescence des processus, un analyste peut rapidement déterminer quels processus ont été créés et depuis quel emplacement les fichiers exécutables ont été lancés, mais aussi identifier les dépendances parent/enfant. ProcMon peut s’avérer particulièrement intéressant pour analyser des documents malveillants. Les groupes utilisant Emotet se servent souvent de documents Word comme vecteurs de leurs attaques. Ces documents contiennent des macros qui, une fois activées, appellent l’infrastructure C2 des attaquants et téléchargent la charge utile d’Emotet. Cette activité est totalement invisible pour l’utilisateur de l’appareil compromis. Avec ProcMon, vous pouvez capturer l’ouverture du document Word, et visualiser le processus PowerShell masqué et l’exécution de la commande codée en base64. Une difficulté toutefois : en quelques secondes, ProcMon peut très bien enregistrer plus de 100 000 événements. Ses filtres sont excellents, mais il est toujours possible de passer à côté d’un événement intéressant. Par chance, vous pouvez exporter ces données au format CSV et les importer dans l’outil suivant de ma liste.

4. ProcDot

capture d’écran de l’utilisation de l’outil d’analyse des malwares ProcDot ProcDot permet à un analyste de traiter les données exportées depuis ProcMon et de générer automatiquement une représentation graphique des données capturées. Chargez simplement un fichier CSV dans ProcDot et sélectionnez le nom du processus du malware. Plutôt que de créer des filtres et de passer en revue des centaines de milliers d’événements, vous pouvez désormais étudier un diagramme de l’activité enregistrée du malware. Il est également possible d’enrichir les données de ProcMon en important une capture de paquets générée par un outil tel que Wireshark.

5. Autoruns capture d’écran de l’utilisation de l’outil d’analyse des malwares Autoruns

Autoruns est un autre outil de Microsoft qui présente la liste de tous les logiciels installés sur un appareil et configurés pour s’exécuter lors de son démarrage. Les malwares ont beau se dissimuler, ils finissent par devoir s’exécuter. De plus, pour résister au redémarrage de l’appareil, ils n’ont d’autre choix que d’établir un mécanisme de persistance. Plusieurs techniques sont à leur disposition, comme créer une tâche programmée ou des clés d’exécutions spécifiques dans le registre. Une fois qu’un malware a été exécuté dans une machine virtuelle, Autoruns détecte et met en avant tous les nouveaux logiciels persistants, ainsi que la technique de persistance utilisée. Il s’agit ainsi de l’outil idéal pour analyser un malware.

6. Fiddler

capture d’écran de l’utilisation de l’outil d’analyse des malwares Fiddler Les malwares utilisent souvent les protocoles HTTP/HTTPS pour contacter leurs serveurs C2, télécharger d’autres malwares et exfiltrer des données. Un outil comme Fiddler, qui endosse le rôle de proxy Web, offre la possibilité de capturer ce trafic et de l’analyser. Ce processus est utile pour décortiquer un document intégrant des macros dont l’objectif est de télécharger une charge utile malveillante. Fiddler permet à un analyste d’identifier les domaines codés en dur dans le document et utilisés pour télécharger le malware hébergé. Dans l’exemple ci-dessus, vous pouvez voir que Fiddler a enregistré la tentative de téléchargement d’Emotet par un document Word malveillant depuis divers sites Web. Lorsqu’une tentative échouait, la macro passait au domaine suivant.

7. Wireshark

capture d’écran de l’utilisation de l’outil d’analyse des malwares Wireshark Wireshark est l’outil de référence pour capturer et analyser du trafic réseau. Alors qu’un proxy Web comme Fiddler est dédié au trafic HTTP/HTTPS, Wireshark permet une inspection approfondie des paquets de divers protocoles sur plusieurs niveaux. Lors de l’analyse des paquets capturés dans Wireshark, il est même possible d’extraire des fichiers téléchargés par le malware.

8. x64dbg

capture d’écran de l’utilisation de l’outil d’analyse des malwares x64dbg Les outils que nous avons vus jusqu’à présent peuvent tous être utilisés par des personnes faisant leurs premiers pas dans le monde de l’analyse des malwares. x64dbg ne se laisse pas apprivoiser si facilement. Cet outil est destiné au débogage manuel et à l’ingénierie inverse d’échantillons de malwares. Vous devez donc maîtriser le langage assembleur pour en tirer parti. Cependant, une fois pris en main, x64dbg permet à un analyste de dépacker manuellement un malware et de le disséquer à la manière d’un chirurgien armé d’un scalpel. Une fois que vous avez compris comment utiliser x64dbg, vous pouvez vous concentrer sur les appels de fonctions et d’API importées spécifiques, et commencer à entrer dans le détail du fonctionnement du malware.

9. Ghidra

capture d’écran de l’utilisation de l’outil d’analyse des malwares Ghidra Ghidra a été développé par la National Security Agency (NSA) et correspond plus à un désassembleur qu’à un débogueur. Avec Ghidra, vous pouvez passer en revue les fonctions en langage assembleur, comme avec x64dbg. Toutefois, Ghidra n’exécute pas le code, mais le désassemble, ce qui permet de procéder à une analyse statique. Autre différence importante avec x64dbg, Ghidra tente de décompiler le code dans un format compréhensible par un être humain, se voulant proche de ce que l’auteur du malware a codé à l’origine. Ce processus simplifie souvent l’ingénierie inverse, car l’analyste voit les variables et instructions composant chaque fonction.

10. Radare2/Cutter

capture d’écran de l’utilisation de l’outil d’analyse des malwares Cutter Radare2 est un débogueur en ligne de commande compatible avec Windows et Linux. L’avantage clé de cet outil réside dans sa capacité à analyser les exécutables Linux, un atout par rapport à x64dbg. Une interface graphique nommée Cutter permet de le rendre plus ergonomique pour les personnes que la ligne de commande rebute.

11. Cuckoo Sandbox

capture d’écran de l’utilisation de l’outil d’analyse des malwares Cuckoo Sandbox Cuckoo Sandbox est un outil d’automatisation de l’analyse des malwares. Les sanboxes Cuckoo que j’ai créées par le passé étaient toutes basées sur un hôte Ubuntu, exécutant l’application Cuckoo principale. J’exécute ensuite sur cet hôte une machine virtuelle Windows 7 sous Virtualbox. La machine virtuelle dispose d’un agent Cuckoo, ce qui lui permet de transmettre des données à l’hôte Ubuntu qui exécute Cuckoo. Le malware est envoyé à la machine virtuelle, et l’agent Cuckoo enregistre son activité. Une fois l’analyse terminée, un rapport détaillé sur le malware est établi. Une sandbox Cuckoo constitue un outil très utile au sein d’une entreprise. Lorsqu’un incident en lien avec un malware survient, j’exécute souvent le malware via Cuckoo en parallèle de ma propre analyse pour recueillir autant d’informations que possible depuis mon échantillon. À titre personnel, je trouve que l’analyse de malwares est une discipline fascinante et je me fixe toujours pour mission d’obtenir autant d’informations que possible. Ce n’est pas toujours facile, mais les outils que j’ai présentés dans cet article devraient vous aider à comprendre en quoi consiste l’analyse de malwares et sur quelles bases vous pouvez bâtir votre propre laboratoire d’analyse de malwares. Si vous souhaitez en savoir plus sur l’analyse de malwares, ne manquez pas les articles suivants de Varonis, qui abordent les techniques employées par le malware fileless et expliquent comment coder votre propre keylogger.

Nous sommes Varonis.

Depuis 2005, nous protégeons les données les plus précieuses du monde des mains de vos ennemis grâce à notre plateforme de sécurité des données, leader sur le marché.

Comment fonctionne Varonis ?