Etude de Dridex et de son fonctionnement

Gthia
INSA TC
Published in
11 min readOct 28, 2020

Nous allons nous intéresser au malware Dridex et à son fonctionnement. Dridex est un cheval de Troie bancaire et apparaît pour la première fois (du moins est détecté pour la première fois) en juillet 2014 [1]. Il s’agit d’une variante retravaillée du trojan Bugat, de plus ils possèdent des parties de code source en commun. La fonctionnalité cœur de Dridex est de voler des mots de passe permettant d’accéder à des comptes en ligne, notamment bancaires, et ainsi réaliser des virements frauduleux depuis les comptes compromis.

Qu’est ce qu’un malware?

Il est avant tout nécessaire de faire la distinction entre tous les termes désignant des logiciels malveillants. Malware est le terme désignant tout logiciel, code, ou application ayant pour but de nuire à un système ou à l’utilisateur qui l’utilise. L’objectif peut être de voler des données personnelles, financières, commerciales, ou encore de porter atteinte au système d’information de la cible en sabotant la machine cible. Malware est donc un terme large pouvant notamment désigner des :

  • virus

Un virus est un morceau de code capable d’infecter un logiciel et de se propager de fichier en fichier. Par la suite, lorsqu’un fichier est partagé sur un nouvel ordinateur, le virus est alors capable de se propager sur le nouvel hôte.

  • vers

Tout comme les virus, les vers se propagent et causent des dégâts en se répliquant rapidement. Cependant, la différence entre ces derniers est qu’un virus nécessite l’aide d’un hôte tandis qu’un ver est capable d’agir indépendamment. En effet, un virus est inactif sur un système tant qu’on ne l’a pas exécuté (il peut par exemple être placé dans une macro d’un fichier word), tandis qu’un ver ne requiert pas d’activation, ils peuvent se dupliquer et se propager d’eux même sur la machine hôte mais aussi sur le réseau local.

  • chevaux de Troie

Les chevaux de Troie sont des logiciels intrusifs qui visent à accéder illégitimement à des données privées d’utilisateurs via leur poste informatique. Parmi ceux-ci on trouve notamment les Banking Trojans ou encore les chevaux de Troie bancaires visant à accéder aux comptes bancaires de particuliers ou d’entreprise afin de détourner de l’argent.

  • ransomwares

Un rançongiciel ou ransomware est un logiciel malveillant d’extorsion de données. Le ransomware chiffre certaines données sur un poste infecté et demande une rançon en échange d’une clé qui permettra de déchiffrer et de retrouver les données de l’utilisateur.

Origine

Bien qu’il n’est pas toujours évident de faire le lien entre un malware et ses auteurs, les acteurs du cybercrime restent relativement restreints. Par conséquent, des liens peuvent être établis dans la durée entre des groupes et des malwares spécifiques. C’est notamment le cas pour Dridex, ou à l’origine Bugat, qui serait associé au groupe Evil Corp [1]. Ce groupe, en activité depuis 2014, aurait selon le FBI tenté de subtiliser plus de 220 millions de dollars depuis leurs débuts, avec une réussite de 70 millions [5]. Majoritairement connu à travers Dridex, le groupe aurait également utilisé d’autres malwares tels le ransomware Locky ou BitPaymer (détaillé plus loin) [3].

Néanmoins, les autorités de multiples pays suivent de près les activités du groupe et arrivent de temps à autre à cibler des individus pour leurs activités au sein de celui-ci. C’est notamment le cas en 2019 de deux hackers russes soupçonnés d’être derrière le groupe, Maksim V. Yakubets et Igor Turashev, pour lesquels les USA ont publié une prime de 5 millions de dollars en échange de renseignements [4]. Les deux individus sont soupçonnés d’être en Russie.

Après ces évènements, Evil Corp a tenu un profil bas pendant quelques temps avant, semblerait-t-il, de revenir récemment avec un nouvel outil, WastedLocker, découvert en juin 2020 et notamment utilisé dans le cadre de l’attaque qui a touché le groupe Garmin l’été de la même année [3].

Propagation

Tout d’abord la propagation passe principalement par la distribution de courriels d’hameçonnage, poussant l’utilisateur à ouvrir un fichier malveillant. Une fois ce bout de code exécuté, le poste va va être asservi par un botnet et ainsi rejoindre l’ensemble des éléments composant l’infrastructure de Dridex. Celle-ci est composé de trois couches, rendant l’identification des noeuds racines plus difficile. Elle est comme suit :

