L'analyse de malwares

Fonctionalités des malwares

Persistence

Pour être efficace, un malware va chercher à rester persistant sur le système cible, c'est à dire qu'il va essayer d'être actif au redémarrage du système.
Nous pouvons distinguer quatre techniques principales permettant de rendre persistant un malware au sein d'un système :

  • Base de registre
  • Sous les environnement Windows, la base de registre contient tous les paramétrages relatifs au système et aux programmes.
    Cette base permet notamment, par le biais de certaines clés, d'associer des programmes au redémarrage du système. En voici une liste non exhaustive :

            HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run]
            [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce]
            [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices]
            [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce]
            [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit]
            [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]
            [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce]
            [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices]
            [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce]
            [HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows]
            

    Ces clés varient d'une version de windows à l'autre. Il est donc intéressant de consulter le support officiel pour connaitre la liste de ces entrées pour une version spécifique.

  • Fichier
  • Sous Windows certains fichiers spéciaux permettent de paramétrer le système et son démarrage. C'est le cas par exemple du fichier boot.ini.

  • Service
  • Pour rester persistant, un malware peut s'intégrer sur le système en tant que service.
    Un service est une bibliothèque (.dll) chargée et exécutée au démarrage du système par le processus svhost.exe.
    L'avantage de cette technique est qu'elle permet également de dissimuler l'activité du malware. En effet les services ne sont pas visibles directement par le gestionnaire de taches, puisqu'ils appartiennent au processus svhost.exe.

  • Driver
  • Certains malwares vont même jusqu'a s'intégrer dans des drivers ou encore au niveau du MBR.
    Dans ce cas il est très difficile de les identifier.

    Dissimulation

    Les malwares vont également essayer de cacher au maximum leurs activités au sein du système. Il peuvent tout d'abord s'intégrer dans le système en tant que service pour ne pas être visible directement dans le gestionnaire des taches.
    En effet comme vu précédemment, les services sont chargés par le processus svhost.exe.
    De nombreuses autres techniques de dissimulation existent, les plus connues sont les hook et l'injection de code.

    Hook

    Les hook sont très utilisés notamment par les rootkit. Ils consistent à remplacer une fonctionnalité externe par sa propre fonction.
    Par exemple remplacer la fonction permettant de liste les processus en activité dans le gestionnaire des taches Windows par sa propre fonction.
    En faisant de la sort, il est aisé de cacher la présence du malware dans la liste des processus actifs sur le système.

    Injection de code

    Cette méthode permet de s'intégrer dans un processus légitime du système. Les processus explorer.exe ou winlogon.exe sont couvent ciblés par les malwares dans un environnement Windows.
    L'intérêt est réel puisqu'il permet de se cacher dans un processus habituel pour paraitre inexistant auprès de l'utilisateur.

    Pour faire de l'injection de code de nombreuses méthodes existent.
    Une des plus courantes est l'utilisation de la base de registre. Il suffit de s'inscrire dans la clé de base de registre suivante pour injecter une DLL dans un processus spécifique :

    HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Windows\AppInit_DLLs

    Cette clé permet d'indiquer les DLL chargées avec le système.