Comment les botnets génèrent leurs noms de domaines

Avec un random() ? 29
Accès libre
image dediée
Crédits : Alexei Tacu/iStock/ThinkStock
Securité
Par
le vendredi 09 janvier 2015 à 18:00
Guénaël Pépin

Qu’ils servent à voler des données, à espionner ou à bloquer un site web, les réseaux d’ordinateurs zombies (botnets) exploitent des serveurs de contrôle, généralement en annexant un nom de domaine. Comment les pirates réalisent-ils cette opération ? Que font les autorités ? Comment ces activités sont-elles identifiées ? Nous avons tenté d'en savoir plus.

Début décembre se tenait la Botconf, un évènement de trois jours qui réunissait 200 spécialistes de la lutte contre les botnets à Nancy (voir notre entretien). Un botnet, c’est un réseau d’ordinateurs infectés par un malware et contrôlés à distance, par dizaines, centaines ou milliers, par un ou plusieurs serveurs. Au fil des conférences à Nancy, un sujet revenait sans cesse : les noms de domaine utilisés par les pirates pour contacter et contrôler ces ordinateurs infectés. Qu’ils soient volés ou créés, uniques ou générés à la chaine, les noms de domaine sont au centre de la communication de nombreux botnets et compliquent le travail de ceux qui luttent contre ces réseaux.

Un pirate a deux moyens principaux d’obtenir un nom de domaine, le voler ou l’enregistrer lui-même. Dans le cas du vol, la méthode est assez simple, puisqu'il suffit de trouver le mot de passe du propriétaire sur le site du bureau d’enregistrement et détourner le nom de domaine. Dans le cas de la création d’un nom de domaine, plusieurs solutions s’offrent au pirate, dont deux principales : la créer manuellement ou en masse, grâce à un algorithme de génération de noms de domaines (DGA) quasi-aléatoire.

Dans le premier cas, il suffit d’enregistrer un nom de domaine comme n’importe qui le ferait, à la différence que les coordonnées sont fausses, la carte de crédit servant au paiement très sûrement volée et la connexion sûrement masquée par un proxy, un VPN ou Tor. C’est dans le second cas que les conditions deviennent particulières : la génération automatique de noms de domaine par le botnet lui-même, qui sont ensuite réservés via les API proposées par bon nombre de bureaux d’enregistrement.

De Conficker à Cryptolocker, le casse-tête de l’automatisation

« Le phénomène DGA a commencé avec Conficker, en 2008. L’avantage était que les noms de domaine n’étaient pas écrits en dur dans le code du malware. Donc si vous voyez le malware, vous ne pouvez pas juste trouver les noms et les bloquer », nous expliquait début décembre Dhia Mahjoub, chercheur en sécurité chez OpenDNS. « Les noms de domaine sont générés sur l’hôte infecté, à partir d’une synchronisation (par date ou autre). Ils peuvent se connecter à un site, récupérer une ‘charge’ (seed) et générer le domaine. C’est un moyen d’être plus résilient. C’est devenu une bonne pratique, très efficace », poursuit-il.

Il est donc classique qu’un botnet ait son propre algorithme de génération de noms de domaine, plus ou moins compliqué. Généralement, ils donnent une longue suite de chiffres et lettres illisibles, suivie d’une extension que seul un robot pourrait générer ou reconnaitre. Pour Dhia Mahjoub, même si cette technique paraît « vieille école » désormais, elle reste toujours efficace. « Par exemple, ils ont fait tomber ZeuS/GameOver, il est revenu et il utilise toujours un DGA », explique le spécialiste.

Même dans le cas de réseaux de bots qui se contrôlent « entre eux », en pair-à-pair, comme ZeuS, le DGA est toujours utile. Si le PC infecté n’arrive plus à se connecter au réseau formé par ses pairs, il peut se rabattre sur un serveur de contrôle sur l’Internet public, en générant un nom de domaine au passage.

La génération automatisée de noms peut aussi s’intégrer à des méthodes plus avancées, comme le « fast flux ». Le principe : au lieu d’avoir un serveur unique derrière chaque nom de domaine, il peut se cacher des dizaines d’ordinateurs du botnet qui deviennent à tour de rôle le serveur de contrôle. Certains réseaux, qui utilisent simultanément des dizaines de noms de domaines, peuvent ainsi devenir extrêmement difficiles à faire tomber, avec des noms de domaine et des serveurs qui changent constamment et aléatoirement.

L’un des cas les plus emblématiques est le malware Cryptolocker, un rançongiciel qui infecte un PC et chiffre tous les fichiers qu’il peut atteindre (sur l’ordinateur ou le réseau). Une fois les documents chiffrés, il demande une rançon à payer sous quelques jours pour débloquer l’ordinateur et le contenu, sous peine de tout perdre. Ce logiciel, qui récupère la clé de chiffrement des documents à partir d’un serveur, peut générer jusqu’à 1 000 noms de domaine par jour. Des noms aléatoires qui ne sont utilisés que pour la journée. En toute logique, un vrai cauchemar.

