BLOG

Dridex vous surveille

Miniature F5
F5
Publié le 22 juin 2016

Les auteurs de Dridex publient fréquemment des mises à jour telles que de nouvelles fonctions d'obscurcissement et un nouveau codage de configuration pour continuer à échapper aux techniques de détection et d'atténuation des fournisseurs de sécurité. Ils ont déplacé la cible de leurs programmes malveillants, qui ciblaient auparavant les institutions financières européennes, vers de nouvelles institutions bancaires aux États-Unis.

De toute évidence, les développeurs du malware font preuve d'une grande maîtrise des paradigmes client et serveur ainsi que de l'obfuscation. La recherche suivante décrit cet ensemble de compétences. Cela, ainsi que l’engagement des auteurs de Dridex envers les mises à jour constantes et fréquentes des fonctionnalités du malware, rend Dridex très agile et par conséquent difficile à détecter, décrypter et analyser.

Comment Dridex vous surveille-t-il ?

Alors, comment se fait-il que Dridex vous surveille sans votre permission et que vous ne le sachiez pas ?

Il se connecte à la machine de l’utilisateur infecté lors des transactions bancaires avec une session à distance. Cette session est invisible pour l’utilisateur car elle se déroule dans une autre instance du bureau que le logiciel malveillant ouvre à l’aide du protocole VNC. Cette instance est dupliquée mais non partagée, ce qui signifie que l’attaquant ne peut pas voir les mouvements de la souris et du clavier de l’utilisateur et vice versa.

Une fois le logiciel malveillant installé sur la machine d'une victime, il « téléphone » au centre de commande et de contrôle (C&C) du botnet afin d'obtenir la liste des cibles et de demander les modules suivants : VNC et CHAUSSETTES.

Le processus d'activation peut être déclenché de deux manières :

  • Par un ordre reçu du C&C
  • Par le hook de fonction du navigateur après avoir inspecté l'indicateur VNC dans la configuration

