Depuis quelques jours déjà, lorsque je me connecte avec mon logiciel de messagerie instantanée préféré (Adium :)) sur MSN je reçois de la part d'un de mes contacts des messages me proposant d'aller voir des photos. Je pense que vous avez déjà reçu des messages de ce type car malheureusement beaucoup de gens tombent dans le panneau et cliquent sur ces liens. Puisque ce type de messages m'agace, j'ai voulu regarder de plus près comment cela fonctionne et pourquoi tant de gens se font contaminer par ce type de malwares utilisant les logiciels de messagerie instantanée tel que MSN pour se répandre.
Dans le cas de ce malware, j'ai reçu par l'intermédiaire de mon contact plusieurs messages du type "regardez cette photo :D http://tinyurl.com/###" ou ### varie d'un message à l'autre. Ces liens ont rapidement été identifiés comme une utilisation illégale du service TinyURL et ne sont plus actifs. Les 2 liens TinyURL que j'ai testé renvoyais vers des URLs différentes et proposaient donc de télécharger des fichiers différents : un nommé IMAGE.JPG.exe et l'autre pict20100501_jpg.scr (format des écrans de veille Windows). Ces 2 fichiers sont hébergés sur le même serveur hébergé au Royaume Uni.
On peut remarquer que l'auteur du malware essaie de tromper l'utilisateur quand au type réel du fichier. Par exemple, le premier est nommé IMAGE.JPG.exe ce qui lorsque l'on active pas l'affichage des extensions sous Windows donne IMAGE.JPG, donc l'utilisateur croit avoir affaire à une vraie image et l'ouvre inconsciemment. Concernant le second fichier, l'icone utilisée est la même que celle des images de type JPEG et comme pour le premier fichier, l'auteur ruse sur le nom de fichier, ce qui donne un fichier visuellement très proche d'une vraie image. Cependant, je ne comprend pas pourquoi l'auteur n'a pas utilisé l'icône des fichiers JPEG pour le fichier exécutable et pourquoi il a terminé le nom du second fichier par _jpg.scr et pas par .jpg.scr afin de tromper plus facilement la victime...
Petit conseil : si vous recevez un message écrit en anglais d'une personne française (ou qui ne parle pas anglais) ou si le message vous vouvoie alors que le message provient d'un contact proche qui habituellement vous tutoie (comme c'est le cas ici), il y a de grandes chances pour que ce message provienne d'un malware.
2 - Analyse comportementale du malware
2.1 - Au niveau du système de fichiers
Pour comprendre le fonctionnement de ce malware, j'ai utilisé un Windows XP SP2 Professionnel de base (sans mises à jour) dans une machine virtuelle (VMware Fusion) afin de pouvoir facilement contrôler le risque lié à ce logiciel malveillant. VMware permet aussi de faire des snapshots ce qui est très pratique pour jongler entre plusieurs "états" de la VM.
J'ai commencé par observer ce que faisait ce malware lorsqu'on le lançait. Je me suis donc muni d'outils tels que Regshot et CaptureBAT ce qui m'a permis de voir que le malware modifiait le registre Windows et créait le fichier C:\WINDOWS\secfil.exe. Celui-ci est invisible dans explorer.exe (même avec l'affichage des fichiers cachés activé) et dans l'interpréteur de commande cmd.exe par contre l'autocomplétion dans cmd.exe révèle sa présence. On y a également accès à partir d'un liveCD linux de type Backtrack ou autre.
Ce malware utilise des techniques de dissimulation semblables à celles utilisées par les rootkits afin de se cacher dans le système de fichiers, cependant il est visible dans la liste des processus en cours (ex : Gestionnaire des tâches).
Le fichier secfil.exe est exactement le même que IMAGE.JPG.exe, car ce dernier lors de sa première exécution s'est auto-copié dans C:\WINDOWS afin que le système victime soit toujours infecté après la suppression du fichier original.
2.2 - Dans le registre Windows
Au niveau du registre Windows, le malware s'autorise auprès du pare-feu Windows grâce à l'ajout de ces valeurs :
HKLM\SYSTEM\ControlSet001\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\AuthorizedApplications\List\C:\Documents and Settings\Administrateur\Bureau\IMAGE.JPG.exe: "C:\Documents and Settings\Administrateur\Bureau\IMAGE.JPG.exe:*:Enabled:Userinit"
HKLM\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\AuthorizedApplications\List\C:\Documents and Settings\Administrateur\Bureau\IMAGE.JPG.exe: "C:\Documents and Settings\Administrateur\Bureau\IMAGE.JPG.exe:*:Enabled:Userinit"
Si on déchiffre ceci, on voit que le malware s'autorise à accéder à n'importe quel machine accessible sur le réseau local et sur Internet (*), que la règle est activée au niveau du pare-feu (Enabled) et que son nom est "Userinit".
Il modifie également une valeur du registre pour être exécuté au démarrage de Windows (avant explorer.exe) :
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit: "C:\WINDOWS\system32\userinit.exe,C:\WINDOWS\secfil.exe"
2.3 - Mais comment communique t-il ?
En analysant les paquets sortants avec Wireshark j'ai pu voir qu'au démarrage de ma VM, le malware se connecte à un serveur IRC qui permet au botmaster de donner des ordres à tous les bots dont ma VM. Le malware ne se connecte pas toujours sur le même serveur IRC, ainsi j'en ai trouvé 3 :
- 2.nomdedomaine.com (situé au Royaume-uni, et enregistré le 22-03-2010)
- irc.nomdedomaine0.com (situé à Chicago, USA)
- irc.nomdedomaine000.com (situé en Serbie Monténégro)
Il en est de même pour le port de destination qui est soit 1234 soit 1241.
Sur certains serveurs IRC auxquels il se connecte, une phase d'authentification a été mise en place grâce à la commande IRC "PASS". Après, le malware choisit un nickname au format suivant [CODE_PAYS|CODE_OS]NOMBRE_ALÉATOIRE. Pour mon cas un des nicknames fut : [FRA|XP]5531626, puis il se connecte au canal "#dl#". Ensuite, le malware reçoit à plusieurs reprises un message privé (PRIVMSG) envoyé par différents nicknames (botmasters) dont un fi2ani, contenant un lien vers d'autres fichiers exécutables situés sur des serveurs en Allemagne et aux Etats Unis (à Saint Louis et Chicago).
Un des liens déclenche le téléchargement d'un fichier exécutables situé sur un serveur web qui une fois enregistré dans le répertoire des fichiers temporaires du compte local, s'exécute et commence a exploiter ma VM. Il se connecte notamment à un second serveur IRC de contrôle (irc.nomdedomaine00.com, encore situé à Chicago) et télécharge d'autres fichiers exécutables. Lui aussi modifie le registre afin de s'autoriser auprès du pare-feu et de se lancer au démarrage grâce à l'ajout d'une valeur dans la clé de registre suivante : HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run.
J'ai testé ce malware au service VirusTotal pour avoir un aperçu des différents anti-virus reconnaissant ce fichier comme un malware, et à ma grande surprise seulement 10 des 41 testés identifient le fichier comme une menace potentielle. A ce jour, AntiVir, Avast, BitDefender, ClamAV, DrWeb, GData, Kaspersky, McAfee, Microsoft, Symantec, TrendMicro ne reconnaissent pas ce malware alors qu'ils sont très présent sur le marché des solutions antivirales, ce qui est relativement inquiétant. Si vous souhaitez accéder au rapport généré par VirusTotal, il y a un lien à la fin de l'article.
Il y a une chose que je n'ai pas comprise, c'est pourquoi l'autorisation au niveau du pare-feu est attribuée au fichier IMAGE.JPG.exe (fichier exécuté par l'utilisateur) alors qu'à chaque démarrage c'est le fichier secfil.exe qui est automatiquement exécuté. De plus, quand je rétablie les paramètres par défaut du pare-feu (donc IMAGE.JPG.exe n'a plus d'autorisation), la communication entre secfile.exe et les différents serveurs IRC est toujours possible. Si vous avez des réponses à mes questions, n'hésitez pas à laisser un commentaire, je vous en serais très reconnaissant.
Ce qu'il faut retenir de cette analyse comportementale c'est que les cybercriminels (je préfère utiliser ce mot plutôt que "pirates" car il est plus clair aux yeux de tous) rusent afin de piéger l'utilisateur qui, s'il n'est pas conscient des risques auxquels il est exposé sur Internet, sera une proie très facile. Ici, l'utilisation de l'ingénierie sociale (social engineering) pour répandre le malware de type "bot" en est un bon exemple. De plus, le nombre de serveurs utilisés et leur dispersion montrent à quel point ces cybercriminels sont organisés. Pendant cette phase d'analyse, je n'ai pas observé d'activité de propagation de la part du logiciel malveillant présent dans ma machine virtuelle. Les prochaines étapes seront (peut-être) l'analyse du code afin de mieux comprendre son fonctionnement et découvrir les techniques utilisées par les développeurs et l'analyse d'un des fichiers téléchargés par le malware.
Vidéo sur le même sujet (en anglais) :