Comment lutter contre les DGA

Il existe pourtant un moyen de contrer Cryptolocker, pour un effort minime : prévoir quels domaines il va générer. « On a constaté que la première chose que faisait Cryptolocker une fois sur une machine, c’était de se connecter à un des domaines générés pour cette journée pour rapatrier la clé dont il avait besoin pour chiffrer tous les fichiers. S’il ne rapatrie pas la clé, il ne chiffre rien », explique Thomas Chopitea, de l’équipe de réponse à incident (CERT) de la Société Générale. « On a pris ce DGA, on l’a déroulé sur ce qui restait de l’année 2013 et sur l’année 2014 en lançant l'algorithme avec différents paramètres (jour, mois, années) et on a demandé à bloquer [sur le réseau de l’entreprise] les noms qui allaient être générés », affirme-t-il.

Cette méthode n’est pourtant pas la panacée. Elle exploite une faiblesse de Cryptolocker que d’autres rançongiciels n’ont pas, par exemple s’ils génèrent eux-mêmes la clé de chiffrement. Connaitre les noms à venir reste tout de même très utile. C’est pour ça que l’institut Fraunhofer a présenté « DGArchive » à la Botconf de décembre ; une base de données déroulant les noms de domaine qui seront générés par les principaux algorithmes en circulation.

La prévisibilité n’est pas l’un des seuls problèmes des botnets. L’autre est que les algorithmes génèrent des adresses très reconnaissables. « Ceux qui travaillent là-dessus savent reconnaitre d’un clin d’œil à quel botnet correspond une URL », nous expliquait en décembre Éric Freyssinet, chef de la division de lutte contre la cybercriminalité au sein du pôle judiciaire de la gendarmerie nationale dans un long entretien.

C’est pour cela que des domaines à l’apparence plus naturelle commencent à voir le jour, utilisant des mots du dictionnaire, des noms propres, voire des listes d’employés d’organisations et d’entreprises. « Si on prend un DGA qui génère des noms complètement au hasard, on est très vulnérable à des analyses assez simples, comme le pourcentage de voyelles ou de consonnes. C’est donc normal d’utiliser les algorithmes qu’on a maintenant pour produire des choses qui ont l’air plus vraisemblables », affirme le spécialiste des noms de domaine Stéphane Bortzmeyer.

Reste deux grandes forces à ces algorithmes : les noms de domaine générés utilisent des extensions du monde entier, et les noms utilisés ne le sont que pour une période de temps très courte. Sur le premier point, l’illustration nous vient de la « National Crime Agency » anglaise (PDF), quand elle a fait tomber le réseau derrière Cryptolocker à la mi-2014. L’agence a dû se coordonner avec ses homologues d’autres pays pour atteindre l’ensemble des domaines générés, qui utilisaient sept extensions (.com, .net, .org, .co.uk, .ru…). En clair, si les pirates ont pu générer très facilement des noms qui dépendent de trois pays différents (Etats-Unis, Angleterre et Russie), les empêcher de nuire a dû demander une coordination large, dans un processus long.

Botnets

Vu par les bureaux d’enregistrement

L’autre souci est que les domaines sont utilisés au mieux quelques jours, au pire moins d’une journée. D’habitude, si une activité malveillante passe par un nom de domaine, le bureau d’enregistrement est contacté pour que le domaine soit supprimé, souvent sous quelques jours. Dans le cas de botnet qui génèrent et changent fréquemment de domaines, comme Cryptolocker, « on ne va pas vraiment chercher le takedown. Cela dure 24h et le lendemain on aura exactement le même problème. Ça brûle beaucoup de ressources pour rien » analyse Thomas Chopitea de la Société Générale. Dans ce cas, les solutions alternatives comme bloquer à l’avance les noms générés s’imposent.

En discutant avec ces spécialistes, deux profils de bureaux d’enregistrement de noms se dégagent. D’abord, les bureaux de bonne foi dont le système est abusé par des pirates et qui vont tenter de remédier au problème, dans la limite de leurs moyens (en personnel, en marge légale…). Ensuite, ceux qui n’ont que peu d’intérêt à traiter les demandes, soit les ignorent, soit les font trainer.

Des bureaux se disent (relativement) épargnés, à l'image de Gandi. « Il est compliqué d’automatiser la création en masse de domaines chez nous. Ca restreint la possibilité des bots. Il y a trop d’infos à donner. Il y a une cohérence des données vérifiée, même via l’API. Par exemple, on refuse la création si le nom de ville ne correspond pas au code postal. On vérifie aussi a posteriori que les données ne sont pas le copier-coller d'un bottin (souvent de petites villes, pour être le plus discret possible). Il y a d'autres indices, comme les adresses IP utilisées pour enregistrer, le fait que l'adresse DNS soit celle du domaine et non d'un serveur DNS externe ou des informations 'trop propres' et complètes à l'inscription », détaille Alexandre Hugla, responsable du département "abuse" de Gandi. « Ca n’empêche pas qu’on ait des noms de domaine pour ça, de manière plutôt ponctuelle et saisonnière. En tout, les noms utilisés pour des botnets représentent 5 % de nos signalements, avec un volume bien moindre qu'en 2006 par exemple », pondère-t-il.

