Vous êtes sur le site public du Cert-IST
Histoire du cheval de Troie « DNSChanger

Date :06 Janvier 2009

Publication: Article

Présentation générale

« DNSChanger » est une famille de chevaux de Troie qui comme son nom l’indique, modifie la configuration DNS des postes infectés (il change le nom du serveur DNS utilisé) dans le but de rediriger les utilisateurs vers des sites web ou des services malveillants. Pour rappel, le protocole DNS permet à un système de retrouver l’adresse IP d’un serveur à partir d’un nom : c’est le processus de résolution DNS qui intervient par exemple à chaque fois que l’on saisit une adresse web dans son navigateur favori.

Les serveurs DNS suspects auxquels se connectent les machines infectées peuvent réaliser tout ce qui est imaginable en termes de redirection :

  • Rediriger des noms de sites web légitimes (sites bancaires, sites de paiement en ligne etc.) vers des serveurs hébergeant des copies de ces sites : tentatives de phishing,
  • Rediriger des noms de serveurs de messagerie vers de faux serveurs qui peuvent ainsi récupérer les e-mails envoyés ou encore des identifiants de connexion,
  • Modifier la résolution DNS des noms des serveurs de mises à jour utilisés par les solutions antivirus afin d’empêcher (de bloquer) toute mise à jour future ou de provoquer le téléchargement de mises à jour malveillantes. Si l’on en croit ce post sur le blog de McAfee Avert Labs, les serveurs DNS malveillants bloquent régulièrement le téléchargement des correctifs de sécurité de Microsoft ainsi que ceux d’autres éditeurs de logiciels couramment utilisés.

Ce type d’attaque est finalement très simple mais redoutablement efficace. En effet, il n’est pas toujours facile de s’apercevoir rapidement que la configuration DNS d’un système a été altérée, en particulier parce que les serveurs DNS malveillants se comportent comme des serveurs légitimes face à la plupart des requêtes. De plus, une mauvaise configuration DNS peut persister longtemps même si la solution anti-virus a réussi à éliminer le cheval de Troie.

Cet article retrace l’histoire de cette famille de malwares et décrit en particulier la dernière variante apparue au début de ce mois de décembre 2008.


Histoire de ce cheval de Troie

La première variante de DNSChanger, qui devrait en réalité plutôt être considérée comme son précurseur, est apparue en 2003. Ce cheval de Troie est généralement nommé Qhosts par les éditeurs d’antivirus (cf. les fiches descriptives de CA, McAfee, ou encore Symantec). Il altère simplement le fichier « hosts » des systèmes Windows (fichier normalement situé dans le dossier « %WINDIR%SYSTEM32DRIVERSETC ») afin d’associer certains noms de domaines tels que « google.com » à des serveurs (adresses IP) contrôlés par les pirates. Une variante récente de ce code malveillant (QHosts-113 chez McAfee) modifie le fichier « hosts » afin de rediriger les noms de domaines d’éditeurs d’antivirus bien connus tels que Kaspersky, Symantec ou McAfee vers l’adresse IP locale du système (127.0.0.1) ce qui a pour effet de rendre inaccessibles les sites en question.

Dans la plupart des cas, l’emplacement par défaut du fichier « hosts » de Windows est modifié dans la base de registre afin de conserver le fichier « hosts » d’origine intact. La cause des problèmes de résolution de noms est ainsi plus difficile à établir. La principale limite de cette attaque est que le fichier « hosts » doit être modifié sur le système victime chaque fois que le pirate veut introduire ou modifier une redirection de noms.


Le véritable malware « DNSChanger » (voir les fiches descriptives de F-Secure, McAfee ou Symantec) est une variante du cheval de Troie bien connu Zlob, qui est apparu en 2005. Lorsqu’il est exécuté, il modifie la configuration des systèmes Windows (clé de registre « NameServer ») de façon à remplacer le serveur DNS par défaut par un serveur DNS contrôlé par le pirate. Lorsque le poste est infecté, il se connectera systématiquement au faux serveur DNS afin de résoudre tous les noms de domaines : en particulier, les URL saisies dans le navigateur web seront toujours redirigées selon la configuration du serveur DNS malveillant. Le pirate n’a donc plus besoin d’accéder au système victime, pour modifier ou ajouter des résolutions de noms, il lui suffit de changer les entrées DNS sur son propre serveur DNS. La limite principale de cette première variante est qu’elle n’affecte que le système infecté (les machines du réseau local ne sont pas impactées). De plus, lorsque le poste est correctement désinfecté et reconfiguré, il retrouve immédiatement un comportement normal.

Nota : Une variante de DNSChanger nommée OSX/RSPlug ou OSX/Puper selon l’éditeur affecte les systèmes Mac OS X.


La première vraie variante de DNSChanger (DNSChanger.f chez McAfee) est apparue en juin 2008. Si la méthode d’infection est la même (cheval de Troie), la manière dont le code malveillant va modifier la configuration DNS des systèmes est plutôt originale.

Considérons le cas d’un réseau local dans lequel toutes les machines utilisent la même passerelle pour accéder à Internet. Cette passerelle, comme bien souvent, attribue les informations de connexion (adresse IP, serveur DNS, passerelle par défaut) aux machines (serveur DHCP), effectue le routage sur Internet (NAT) et peut même dans certains cas faire office de cache DNS pour toutes les machines du réseau local. Cette configuration pourra être souvent observée chez des abonnés ADSL, le fournisseur d’accès mettant très souvent un boîtier tout-en-un à la disposition de l’abonné.

