Empoisonnement du cache DNS - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

Introduction

L'empoisonnement du cache DNS ou pollution de cache DNS (DNS cache poisoning ou DNS cache pollution en anglais) est une technique permettant de leurrer les serveurs DNS afin de leur faire croire qu'ils reçoivent une requête valide tandis qu'elle est frauduleuse. Une fois que le serveur DNS a été empoisonné, l'information est mise dans un cache, rendant ainsi vulnérable tous les utilisateurs de ce serveur. Ce type d'attaque permet, par exemple, d'envoyer un utilisateur vers un faux site dont le contenu peut servir à de l'hameçonnage (dans le cas du DNS, on parle de pharming) ou comme vecteur de virus et autres applications malveillantes.

Un ordinateur présent sur Internet utilise normalement un serveur DNS géré par le fournisseur d'accès. Ce serveur DNS est la plupart du temps limité aux seuls utilisateurs du réseau du fournisseur d'accès et son cache contient une partie des informations rapatriées par le passé. Une attaque par empoisonnement sur un seul serveur DNS du fournisseur d'accès peut affecter l'ensemble de ses utilisateurs, soit directement ou indirectement si des serveurs esclaves s'occupent de propager l'information.

Introduction

Pour mener à bien une attaque par empoisonnement de cache, l'attaquant exploite une vulnérabilité du serveur DNS qui accepte alors des informations incorrectes. Si le serveur ne valide pas les informations reçues et qu'il ne vérifie pas qu'elles proviennent d'une source fiable, alors il stockera dans son cache ces informations erronées. Il les transmettra par la suite aux utilisateurs qui effectuent la requête visée par l'attaque.

Cette technique peut être employée pour substituer un contenu, que les victimes s'attendent à obtenir, par un autre contenu. L'attaquant peut par exemple rediriger un utilisateur d'un site web vers un autre site dont le serveur est compromis ou maintenu par l'attaquant. Selon le type d'attaque menée et afin de ne pas éveiller les soupçons, le nouveau contenu doit ressembler le plus possible au contenu original.

Cette manipulation peut avoir plusieurs buts :

  • propagation de virus ou de vers en faisant croire à l'utilisateur qu'il télécharge des fichiers sains
  • hameçonnage (pharming) afin de collecter des informations personnelles, récupérer des mots de passe ou effectuer une fraude
  • usurpation d'identité (on renvoie le site d'une personne vers un autre site)
  • attaque de l'homme du milieu (l'attaquant fait en sorte de se trouver au milieu de transactions afin de les intercepter, les déchiffrer et les rediriger de manière transparente)
  • propagande, contestation (par exemple en renvoyant un site d'un parti politique vers un autre parti)
  • guerre électronique (perturbation du réseau en renvoyant les utilisateurs vers d'autres sites qui ne leur permettent pas d'effectuer leur travail)
  • déni de service (renvoi vers un site n'existant pas, faisant croire à l'utilisateur que le serveur n'est plus disponible) ou guerre commerciale (voir l'affaire AlterNIC plus loin)

Prévention et défense

La plupart des attaques peuvent être évitées en ajoutant des vérifications supplémentaires. Dans le cas d'une attaque comme celle d'Eugene Kashpureff, la parade consiste à vérifier que la réponse correspond à ce qui était attendu (l'IP du nom de domaine demandé et rien d'autre) et à l'ignorer dans le cas contraire. L'amélioration des générateurs de nombres pseudo-aléatoires en utilisant des générateurs cryptographiques pour l'identifiant de 16 bits et les ports ont permis de limiter les problèmes dans les serveurs les plus utilisés (dont BIND). La limitation des demandes multiples pour un même nom à partir d'une même source a partiellement réduit l'attaque par le paradoxe des anniversaires, mais elle pourrait être menée à partir d'un botnet, ce qui nécessite d'autres moyens de défense pour détecter les tentatives de ce type.

Une version sécurisée du DNS existe, DNSSEC, qui se base sur des signatures électroniques avec un certificat qui permet de vérifier l'authenticité des données. Il reste toutefois peu répandu. L'empoisonnement peut être limité au niveau des couches transport ou application grâce à une authentification des intervenants, via par exemple TLS. Un serveur DNS pourrait ainsi s'assurer qu'il reçoit bien les informations depuis un serveur de confiance. Il en va de même pour les autres applications comme les navigateurs qui peuvent vérifier l'authenticité d'une page grâce aux certificats.

En juillet 2008, des mises à jour de sécurité concernant les serveurs DNS ont été effectuées par un grand nombre d'acteurs du logiciel libre et propriétaire. Ces mises à jour ont été effectuées de façon synchronisée pour remédier à une faille découverte plusieurs mois avant par Dan Kaminski (de la société IOActive) qui s'avérait critique. Cette faille a été jugée suffisamment sérieuse pour que le secret soit conservé le temps de mettre en place des solutions de protection.

Page générée en 0.271 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales
Version anglaise | Version allemande | Version espagnole | Version portugaise