Le lundi 22 octobre, une action de perturbation impliquant les forces de l'ordre du monde entier a visé 3ve, une importante opération de fraude publicitaire en ligne. Aujourd'hui, le 27 novembre 2018, 13 chefs d'accusation contre huit accusés ont été déposés. Sur les huit accusés, trois sont en détention et en attente d'extradition. Les campagnes publicitaires frauduleuses affectent l'écosystème de la publicité sur Internet depuis des années, détournant les revenus publicitaires des entreprises légitimes. La base de la fraude est toujours la même : le logiciel imite le comportement de l'utilisateur pour faire croire que de vraies personnes cliquent sur des liens ou consultent des annonces en ligne, bien que ce soit un comportement automatisé et malveillant. D'autres stratégies existent : une autre grande campagne de fraude publicitaire est celle de Stantinko, qui a détourné les clics des utilisateurs pour les rediriger vers les annonces de leur choix. Dans le cas de 3ve, il naviguait dans les annonces à l'insu des utilisateurs concernés.

Un aspect critique pour faire fonctionner de tels systèmes et contourner les mesures existantes de protection contre la fraude publicitaire est de s'assurer que les fausses demandes proviennent d'utilisateurs légitimes par l'intermédiaire d'un large pool d'adresses IP. La campagne 3ve comptait sur au moins deux botnets différents pour avoir accès à une si grande piscine : Boaxxe et Kovter. Comme les chercheurs d'ESET ont activement enquêté sur ces deux réseaux de zombies dans le passé, nous avons pu aider l'opération contre 3ve en fournissant des données techniques aux forces de l'ordre. Bien entendu, une opération de cette envergure exige la collaboration de différents partenaires de l'industrie, chacun apportant sa propre expertise pour mieux comprendre et arrêter la menace.

L'US-CERT a publié une alerte soulignant le comportement du réseau de robots de 3ve et son interaction avec les réseaux de robots Boaxxe et Kovter. Il énumère également les mesures de précaution à prendre pour éviter d'être victime de ces deux dernières souches de logiciels malveillants. Si vous craignez que votre système Windows ne soit compromis par cette menace et que vous ne soyez pas un client ESET, vous pouvez télécharger et utiliser le scanner en ligne gratuit ESET, qui supprimera toutes les menaces, y compris Kovter et Boaxxe, qu'il pourrait trouver sur votre système.

Dans cet article, nous vous expliquerons en détail comment nous avons obtenu les données techniques sur l'infrastructure Boaxxe et Kovter nécessaires à cette opération de perturbation.

Boaxxe

Nous avons déjà publié une analyse détaillée de ce botnet de fraude publicitaire dans un article en deux parties en 2014. A l'époque, Boaxxe, également connu sous le nom de Miuref, détournait le trafic réel des utilisateurs vers les liens qu'il contrôlait. Plus précisément, lorsqu'une victime cherchait un mot-clé particulier dans un moteur de recherche populaire, elle redirigeait le résultat de la recherche des victimes vers un site Web qu'elle contrôlait au lieu des sites Web retournés par le moteur de recherche. Ceci a été rendu possible en utilisant une extension de navigateur Firefox ou Chrome ou en utilisant Internet Explorer en mode embarqué. Cependant, un système compromis par Boaxxe a la capacité de proxy du trafic, ce qui donne l'impression qu'il provient de lui. 3ve utilise cette capacité pour effectuer sa fraude publicitaire.

La fonctionnalité proxy de Boaxxe est très simple : il reçoit une requête DNS ou HTTP chiffrée RC4 de son serveur C&C, la déchiffre et l'exécute, puis renvoie le résultat au serveur C&C. Une requête HTTP classique, déchiffrée, venant de 3ve vers un système Boaxxe compromis, ressemble à ceci :

GET /banners/ajtg.js HTTP/1.1
Host: img.1rx.io
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36