Fonctionnement du botnet Dridex (Source : Rapport de l’ANSSI [1])

Les frontends C2 servent de reverse-proxy aux backends C2, qui composent l’infrastructure racine. Ceux-ci gèrent et distribuent les modules composant le logiciel Dridex aux noeuds compromis, où se situent les botnets.

Concernant la distribution, on peut notamment citer les botnets Necurs ou Ursnif [1]. Actif depuis 2012, Necurs était l’un des plus grands botnet en termes de volume de distribution de spam, et serait intervenu dans la distribution au Royaume-Uni, Australie, Allemagne, France et Autriche. On peut également évoquer le botnet Cutwail, lui aussi impliqué dans la distribution à grande échelle de courrier malveillant, est quant à lui intervenu principalement à l’encontre des Etats-Unis, du Canada et de l’Australie. Une fois le courriel malveillant reçu, l’ouverture de la pièce jointe conduit à l’exécution du code malveillant. Néanmoins, à la suite d’une opération d’envergure de Microsoft pour faire tomber Necurs au courant du printemps 2020 [6], Ursnif est désormais un des plus gros botnet utilisés actuellement [7].

Un autre moyen de propagation notable est l’utilisation depuis 2019 de SocGholish [1]. Au lieu d’envoyer une pièce jointe contenant du code malveillant comme précédemment évoqué, cette méthode consiste à rediriger l’utilisateur vers une URL malveillante par exemple depuis ici encore un courriel d’hameçonnage. Il est alors proposé à l’utilisateur de télécharger une fausse mise à jour de son navigateur, qui s’avère en réalité être du code qui permettra le téléchargement et l’installation de Dridex sur le système de l’utilisateur.

Fonctionnement général de Dridex

Une fois Dridex ayant infecté une machine, plusieurs étapes vont se succéder pour déployer et mettre en œuvre la totalité de ses fonctionnalités. Dridex est composé de plusieurs éléments clés, notamment un loader qui va se charger d’obtenir la charge utile du malware, ainsi que divers modules qui permettront d’étendre les fonctionnalités intégrées.

Dridex est donc en premier lieu composé d’un loader, fichier propagé via les courriels d’hameçonnage évoqué précédemment. Il est important de distinguer derrière le terme “loader” la notion de “downloader” et de “dropper”. Bien que ces deux éléments partagent le même objectif, c’est-à-dire d’obtenir la charge utile du malware, ils utilisent une démarche différente.

Un downloader est un script qui va se connecter à une URL ou une IP et télécharger le fichier qui y est hébergé. Ce fichier sera généralement chiffré afin d’outrepasser les firewalls, il sera ensuite déchiffré puis exécuté. Les downloaders peuvent être des macros ou encore des exécutables powershell. Un dropper quant à lui ne nécessite pas de se connecter à internet, il contient le payload en son sein. Il peut alors déchiffrer la charge utile et l’exécuter. Les downloaders, bien que plus contraignants (ils nécessitent d’accéder à une IP pour télécharger la charge utile) sont plus courts, sont plus faciles à écrire, permettent une mise à jour de la charge utile indépendamment du downloader, et ont l’avantage d’être plus difficile à détecter par les antivirus puisqu’il ne s’agit que d’un fichier pointant vers une adresse IP.

Dans le cas de Dridex, il s’agit d’un downloader. Ce dernier va effectuer des vérifications préalable telles que la reconnaissance initiale du système d’information, de l’installation de la charge utile appelée core module, et enfin du téléchargement de modules complémentaires.

Une fois le core module exécuté, les fonctionnalités mises en place sont :

  • Un keylogger permettant d’enregistrer des informations concernant l’activité de la victime telles que des captures d’écran ou les touches de claviers entrées.
  • Des modifications du contenu de sites web par des injections web en interagissant avec le navigateur.

Par ailleurs, les modules complémentaires permettent notamment de mettre en place :

  • une connexion VNC afin d’obtenir un accès au poste de la victime à distance.
  • utilisation d’un proxy SOCKS servant d’intermédiaire lors de la connexion à un serveur extérieur.
  • vol de codes d’accès, vol de courriels de la victime.
  • sabotage du poste de la victime en effaçant le master boot record empêchant le démarrage de l’OS.

Après le déploiement de Dridex