Cette recherche se concentre sur l’approche des modules injectés. (La manière dont l'initiation VNC a été déclenchée dans la configuration Dridex a été décrite dans un article F5 précédent.)

Flux d'activation VNC

Le flux implique une interaction entre le navigateur infecté et le processus explorer.exe infecté.

Le rôle du navigateur

L'indicateur VNC dans la configuration est inspecté par le code malveillant dans le hook de fonction réseau que Dridex a injecté dans le navigateur.

  1. Ce hook permet à Dridex d'inspecter chaque requête avant qu'elle ne soit envoyée sur le réseau.

Ce hook permet à Dridex d'inspecter chaque requête avant qu'elle ne soit envoyée sur le réseau.
  1. Si l'URL de la requête correspond à une URL dans la configuration « redirections », une demande pour le script malveillant est envoyée au c&c à partir de la fonction réseau hookée.
  2. Une URL ciblée a donc été consultée et un script malveillant a été envoyé à l’utilisateur. Et ensuite ?

  3. Lorsque le script est reçu, l'indicateur VNC est inspecté.
    Si l’indicateur VNC est activé, le logiciel malveillant s’attend à recevoir des données cryptées. Ces données cryptées contiennent des informations que le logiciel malveillant utilise ultérieurement :

    • IP et PORT VNC — l'adresse distante à laquelle se connecter lors du lancement de la session VNC
    • IP et PORT SOCKS — l'adresse distante à laquelle se connecter lors du lancement de la session SOCKS
    • Les données sont cryptées à l'aide d'un XOR (les 4 premiers octets sont la clé)
Dridex Figure 1 : Routine de décryptage complète
Figure 1 : Routine de décryptage complète

Vous trouverez ci-dessous un exemple de réponse HTML simple du serveur avec IP + Port ajoutés (après la routine décryptée) :

alt="Dridex Figure 2 : Contenu du script décrypté ; l'IP et le PORT sont ajoutés"
Figure 2 : Contenu du script décrypté ; l'IP et le PORT sont ajoutés

Le navigateur infecté stocke ces enregistrements IP cryptés dans le registre sous la même clé que la configuration mais sous une sous-clé distincte.
 

Dridex Figure 3 : Les registres IP et PORT
Figure 3 : Les registres IP et PORT

Le navigateur infecté utilise l'API des objets d'événements de Windows pour informer le fichier explorer.exe infecté de démarrer le VNC. À partir de ce moment, le processus d'exploration infecté prend en charge le processus d'activation.


Le rôle de l’explorateur

  1. Le code malveillant dans Explorer s'exécute dans une boucle sans fin dans un thread dédié responsable de la connexion VNC et attend le signal d'événement du navigateur. Une fois ce signal reçu, il extrait les enregistrements IP + Port du registre et les décode.
Dridex Figure 4 : Le navigateur infecté écrit les enregistrements avant que l'explorateur.exe infecté ne les lise
Figure 4 : Le navigateur infecté écrit les enregistrements avant que l'explorateur.exe infecté ne les lise
  1. L'explorateur charge le fichier vnc_x32.dll à l'aide d'une implémentation personnalisée de l'API Windows « LoadLibrary ».
    • Avant ce point, le module VNC réside dans la mémoire d’Explorer sous forme de données brutes.
    • Après avoir mappé toutes les sections PE, il appelle DllEntryPoint de vnc.dll (avec l'indicateur DLL_PROCESS_ATTACH)
    • Cette technique masque le moment où le module VNC est chargé, car il n’est pas possible de suivre « LoadLibrary », ce qui rend l’analyse beaucoup plus difficile.
Dridex Figure 5 : explorer.exe – le code d'explorateur d'origine, worker_x32.dll – le module Dridex principal, vnc_x32.dll – le module vnc
Figure 5 : explorer.exe – le code d'origine de l'explorateur, worker_x32.dll – le module Dridex principal, vnc_x32.dll – le module vnc
  1. vnc_x32.dll exporte deux fonctions pour démarrer et arrêter le serveur.
  2.  

Dridex Figure 6 : Fonctions exportées VNC
Figure 6 : Fonctions exportées VNC

     

  1. Le module worker d’Explorer appelle la fonction VncStartServer avec IP et port comme paramètres afin de lancer la connexion VNC.
     

     

Dridex Figure 7 : L'appel à VNCStartServer avec des paramètres
Figure 7 : L'appel à VNCStartServer avec des paramètres

     

  1. Si une adresse IP VNC externe est reçue sans que le module SOCKS soit impliqué, le module VNC initie une connexion au serveur VNC de l’attaquant. La machine infectée lance la session à distance. Il s’agit d’une manière unique d’utiliser le protocole puisque généralement, le spectateur agit en tant que serveur.
    • Si une adresse VNC locale a été reçue, le module Dridex écoutera la connexion VNC entrante de l'attaquant.
  2.  

     

  3. Après avoir établi une connexion TCP au serveur VNC, vnc_x32.dll utilise la chaîne bot_id – transmise en paramètre à la routine VncStartServer, afin de générer un défi. Ceci est utilisé pour vérifier l’identité du serveur avant que l’établissement de liaison du protocole VNC n’ait lieu.

     

  4.  

Dridex Figure 8 : Schéma de communication entre la victime et l'agresseur
Figure 8 : Schéma de communication entre la victime et l'agresseur

Après cela, si toutes les étapes sont réussies, une session VNC à distance est démarrée et le fraudeur peut effectuer des actions sur la machine de la victime à son insu.

Cette fonctionnalité est généralement utilisée comme action complémentaire après un vol d'identifiants afin de contourner les produits de sécurité au sein de la banque. Ces produits visent à identifier l’utilisateur grâce à l’empreinte digitale unique du navigateur.

L'équipe de recherche de F5 surveille Dridex

La course constante entre les fournisseurs de sécurité et les cybercriminels pousse ces derniers à créer des logiciels malveillants plus obscurs et dotés de nombreux composants différents et indépendants. Ces composants aident les auteurs de logiciels malveillants à surmonter les obstacles et les mesures de protection mis en place par les institutions bancaires et les fournisseurs de sécurité. Ces composants ajoutent également une couche de complexité au processus d’analyse puisqu’il est désormais nécessaire de comprendre l’interaction entre les modules.

Cette course nous pousse également, en tant que chercheurs, à surveiller et à être vigilants quant aux campagnes et à l’évolution de Dridex.