L'analyse de malwares

Environnement d'analyse

Objectif

Pour analyser des malwares, nous avons besoin d'exécuter les echantillons suspects pour comprendre leur fonctionnement, lors de l'analyse dynamique.

Afin d'éviter de compromettre des systèmes en production, les analystes réalisent leurs études dans un environnement spécifique et isolé du réseau.

Pour cela il est possible d'utiliser une machine physique dédiée à l'analyse de malwares. Cette solution bien qu'efficace, se révèle bien trop contraignante en terme de réutilisabilité.
En effet, il est nécessaire de réinstaller complètement la machine après chaque analyse avec des outils comme Norton Ghost.
Pour éviter ces problèmes, les analystes utilisent principalement des environnements basés sur la virtualisation. La virtualisation va permettre de réaliser l'analyser dans un environnement cloisonné.

Cependant, il faut veiller à garantir une isolation parfaite pour éviter tout échange potentiel avec le système hôte, pouvant se traduire par une infection.
Par ailleurs, certaines malwares sophistiqués sont capables de détecter une solution de virtualisation pour modifier leur comportement ou cesser de s'exécuter pour empêcher toute analyse.

Sandbox

Dans le domaine de l'analyse de malwares, les sandbox sont des environnements clos et isolés ou sont exécutes les malwares. A l'issu de l'exécution d'un échantillon ou après une durée déterminée, un rapport d'analyse est généré.
Ce rapport fournit des informations sur l'échantillon relatant aussi bien de l'analyse statique que de l'analyse dynamique (trafic réseau, processus créé, base de registre ...).


Exemple de rapport d'analyse généré par cuckoo sandbox

De nombreuses solutions existent sur le marché dont cuckoo sandbox libre et utilisable en ligne ici.

Très simple à utiliser, cette solution s'avère utile pour avoir rapidement une première idée sur les caractéristiques d'un fichier suspect.
Néanmoins, il nous est impossible d'agir sur le malware et l'analyse reste limitée aux informations contenues dans le rapport.

Machine virtuelle

Les machines virtuelles sont très utilisées dans le domaine de l'analyse de malware. En effet, correctement configurées elles permettent d'assurer une grande isolation.


Structure d'une machine virtuelle

Comme le montre le schéma ci-dessus, une machine virtuelle va se lancer comme une application standard sur la machine physique.
Elle agit comme un container hébergeant son propre système d'exploitation. Ainsi, toutes les applications lancées dans la machine virtuelle n'interagissent seulement qu'avec le système invité.
En plus de la sécurité, ce procédé apporte une grande souplesse puisqu'il permet de lancer plusieurs machines virtuelles sur une même machine physique. Dans le domaine de l'analyse nous pourrions lancer des analyses sur plusieurs systèmes d'exploitation différents.
De plus les machines virtuelles offrent des fonctionnalités très intéressantes comme la possibilité de prendre des snapshot. Ceci va permettre de sauvegarder l'état de la machine virtuelle à un instant t, pour la restaurer par la suite. Ainsi, il va être très simple de restaurer l'environnement à la fin de chaque analyse.

De nombreuses solutions existent, aussi bien des propriétaires que des gratuites :

Avant de l'utiliser en tant qu'environnement d'analyse, la machine virtuelle doit être configurée pour garantir une isolation suffisante.

  • Isoler le réseau
  • Tout d'abord, afin d'éviter toute prolifération sur le réseau, il est fortement conseillé de désactiver l'accès réseau de la machine virtuelle.
    Pour ce faire il est possible de configurer la carte réseau de la machine virtuel en mode host-only. De cette manière, une interface virtuelle est créée sur la machine physique sur laquelle est reliée la carte réseau de la machine virtuelle, comme le montre le schéma suivant :


    Représentation du mode host-only adapter

    Une autre solution est de créer un LAN virtuel avec plusieurs hôtes invités, représenté par le schéma ci-dessous :


    Simulation d'un LAN virtuel

    Ici, la machine physique exécute deux machines virtuelles. La première est dédiée à l'analyse et est connectée à la seconde machine qui se charge d'offrir des services (DNS, HTTP ...).

  • Installer les dernières mises à jour
  • Comme toute application, une machine virtuelle peut contenir des vulnérabilités exploitables par les malwares.
    Il est donc primordial de maintenir sa solution de virtualisation à jour en appliquant les derniers patchs.

  • Utiliser un environnement minimaliste
  • Il est recommandé de ne pas installer des outils ou des services supplémentaires dans la machine virtuelle.
    Par exemple, en utilisant VirtualBox, il ne faut pas installer les addons invité (guest additions). En effet, ces différents outils peuvent nuire à l'isolation avec le système hôte en créant des interfaces partagées.