Une fois Dridex et tous ses modules complémentaires installés, la compromission ne s’arrête pas là. Dridex peut servir de dropper au ransomware BitPaymer. Également attribué à Evil Corp, ce malware est vendu à des groupes affiliés en tant que Ransomware-as-a-Service. Il s’agit d’un binaire qui se limite à la partie chiffrement du poste de la victime, mais pas à sa diffusion, raison pour laquelle il doit passer par un intermédiaire.

Concernant l’exploitation des postes infectés, celle-ci repose sur un modèle d’affiliation [1]. Les affiliés paieraient Evil Corp afin de pouvoir utiliser Dridex et d’avoir accès postes compromis, c’est-à-dire aux “command and control servers” (C2 frontends/backends) utilisés par le malware.

Détail de certaines techniques d’injection de code utilisées par Dridex

Penchons nous maintenant à une variante de Dridex apparue et observée pour la première fois en Juillet 2019 permettant notamment de contourner la détection des antivirus. Le downloader est obtenu en pièce jointe d’un courriel de spam. Si l’on ouvre le document word joint et qu’on autorise l’exécution des macros, le downloader s’exécute et télécharge le core module de Dridex comme décrit plus tôt.

Dridex utilise au moins cinq techniques d’injection de code pour collecter et modifier le contenu de sites internet [5]. L’injection de code consiste à ajouter du code à l’intérieur d’un autre processus pour échapper à la détection de certains antivirus tout en accédant à des privilèges élevés sur le système. Parmi ces techniques utilisées par Dridex on trouve notamment :

  • L’atom bombing

Cette technique exploite une vulnérabilité dans les “atom tables” Windows, basées sur l’utilisation de mémoire partagée [8]. Les tables atom sont utilisées par les applications Windows afin de stocker et de partager des integers et des string entre les différents programmes . En procédant ainsi, un malware est capable d’écrire du code dans une ces tables, qui pourront par la suite être lues par l’intermédiaire d’ “Asynchronous Procedure Calls” (APC) en utilisant par exemple un navigateur web. La faiblesse de cette fonctionnalité est d’autant plus grande qu’elle est native et légitime au système d’exploitation, ce qui rend son exploitation difficile à identifier.

  • DLL order Hijacking

Un autre type de vulnérabilité utilisée est le DLL Hijacking (CVE-2014–9207) [9]. Les DLLs (Dynamic-Link Libraries) correspondent aux dépendances d’un fichier. Dans un environnement Windows, lorsqu’une application ou un service démarre, elle doit s’assurer de l’existence de certains fichiers DLL. Lors de cette recherche, elle cherchera selon cet ordre dans les dossiers suivants :

  1. Le dossier de l’application lancée
  2. C:\Windows\System32
  3. C:\Windows\System
  4. Le dossier actuel
  5. Les dossiers situés dans la variable d’environnement du PATH

Dridex va donc se servir de cette vulnérabilité pour copier du code en tant que DLL dans le même dossier que l’exécutable légitime et avec le même nom qu’une dépendance réelle. Lorsque l’exécutable sera exécuté, Windows chargera donc ce DLL compromis lors de la consultation de l’Import Address Table. En procédant ainsi, le malware peut rester indétectable aux yeux de l’antivirus de l’hôte puisque le processus qui est lancé est signé par des applications légitimes de Microsoft.

  • Process hollowing

Lorsqu’un processus est en cours d’exécution, on peut mettre l’exécution de ce dernier en pause. Durant cette pause, il est possible pour un attaquant de changer le contenu du code en cours d’exécution et de le remplacer avec du code malveillant. Cette technique est appelée “Process Hollowing”. En exécutant des binaires Windows légitimes sous un état suspendu, et en remplaçant le code d’applications légitimes, un attaquant est donc capable d’exécuter du code qu’il a écrit tout en se faisant passer pour un exécutable tout à fait légitime aux yeux du système hôte.

  • Thread execution hijacking

Le thread execution hijacking consiste à détourner un processus existant en ajoutant un bout de code malveillant ou un chemin vers un DLL, en mémoire de celui-ci, pour être exécuté par la suite [10]. C’est une méthode très proche du process hollowing, cependant il s’adresse aux processus existants et ne demande pas de créer un processus dans un état suspendu. Pouvoir exécuter du code en se faisant passer pour un autre peut permettre d’accéder au contexte de ce second comme du stockage, des ressources systèmes ou réseau ou encore des privilèges systèmes différents.