Accept: */*
Referer: http://eatingwell.com/recipes/17986/side-dishes/

Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8

Le système compromis effectue cette demande, "visitant" effectivement la page hébergeant l'annonce et renvoyant la réponse à son serveur C&C. C'est ainsi que 3ve a utilisé les systèmes compromis par Boaxxe pour effectuer ses opérations de fraude publicitaire. Il est intéressant de noter que depuis au moins le début de 2016, nous avons été témoins de demandes similaires à celle qui a été envoyée aux systèmes compromis par Boaxxe. A cette époque, seuls les robots Boaxxe avec des adresses IP américaines étaient utilisés comme proxy, ce qui suggère que les opérateurs de 3ve étaient principalement intéressés par le trafic publicitaire provenant de cette région du monde.

Kovter

ESET a détecté Kovter pour la première fois en 2014, lorsqu'il s’agissait encore d’un rançongiciel. La famille de logiciels malveillants Kovter a beaucoup évolué depuis lors pour devenir des logiciels malveillants de fraude publicitaire. Certaines des caractéristiques les plus notables qui ont été ajoutées au fil des ans comprennent la tromperie et la furtivité. En termes de tromperie, il convient de noter sa capacité à envoyer du faux trafic s'il détecte un moniteur réseau et à mettre fin à son propre processus engendré si Windows Task Manager est lancé. Il est maintenant encore plus furtif qu'auparavant, puisqu’il utilise la persistance dite sans fichier (ou fileless), en stockant sa charge utile malveillante chiffrée dans le registre Windows. De plus, il s'assure de n'effectuer de fraude publicitaire que lorsque le système n'est pas utilisé ou que l'écran est éteint. Il a également la capacité de masquer tous les effets visuels ou sonores lorsqu'il visionne des publicités pour rendre ses activités invisibles à l'utilisateur.

Les opérateurs de 3ve ont utilisé le botnet Kovter différemment de celui de Boaxxe. Un système Kovter compromis peut recevoir une tâche de son serveur C&C et l'exécuter directement en utilisant un navigateur caché Chrome Embedded Framework. Nous suivons le botnet Kovter depuis plus de deux ans grâce à notre plateforme de suivi de botnet. Ce système nous permet de suivre en temps réel les botnets les plus répandus. En analysant les données obtenues, nous pouvons : cartographier l'infrastructure du réseau de zombies ; suivre ses différents fichiers de configuration ; télécharger ses mises à jour de logiciels malveillants ; voir quelles commandes il reçoit ; et voir quelles autres familles de logiciels malveillants il installe. L'objectif principal de la plate-forme ESET est d'aider à maintenir les meilleurs niveaux de protection pour nos utilisateurs et d'enrichir les flux ESET Threat Intelligence. Cependant, il peut également être utilisé pour fournir des données techniques lors d'opérations de perturbation, telles que celles auxquelles nous avons participé contre Dorkbot en 2015 et Andromeda/Gamarue en 2017.

Kovter, tout comme Boaxxe, s’est propagé à des victimes peu méfiantes de différentes manières, y compris le courrier indésirable, les téléchargements en voiture et les systèmes de paiement par installation. Un détail intéressant est que ces deux familles de logiciels malveillants ont été installés en utilisant Nemucod alors que l'opération 3ve était active.

Comme nous l'avons déjà dit, les premiers signes que nous avons vus de l'opération 3ve ont été notre surveillance Boaxxe, où des systèmes compromis situés aux États-Unis ont été utilisés pour les demandes de proxy de fraude publicitaire. En regardant notre télémétrie de Kovter, nous pouvons observer que le botnet Kovter a principalement ciblé l'Amérique du Nord.

Figure 1 - Télémétrie de Kovter pour octobre 2018

Les serveurs C&C de Kovter fonctionnent par couches. Tout d'abord, le robot Kovter récupère sa configuration statique stockée dans sa section ressources. Le fichier de configuration est stocké sous forme chiffrée selon le format suivant :

<16 bytes reversed RC4 key><base64–encoded, encrypted data><16 bytes of padding>

Ce fichier de configuration contient, entre autres, une liste des serveurs C&C de premier niveau ainsi que la clé RC4 nécessaire à la communication réseau.

Figure 2 - Fichier de configuration statique Kovter déchiffré montrant la section des adresses IP du serveur C&C de premier niveau (« cp1 ») et la section des clés RC4 (« key »)

Pour récupérer les serveurs C&C de deuxième niveau, le bot envoie une requête HTTP POST aux serveurs C&C de premier niveau dans le format suivant :

RESP:BOT|c:IPS|vsn:1|<random hex string>

La chaîne hexadécimale est composée de caractères hexadécimaux aléatoires [0-9a-f] et sa longueur est comprise entre 32 et 128 caractères. La requête POST est chiffrée à l'aide d'une clé RC4 aléatoire. Cette clé aléatoire est ajoutée au paquet et le message global est chiffré à l'aide de la clé RC4 trouvée dans le fichier de configuration statique. La communication résultante est envoyée directement au serveur C&C de premier niveau via un socket brut. La réponse du serveur contient les serveurs C&C de deuxième niveau. Ces derniers sont responsables de la transmission des tâches de fraude publicitaire au bot.

Figure 3 - Réponse déchiffrée du serveur de premier niveau de Kovter montrant la section des adresses IP du serveur C&C de deuxième niveau (« domains »)

Grâce à notre traque de Kovter, nous avons pu identifier plusieurs serveurs C&C de premier et deuxième niveau. Ces données ont été transmises aux forces de l'ordre pour faciliter l'opération de perturbation.

Fait à noter, depuis l'opération de perturbation, nous avons observé un changement dans le comportement des serveurs C&C de premier niveau actuels. Ils retournent maintenant l'adresse IP « localhost » conventionnelle (c'est-à-dire 127.0.0.0.1) comme serveur C&C de deuxième niveau. Bien sûr, il nous est impossible de connaître la raison de ce changement, mais il est probable que ce soit pour mettre leur botnet en attente pendant qu'ils tentent de découvrir ce qui en retourne.

Remarques finales

Les botnets de fraude publicitaire existent depuis longtemps et ont coûté très cher aux annonceurs du monde entier. Pouvoir riposter et avoir la capacité de perturber des opérations à l'échelle de 3ve en s'attaquant à divers aspects de son fonctionnement est vital pour l'intégrité de l'écosystème Internet. ESET est fière de pouvoir faire la différence et de fournir une assistance en matière d'application de la loi dans la mesure du possible.

Si vous pensez être infecté par Boaxxe ou Kovter, nous avons un outil gratuit pour vous. ESET Online Scanner détecte et supprime les logiciels malveillants, y compris les milliers de variantes des modules Boaxxe et Kovter.

Pour plus de détails sur les mécanismes de fraude publicitaire de 3ve, vous pouvez consulter le livre blanc de Google et White Ops sur cette opération ici.

Nous remercions tout particulièrement Matthieu Faou, Juraj Jánošík, Viktor Lucza, Filip Mazán, Zoltán Rusnák et Richard Vida pour leur soutien dans cette recherche.