« Toute personne qui est dans l’industrie du nom de domaine peut nommer des bureaux d’enregistrement ‘connus’. Mais ça ne repose pas toujours sur une analyse scientifique » affirme Stéphane Bortzmeyer. « Peut-être que les bureaux choisis par les criminels sont plus efficaces » sur des critères comme la vitesse d'enregistrement et la lenteur à s'apercevoir de l'usage des domaines, continue-t-il. « Les méchants collaborent entre eux, échangent des informations, donc dès qu’il y a un endroit où on dit 'Tu peux aller à tel bureau, c’est cool', tout le monde s’y précipite. En général, d’ailleurs, ça tourne très vite : tout le monde se précipite au même endroit, le bureau prend des mesures et tape dans le tas, et après tout le monde migre à un autre », affirme M. Bortzmeyer.

Difficile de collaborer avec les bureaux d’enregistrement

Une solution : contourner le circuit officiel. « Habituellement, si vous voulez que les choses aillent vite, vous devez envoyer un email à quelqu’un que vous connaissez, qu’il puisse les fermer en quelques heures », continue Dhia Mahjoub. Une méthode également utilisée par Thomas Chopitea. « C’est bien le problème des procédures de ces entreprises. De même pour les FAI. Tu as des entreprises qui répondent sous 24h à 48h, d’autres où c’est plus long, un trou noir. Dans ces cas, il vaut mieux avoir une personne de confiance ou mettre en copie le responsable » concorde Alexandre Hugla de Gandi. En cause, selon lui, l'absence de règles pour la gestion des requêtes liées aux abus, qui est laissée à la discrétion de chaque acteur. « En France, il existe depuis trois ans un groupe de travail avec bureaux d'enregistrement, FAI et entreprises de haut niveau » pour pallier ce problème, affirme-t-il.

Certains des bureaux jugés « peu coopératifs » feraient de ces activités criminelles un business, avec d’éventuelles spécialités par pays. « Malheureusement, dans certains pays, les choses ne bougent pas aussi vite qu’elles le devraient. En Europe par exemple, aux Pays-Bas, en Allemagne ou en Suisse, des registrars vont répondre très rapidement. Chez d’autres, ils ne vont pas avoir assez de personnel dédié ou ils s’en fichent … Par exemple parce qu’ils reçoivent des dessous de table » suppose Dhia Mahjoub d’OpenDNS. « En circuit normal d’alerte ‘abuse’, vous pouvez attendre une semaine… Ils peuvent même transférer la requête ‘abuse’ au criminel derrière, qui peut tout supprimer. Il disparaitra » insiste le chercheur en sécurité.

Une analyse que ne partage pas Stéphane Bortzmeyer, pour qui un bureau trop connu pour ce type d’activité serait facilement blacklisté. De même, pointer certains pays peut relever d’un « biais d’observation » des spécialistes. « Alors c’est vrai qu’il y a des pays avec plus de problèmes, mais ça dépend encore des dangers qu’on voit », précise-t-il.

Dans l’absolu, qu’y peuvent les autorités comme l’ICANN, qui gère les ressources d’Internet au niveau mondial ? Pas grand-chose selon certains experts, à l’image de Dhia Mahjoub, pour qui l'organisme peut difficilement voir ces activités et n’a pas une politique suffisamment répressive. « S’ils agissaient, ça créerait une sorte de précédent. Le problème, je pense, c’est que ça prend trop de temps et qu’il n’y a peut-être pas de suite. [Imaginons qu’on les ferme], les registrars [complices] vont peut-être réapparaitre ailleurs. Les mêmes personnes vont créer une autre entreprise... » affirme le chercheur d'OpenDNS.

« Sur du .com, j’ai vu passer des retraits d’autorisations de registrars avec une procédure : un avertissement, voire plusieurs pour non-respect des règles fixées par l’ICANN. On ne peut pas dire qu’il n’y a rien », modère Stéphane Bortzmeyer, pour qui les domaines sont un problème parmi d’autres. « D’autres algorithmes ne passent pas par des noms de domaine. Un algorithme de génération aléatoire passe par Twitter pour générer des hashtags et transmettre ses commandes. De même le service de notes anonymes Pastebin a déjà été utilisé. En fait tout système de communication peut servir. A partir du moment où on peut mettre quelque chose sur Internet, ça peut servir à ces communications », pèse enfin le spécialiste.


chargement
Chargement des commentaires...