Enfin, il est souvent difficile de détecter l’exploitation d’une faiblesse. En effet, ces techniques utilisent souvent des fonctions natives et des processus légitimes présents dans Windows. De plus, le code malveillant peut supprimer les traces de lui-même sur le disque afin de complexifier sa détection. Il est donc nécessaire dans un cadre de détection d’intrusion de s’intéresser non pas seulement à une existence statique de fichiers sur le système mais bien à un comportement dynamique d’application comme des appels systèmes ou réseau suspicieux.

Conclusion

Dans cet article, a été présenté le malware Dridex qui est toujours en activité aujourd’hui, près de 6 ans après sa première identification. Comme évoquée, sa structure complexe lui a permis de constamment évoluer et de s’adapter au fur et à mesure que des failles ou faiblesses étaient découvertes puis corrigées. Nous avons détaillé les étapes qui composent la compromission d’un système par Dridex. Cette amélioration continue est un jeu du chat et de la souris et demande aux solutions, comme aux équipes et entités de sécurité une attention permanente. Une méthode d’investigation du fonctionnement des malwares consiste à les exécuter dans un contexte maîtrisé comme des “sandboxes”. D’autre part, les malwares élaborent des solutions diverses et variées afin d’identifier le cadre d’un système qui serait une “sandbox”. Cette détection peut être basée sur de la détection de hardware ou encore d’environnement avec par exemple la vérification de la température du système, qui ne renvoie pas de résultat dans le cadre d’une VM. Les environnements de sandboxing actuels ont été créés en se basant sur des solutions de machines virtuelles connues, qui permettent aux auteurs de malwares d’améliorer leurs produits en cherchant des techniques afin d’outrepasser leur détection. Ainsi, la détection et la compréhension des malwares est aujourd’hui un travail de fond qui demande un investissement continu et permanent en raison du caractère très évolutif de ces derniers.

Sources

[1] Rapport de l’ANSSI, “Le code malveillant DRIDEX : origines et usages”, 2020. URL : https://www.cert.ssi.gouv.fr/uploads/CERTFR-2020-CTI-005.pdf

[2] Rapport de l’ANSSI, “Synthèse sur le rançongiciel BitPaymer/IEncrypt”, 2019. URL : https://www.cert.ssi.gouv.fr/uploads/CERTFR-2019-CTI-006.pdf

[3] Article en ligne “WastedLocker, le nouveau jouet d’EvilCorp”, ZDNet, 2020. URL : https://www.zdnet.fr/actualites/wastedlocker-le-nouveau-jouet-d-evilcorp-39907437.htm

[4] Article en ligne “Alleged Russian Hacker Behind $100 Million Evil Corp Indicted”, Wired, 2019. URL : https://www.wired.com/story/alleged-russian-hacker-evil-corp-indicted/

[5] Article en ligne “Russian’Evil Corp’ Is Behind a Decade of Hacks, U.S. Says”, Bloomberg, 2019. URL : https://www.bloomberg.com/news/articles/2019-12-05/u-s-sanctions-evil-corp-blamed-for-100-million-cyber-theft

[6] Article en ligne “Microsoft orchestrates coordinated takedown of Necurs botnet”, ZDNet, 2020. URL : https://www.zdnet.com/article/microsoft-orchestrates-coordinated-takedown-of-necurs-botnet/

[7] Article en ligne “May’s Most Wanted Malware: Ursnif Banking Trojan Ranks On Top 10 Malware List for First Time, Over Doubling Its Impact On Organizations”, Check Point, 2020. URL : https://blog.checkpoint.com/2020/06/15/mays-most-wanted-malware-ursnif-banking-trojan-ranks-on-top-10-malware-list-for-first-time-over-doubling-its-impact-on-organizations/

[8] Article en ligne “AtomBombing — A New Code Injection Attack”, ENISA (European Union Agency for Cybersecurity), 2016. URL : https://www.enisa.europa.eu/publications/info-notes/atombombing-2013-a-new-code-injection-attack

[9] Note d’information ICSA-15–069–01, CISA (Cybersecurity and Infrastructure Security Agency), 2018. URL : https://us-cert.cisa.gov/ics/advisories/ICSA-15-069-01

[10] Article en ligne “Malware Analysis 101 — Unpacking Malwares. Case-study: a fresh Emotet sample”, Medium, 2020. URL : https://medium.com/bugbountywriteup/malware-analysis-101-unpacking-malwares-case-study-a-fresh-emotet-sample-f2ea07d90d18

--

--