Les serveurs DNS sont essentiels au bon fonctionnement d’Internet tel que nous l’aimons et le connaissons, mais ils ont tendance à être méconnus de la plupart des internautes. Tout du moins jusqu’à ce qu’une sorte d’attaque ou d’incident les empêche de fonctionner correctement, ce qui a évidemment affecté l’ensemble des services (comme lors de l’attaque récente du botnet Mirai qui s’en est pris à une entreprise appelée DynDNS).

Une chose est sûre : plus d’une sorte d’attaque peut affecter ces serveurs, et cet article va passer en revue chacune d’elles.

Qu’est-ce qu’un serveur DNS?

Le Domain Name System (DNS en abrégé) est ce qui nous permet de déchiffrer le nom d’une page web grâce à son adresse IP. De cette manière, en tant qu’utilisateurs, nous n’avons pas besoin de nous remémorer les séquences de chiffres qui constituent une adresse IP (ou les numéros et lettres dans IPV6) et nous pouvons ainsi, par exemple, accéder à la page de “www.facebook.com” juste en l’écrivant ainsi plutôt que d’indiquer “31.13.92.36”.

Retranscrire ces noms plus faciles à comprendre pour les utilisateurs en adresses IP est le travail qu’effectuent les serveurs DNS. Cela est rendu possible grâce à une base de données hiérarchique distribuée qui stocke des informations (entre autres) comme quelle adresse IP est rattachée à quel nom de domaine, etc. Ce système permet de rendre plus facile la mémorisation des adresse Web et cela signifie que l’adresse IP peut être changée si besoin.

Maintenant que nous savons à quel point ces serveurs sont importants, il n’est pas surprenant que de nombreuses attaques exploitent des vulnérabilités, qu’elles soient inhérentes à ceux-ci ou provoquées par notre manière de nous servir de ces serveurs DNS.

Usurpation du DNS et empoisonnement du cache DNS

Souvent interprétés comme le même type d’attaque à tort, ces deux techniques sont en réalité très différentes l’une de l’autre. En général, nous pourrions dire que l’empoisonnement du cache DNS est l’une des manières de réussir une usurpation de DNS, ce qui fait référence à une très large palette d’attaques existantes visant à supplanter les informations stockées sur les serveurs DNS.

L’usurpation de DNS représente le but ultime d’une attaque (en vue de changer les enregistrements stockés sur le serveur DNS selon les souhaits de l’attaquant) et plusieurs techniques existent. Elles peuvent se présenter sous la forme d’un empoisonnement du cache DNS, mais aussi par l’attaque de “l’homme du milieu” (man-in-the-middle attack en anglais), l’utilisation de stations de base factices, pouvant même compromettre la sécurité du serveur DNS.

Nous pouvons aussi voir des exemples d’usurpation de DNS dans des attaques qui visent les utilisateurs. L’une d’elles consisterait à supplanter l’adresse des serveurs DNS configurés sur notre système d’exploitation ou notre routeur. La méthode classique consiste à entrer l’adresse des serveurs DNS de notre FAI, ou ceux d’une autre organisation, comme Google, comme nous pouvons le voir ci-dessous :

L'empoisonnement du cache DNS fait référence à la situation par laquelle de nombreux internautes utilisent le même cache, dans lequel les registres stockés corrèlent chaque adresse IP avec un domaine. Dans le cas où des attaquants parviendraient à détourner une entrée DNS de ce registre, les FAI utilisant ce cache accepteraient cela comme authentique, même si ce dernier a été hacké pour pointer vers un faux site web.

Dans un tel cas, ce que nous aurions serait un empoisonnement du cache DNS qui ne redirige pas vers l’adresse IP authentique lors de la résolution d’un nom de domaine. Evidemment, empoisonner ce type de cache n’est pas aussi évident que celui d’un cache ou d’un routeur existant, mais c’est techniquement possible et cela s’est déjà produit.

L’un des principaux problèmes relatifs aux attaques visant l’empoisonnement d’un cache DNS, c’est que cela peut se propager au sein de différents serveurs DNS et donc par conséquent, ces attaques peuvent avec le temps affecter les routeurs domestiques, y compris le cache DNS existant dans le système de l’utilisateur. Le routeur recevrait ainsi cette fausse information et la mettrait à jour avec son cache local.