Nota : Pour rappel, le protocole DHCP est en charge de distribuer des adresses IP dynamiques sur un réseau local ainsi que d’autres informations permettant la connexion à Internet telles que les adresses IP des serveurs DNS.

Le cheval de Troie s’attaque en fait directement au routeur Internet afin de modifier ses paramètres DNS. Il utilise pour cela deux techniques d’attaque:

  • L’attaque par force brute : le code malveillant se connecte au routeur du réseau local en utilisant une liste prédéfinie d’adresses IP souvent utilisées. Il essaye ensuite d’utiliser les identifiants (couple nom d’utilisateur, mot de passe) par défaut de routeurs répandus sur le marché afin de pouvoir modifier les paramètres DNS.
  • Les attaques Cross-Site Request Forgery (CSRF) : le code malveillant exploite des vulnérabilités du routeur qui peuvent lui permettre de modifier les paramètres DNS sans même avoir besoin de s’authentifier.

Tout l’intérêt d’une attaque visant le routeur est qu’elle va indirectement affecter tous les ordinateurs du réseau local :

  • Soit parce que le routeur compromis va utiliser DHCP pour fournir l’adresse du serveur DNS malveillant,
  • Soit parce que le routeur compromis qui fait office de cache DNS va interroger les serveurs DNS malveillants au lieu d’interroger les serveurs légitimes du fournisseur d’accès.

L’infection d’un seul système peut dans le cas présent affecter tout un réseau local.


La dernière variante de « DNSChanger » : le serveur DHCP

Cette dernière variante, apparue au début de ce mois de décembre, est décrite sous la référence Trojan.Flush.M par Symantec. Ce cheval de Troie fournit de fausses informations de configuration DNS sur le réseau local par le protocole DHCP.

Une fois que cette variante de DNSChanger a compromis un système, elle installe un pilote réseau légitime généralement appelé « ArcNet NDIS Protocol Driver » (NDISProt.sys) qui permet de recevoir les requêtes DHCP envoyées par d’autres systèmes sur le réseau local et de fabriquer des réponses contenant une configuration DNS malveillante référençant de faux serveurs.

Ce mode d’attaque permet potentiellement à un système infecté de faire en sorte que toutes les machines du réseau local auquel il est connecté soient redirigées vers le serveur DNS malveillant. Sur son blog, McAfee imagine le scénario suivant :

1)      Alice utilise le point d’accès Wifi gratuit de son salon de thé favori grâce à son PC portable sous Windows, un PC déjà infecté par la dernière version de DNSChanger,

2)      Bob s’assoit à une table non loin de là et allume son PC portable qui va aussitôt demander une adresse IP sur le réseau Wifi via le protocole DHCP,

3)      Le portable d’Alice qui, rappelons-le, est infecté répond par un paquet « DHCP offer » spécifiquement construit indiquant au PC de Bob qu’il doit diriger toutes les requêtes DNS vers un serveur malicieux,

4)      Bob lance son navigateur web et se rend sur son site de réseau social préféré, mais alors que le navigateur affiche la bonne URL dans sa barre d’adresse, le serveur DNS malveillant l’a en fait redirigé vers un autre site.

La puissance de cette version de DNSChanger réside dans le fait que :

  • Un système infecté peut compromettre la résolution DNS de tous les systèmes à proximité (même réseau local, même réseau sans fil).
  • Des systèmes non infectés par le malware peuvent toujours communiquer avec les serveurs DNS malveillants, et ce, sans qu’une seule faille de sécurité n’ait été exploitée à un moment ou à un autre.
  • Les hackers derrière les chevaux de Troie de type DNSChanger/Puper/Zlob sont efficaces : plusieurs millions d’ordinateurs ont déjà été compromis ces dernières années. Ils sont entre autres reconnus pour leurs campagnes de « Social engineering » massives.
  • L’attaque est portable : le protocole DHCP est utilisé sur tous les systèmes d’exploitation d’une part et d’autre part sur la plupart des périphériques utilisant le réseau (consoles de jeu portatives, téléphones mobiles, cadres pour photo numérique etc.).
  • Localiser les systèmes dont la configuration DNS aurait été modifiée peut être une tâche difficile sur un réseau local de grande taille.

Recommandations

Au vu de l’ensemble des variantes de DNSChanger décrites dans cet article, Le Cert-IST peut formuler les recommandations suivantes :

  • Surveiller et/ou filtrer le trafic DNS à destination des serveurs malveillants. La grande majorité de ces serveurs se situe actuellement sur le réseau 85.255.112.0/20. Une sécurité optimale peut être obtenue en interdisant complètement les requêtes DNS vers des serveurs externes, sauf éventuellement dans des cas exceptionnels (comme les postes nomades).
  • Vérifier périodiquement la configuration DNS des systèmes de l’entreprise. Cette tâche peut facilement être automatisée par le système de déploiement des mises à jour (comme le système de gestion de mises à jour SMS de Microsoft) et l’utilisation de scripts.
  • Utiliser de préférence un compte aux droits limités afin d’empêcher l’installation de tout nouveau pilote réseau.
  • Rechercher dans les journaux des antivirus des noms comme DNSCHAN, DNSChanger, Puper, RSPLUG, Trojan.Flush.*.
  • Utiliser des systèmes de distribution de configuration réseau plus sécurisés que DHCP, par exemple des systèmes impliquant une authentification préalable.
  • Enfin, n’exécuter des applications que lorsqu’elles proviennent de sources sûres (il s’agit d’une recommandation habituelle). Pour rappel, toutes les variantes de DNSChanger sont des chevaux de Troie, autrement dit, le code malveillant ne peut être installé qu’à la suite d’une action de l’utilisateur.

Pour plus d’information :