Comme de plus en plus d'utilisateurs passent aux plateformes Windows 64 bits, il en va de même pour les logiciels malveillants. Ceci est également vrai pour le malware bancaire ZeuS. Cette évolution n'était probablement pas nécessaire vu que la majorité des gens utilisent encore des navigateurs 32 bits même sous systèmes 64 bits et que la fonctionnalité principale de ZeuS consiste à modifier les sites bancaires localement par injection de code HTML/JAVASCRIPT.
Cependant, nous avons détecté une souche de ZeuS 32 bits qui contient aussi une version 64 bits à l'intérieur. De plus, cette version fonctionne via Tor. Cela pourrait bien être l'avenir de cette famille de logiciels malveillants. Fait intéressant, la plupart des cibles stockées dans le fichier de configuration du malware correspondent au TLD (Top Level Domain) « CH »(Suisse), apparemment dans le secteur bancaire.
Cet article décrit tout ce que nous savons à propos de cette nouvelle version. La majorité de l'analyse a été effectuée par mon collègue Dmitry Tarakanov.
1. Caractéristiques
Cette variante de ZeuS implémente toutes les fonctionnalités habituelles des malwares de cette famille. À l'intérieur du binaire, il est indiqué qu'il s'agit de la version 3.0.0, mais cette information n'est pas vraiment pertinente, car très souvent erronée. La version 32 bits du malware, qui contient la version 64 bits à l'intérieur, vérifie le processus cible dans lequel il souhaite injecter du code malveillant. S'il s'agit d'une application 64 bits, ZeuS injecte la version 64 bits dans le processus, sinon il injecte la version 32 bits habituelle. Nous avons testé cela avec une version 64 bits d'Internet Explorer et les injections ont fonctionné parfaitement. La deuxième caractéristique notable est que toutes les communications entre les victimes et le serveur de commande et de contrôle (C & C) sont envoyées à travers Tor.
Le reste des fonctionnalités de cette version est identique aux versions précédentes du malware ZeuS. Tous les fichiers déposés par le malware sont stockés dans des dossiers avec des noms générés aléatoirement à l'intérieur du répertoire %AppData%.
Comme pour les versions précédentes, la persistence passe par la base de registre :
2. Pourquoi migrer?
La migration vers une nouvelle version 64 bits de ce malware a du demander un certain effort. Était-ce vraiment nécessaire pour les criminels? Selon les statistiques de Kaspersky Lab, l'utilisation de la version 64 bits d'Internet Explorer n'est pas significative. D'après nos statistiques, voici l'utilisation des différentes versions de Windows :
3. Bugs
Il semblerait qu'il existe quelques bugs dans la version 64 bits de ZeuS. Par exemple, nous avons trouvé un bug lorsque ZeuS injecte son code 64 bits dans la version 64 bits de EMET Notifier : le processus ciblé plante.
Cela est dû à des erreurs de calcul d'adresses de certaines fonctions. Quand ZeuS est injecté dans l'application EMET notifier, il tente d'appeler la fonction WSAStartup. Cependant, la variable qui doit contenir une adresse de fonction pointe sur de la mémoire non allouée. Cela génère donc une exception « violation d'accès » et arrête le processus.
Le code source de ZeuS 2.0.8.9 a été divulgué en mai 2011. Nous croyons que cette version de ZeuS est plus proche de la version de 2011 que d'autres branches de ce malware, y compris la Citadelle. Dans le cas de la Citadelle, il existe une protection pour rendre le téléchargement du fichier de configuration impossible depuis le C & C, même avec l'URL correcte. Dans cette version x64, le C&C n'a aucune protection en ce sens. La connaissance de l'URL exacte du fichier de configuration permet son téléchargement. Le fichier de configuration comprend également une liste des programmes contenant des informations intéressantes à voler pour le malware. En voici une liste non exhaustive :
bitcoin-qt.exe, tiny.exe, ibank2.exe, putty.exe, winscp.exe, filezilla.exe, openvpn-gui.exe, openvpn.exe, CliBank.exe, CliBankOnlineUa.exe, CliBankOnlineRu.exe, CliBankOnlineEn.exe, bnk.exe, budget.exe, cbank.exe, edealer.exe, iwallet.exe, jscashmain.exe, mmbank.exe, payments.exe, paymmaster.exe, pinpayr.exe, pkimonitor.exe, rtcert.exeupofcards.exe, webmoney.exe, etc.
4. TOR
Cette version de ZeuS embarque la version 0.2.3.25 du binaire tor.exe. Tor n'est pas lancé directement, mais injecté dans le process « svchost.exe » une fois celui-ci suspendu. Une fois l'injection et l'initialisation terminées, l'exécution de svchost.exe reprend. L'utilitaire Tor s'exécute alors dans ce processus et crée un serveur proxy HTTP en écoute sur le port TCP 9050.
Le serveur C&C pour cette version de ZeuS est dans le domaine oignon suivant : egzh3ktnywjwabxb.onion. Toutes les communications du malware se font à travers ce proxy et le réseau Tor. En outre, cette version de ZeuS crée un service caché Tor sur la machine infectée. La configuration suivante est utilisée :
- HiddenServiceDir "% APPDATA% \ Tor \ hidden_service"
- HiddenServicePort "1080 127.0.0.1: port
- HiddenServicePort "5900 127.0.0.1: port
« HiddenServiceDir » définit l'emplacement de la configuration du service caché, et « HiddenServicePort » comment rediriger les utilisateurs se connectant au domaine oignon du serveur serveur Web s'exécutant localement.
Le port mapping vers des ports locaux aléatoires est fait parce que ZeuS crée un répertoire de configuration Tor pour chaque machine infectée et génère une clé privée unique pour le service caché et le nom de domaine. Ceci permet notamment un mapping vers des ports locaux aléatoires. Tor est configuré de telle sorte qu'il utilise pour chaque domaine oignon une clé privée et un service caché unique différent.
Conclusion
Quel que soit le but de l'auteur de cette nouvelle version (Marketing ou les bases pour l'avenir) une version 64 bits de ZeuS existe enfin. C'est certainement une nouvelle étape dans l'évolution de la famille ZeuS, après les modules pour différents OS mobiles. De plus, cet échantillon comprend une autre caractéristique intéressante que nous avions déjà vu auparavant, mais dans des malwares sans grandes ambitions : la capacité de communiquer à travers le réseau Tor avec des domaines oignon pour le C&C est certainement un problème sérieux pour la lutte contre cette famille de malware. Il devient plus difficile de fermer les C&C.
Jusqu'à présent, la version 64 bits est toujours distribuée à l'aide de la version 32 bits. Nous supposons que la faible utilisation de navigateurs 64 bits est en partie responsable de ce choix. Toutefois, avoir un malware capable d'infecter les machines 32 et 64 bits est un avantage certain pour les criminels, leur offrant la possibilité de cibler une partie des utilisateurs jusque-là épargnés.