Pour mener ce type d’attaque, les assaillants ont besoin d’un serveur web et d’un serveur DNS et de configurer le serveur DNS faisant autorité et le domaine piégé. A partir de là, les attaquants doivent ensuite faire en sorte que la victime se connecte à son propre DNS avec le lien du domaine piégé, de manière à récupérer les identifiants de la transaction jusqu’à ce qu’ils puissent être dans une situation où ils pourront anticiper la suite.

A cette étape, le DNS de la victime sera obligé de faire une requête auprès du serveur DNS faisant autorité des attaquants, qui ensuite pourrait rediriger vers un domaine se substituant à un site bancaire. Une fois que les hackers auront découvert les identifiants de cette nouvelle transaction, il ne leur restera plus qu’à envoyer des paquets et ainsi essayer de supplanter les connexions authentiques que l’utilisateur pourrait recevoir lorsqu’il se connectera sur le site de sa banque.

Puisque les attaquants peuvent désormais anticiper les informations de la transaction, le DNS de la victime enregistrera ces données dans son cache puis les acceptera comme valides. Dès lors, toute tentative de la victime d’accéder au site web de sa banque se soldera par une redirection vers le site web contrôlé par les attaquants.

Qu’en est-il du piratage de DNS?

Les logiciels malveillants peuvent aussi être utilisés pour affecter le déchiffrement des noms de domaine, de manière à ce que la victime se connecte à un serveur contrôlé par les criminels. Des exemples de ces malwares existent, comme Win32/DNSChanger, et ils peuvent modifier le DNS établi par l’utilisateur ou le FAI. Nous pouvons voir comment cela fonctionne avec l’image ci-dessous :

Funcionamiento normal Normal operation
Servidor DNS DNS server
Víctima Victim
Servidor web Web server
Consulta por www.ejemplo.com Looks up www.example.com
Respuesta Servidor web Web server responds
Acceso a sítio legítimo Accesses legitimate website

Víctima de un DNS Spoofing local Victim of local DNS spoofing
Víctima Victim
Servidor DNS DNS server
Atacante rol de DNS malicioso Attacker role of malicious DNS
Servidor malicioso Malicious server
Acceso a sítio malicioso Accesses malicious website
Consulta por www.ejemplo.com Looks up www.example.com
Respuesta Servidor malicioso Malicious server responds

Cela permet aux hackers de mener une multitude d’attaques. Celles-ci vont du simple hameçonnage, ou  phishing, c'est-à-dire l'utilisation de faux sites que la victime va consulter en pensant qu’ils sont légitimes et dont elle aura accès en entrant les adresses URLS correctes dans son navigateur) à l’utilisation d’exploits permettant de tirer profit de vulnérabilités alors que l’utilisateur est en train de naviguer sur des pages qu’ils pensent être dignes de confiance (alors qu’elles sont en réalité générées par les hackers pour infecter l’utilisateur).

L’exemple le plus flagrant, cependant, n’est autre que le réseau d’ordinateurs zombies plus connus sous le nom de botnets. Beaucoup d’entre eux modifient les serveurs DNS que leurs victimes ont configurés, et les font ainsi pointer vers d’autres serveurs contrôlés cette fois par les hackers. Ainsi, de la même manière que pour les actions malveillantes que nous avons décrites plus haut, les criminels peuvent envoyer des commandes aux bots, mettre à jour les logiciels malveillants, voire même les retirer si nécessaire.

Conclusion

Comme nous l’avons vu, il y a différents types d’attaques qui peuvent empêcher un domaine d’être déchiffré correctement et surtout amener les utilisateurs à tomber dans des pièges dressés par ces criminels alors qu’ils pensent accéder à des sites légitimes. Pour empêcher ce type d’attaques, investir dans une bonne solution de sécurité est recommandé et si possible, une qui possède un outil permettant de monitorer la sécurité de votre routeur.

Et en parlant de routeur, ce n’est jamais une mauvaise idée de vérifier que la sécurité de votre routeur est optimale. Il est toujours préférable de s’assurer que celui-ci est correctement mis à jour et paramétré, et ainsi que personne ne peut y avoir accès sans autorisation. Et nous suggérons d’éviter les mots de passe faibles, et de désactiver les services qui pourraient permettre des connexions à distance au routeur.