Usurpation de requêtes DNS par empoisonnement du cache

Détection de Menaces

illustration représentant un déguisement sur un écran d’ordinateur suggérant qu’une usurpation de DNS

L’usurpation d’un serveur de nom de domaine (DNS) est une cyberattaque qui fait croire à votre ordinateur qu’il consulte le site Web prévu, alors que ce n’est pas le cas. Les attaquants recourent à l’empoisonnement du cache DNS pour détourner le trafic Internet et dérober les identifiants ou données personnelles d’un utilisateur. « Empoisonnement du cache DNS » et « usurpation de DNS » sont en réalité deux expressions synonymes. Si vous souhaitez vous montrer pointu, vous pouvez considérer qu’elles désignent respectivement le comment et le quoi d’une seule et même cyberattaque. Le hacker cherche à pousser les utilisateurs à saisir des données personnelles sur des sites Web frauduleux. Pour y parvenir, il empoisonne le cache DNS en remplaçant les données DNS d’un site, de sorte que toute tentative d’accès à ce site redirige l’utilisateur vers son propre serveur. Ensuite, le hacker n’a plus qu’à exécuter une attaque de phishing, voler des données ou même injecter un malware sur le système de sa victime. Varonis est capable de détecter les empoisonnements du cache DNS en surveillant les DNS et en repérant les comportements anormaux des utilisateurs.

Que sont l’usurpation de DNS et l’empoisonnement du cache DNS ?

pipette contenant une substance toxique appliquée sur une URL pour illustrer l’empoisonnement du cache DNS Avant d’évoquer l’attaque à proprement parler, reprenons ce que sont les DNS et la mise en cache des DNS. Le DNS est le catalogue international des adresses IP et noms de domaine. C’est un peu l’annuaire d’Internet. Il permet de convertir des URL compréhensibles (Varonis.com, par exemple) en adresses IP comme 192.168.1.169, qui sont utilisées pour mettre en réseau les ordinateurs. Le cache DNS est le mécanisme de stockage de ces adresses dans les serveurs DNS du monde entier. Pour que vos requêtes DNS soient traitées rapidement, les créateurs du protocole ont imaginé un système réparti. Chaque serveur garde ainsi en mémoire une liste d’enregistrements DNS connus, le cache. Si le serveur DNS le plus proche de vous ne connaît pas l’adresse IP dont vous avez besoin, il interroge d’autres serveurs en amont, jusqu’à obtenir la réponse qui vous intéresse. Ce serveur DNS enregistre ensuite cette nouvelle entrée dans son cache pour vous répondre plus rapidement si vous renouvelez cette requête par la suite.

Exemples d’empoisonnement du cache DNS et effets

Le protocole DNS n’a absolument pas été conçu pour l’Internet moderne. Il s’est certes amélioré au fil des ans, mais un serveur DNS mal configuré et récupérant les entrées d’un serveur en Chine suffit pour que plus personne ne puisse accéder à Facebook. Cet incident illustre bien notre dépendance envers ce protocole. Une erreur de configuration sur un serveur peut ainsi impacter des millions d’internautes. Le site WikiLeaks a lui aussi été victime d’un empoisonnement du cache DNS. Les hackers cherchaient à empêcher l’accès au site en détournant le trafic Web vers leur propre version du site et ont connu un certain succès. L’empoisonnement du cache DNS est une attaque discrète et difficile à repérer sans expertise appropriée. Actuellement, le système DNS accorde sa confiance par défaut, ce qui explique pourquoi il est si facile de l’abuser. Les utilisateurs font aveuglément confiance à ce protocole et ne vérifient jamais si l’adresse affichée dans le navigateur est bien celle qu’ils attendaient. C’est une véritable aubaine pour les hackers, qui tirent parti de cette confiance et de ce manque d’attention pour dérober des identifiants et plus encore.

En quoi consiste un empoisonnement du cache DNS ?

explication en trois étapes du processus d’empoisonnement du cache DNS Lors de l’empoisonnement d’un cache DNS, le serveur DNS le plus proche de vous dispose d’une entrée qui vous envoie vers une adresse incorrecte, généralement contrôlée par un attaquant. Voici quelques techniques utilisées pour empoisonner un cache DNS.

Piratage du réseau local via l’usurpation ARP

Étonnamment, le réseau local peut être très vulnérable. De nombreux administrateurs partent du principe qu’il est verrouillé à double tour, mais le diable se cache souvent dans les détails. Un problème se posant souvent est celui des employés en télétravail. Leur réseau Wi-Fi est-il sécurisé ? Les hackers sont tout à fait capables de craquer un mot de passe Wi-Fi faible en quelques heures. Autre problème, les ports Ethernet accessibles dans les couloirs et salles accessibles au public : une personne patientant dans vos locaux pourrait très bien utiliser le câble Ethernet destiné à un vidéoprojecteur. Voyons comment un hacker pourrait utiliser cet accès au réseau local. Tout d’abord, il créerait une page de phishing lui permettant de récupérer des identifiants et d’autres informations précieuses. Ensuite, il pourrait héberger ce site sur le réseau local ou à distance sur un serveur à l’aide d’une seule ligne en python. Il lui suffirait alors de surveiller le réseau à l’aide d’outils comme Bettercap. À cette étape, il cartographie et explore le réseau cible, mais le trafic passe toujours par le routeur. Le hacker pourrait ensuite usurper l’ARP pour restructurer le réseau depuis l’intérieur. L’ARP (Adress Resolution Protocol) est utilisé par les appareils d’un réseau pour associer l’adresse MAC d’un appareil à une adresse IP locale. Bettercap envoie des messages ARP indiquant à tous les appareils du réseau que l’ordinateur du hacker est le routeur. Ainsi, le hacker peut intercepter l’ensemble du trafic destiné au routeur et lancer le module d’usurpation de DNS de Bettercap. Ce module recherche toutes les requêtes concernant un domaine d’intérêt et envoie une réponse frauduleuse à la victime. Cette réponse contient l’adresse IP de l’ordinateur du hacker et redirige ainsi toutes les requêtes relatives au site cible vers la page de phishing hébergée par le hacker. Le hacker voit alors le trafic destiné à d’autres appareils du réseau et peut rediriger les demandes de n’importe quel site Web. Le hacker voit tout ce que la victime fait sur cette page et peut notamment récupérer les identifiants et envoyer des fichiers malveillants. Si le hacker ne peut pas accéder au réseau local, il recourra à l’une des attaques suivantes.

Façonnage de réponse à l’aide de l’attaque des anniversaires

Le serveur DNS n’authentifie pas les réponses aux requêtes récursives : la première réponse reçue est donc enregistrée dans le cache. Les attaquants exploitent le « paradoxe des anniversaires » pour essayer d’envoyer en premier une réponse de leur cru au demandeur. Cette attaque des anniversaires consiste à émettre une hypothèse en s’appuyant sur les mathématiques et sur la théorie des probabilités. Dans le cas qui nous préoccupe, l’attaquant essaie de deviner l’ID de transaction de votre requête DNS pour que vous receviez sa réponse contenant l’entrée DNS factice avant la réponse réelle du serveur. Le succès d’une attaque des anniversaires n’est pas garanti, mais à force de tentatives, un hacker finira par réussir à insérer une réponse délétère dans un cache. Une fois qu’il y sera parvenu, il aura accès au trafic lié à cette entrée jusqu’à ce que la durée de vie (TTL) soit atteinte.

Exploit de Kaminsky

L’exploit de Kaminsky est une variante de l’attaque des anniversaires, présentée à l’édition 2008 de la conférence BlackHat. Tout d’abord, l’attaquant envoie au résolveur cible une requête DNS vers un domaine qui n’existe pas, par exemple « fake.varonis.com ». Le résolveur transfère alors la demande au serveur de noms faisant autorité pour obtenir l’adresse IP de ce sous-domaine. L’attaquant submerge ensuite le résolveur de fausses réponses dans l’espoir que l’une d’entre elles ait le même ID de transaction que la requête d’origine. S’il réussit, il peut empoisonner le cache DNS du résolveur cible avec une fausse adresse IP associée, dans cet exemple, à varonis.com. Le résolveur continuera ainsi à répondre à toute personne en faisant la demande que l’adresse IP de varonis.com est celle fournie par le hacker, jusqu’à l’expiration de la durée de vie de l’entrée.

Comment détecter un empoisonnement du cache DNS ?

Mais alors, comment détecter un empoisonnement du cache DNS ? Vous devez surveiller vos serveurs DNS pour repérer les indices d’une attaque. Les êtres humains ne possèdent pas la puissance de calcul nécessaire pour suivre un nombre de requêtes DNS suffisant. Vous devez donc vous appuyer sur des outils d’analyse de la sécurité des données pour surveiller votre serveur DNS et distinguer les comportements normaux des attaques.

  • Une hausse soudaine de l’activité DNS d’une seule source concernant un seul domaine est révélatrice d’une potentielle attaque des anniversaires.
  • Une hausse de l’activité DNS provenant d’une seule source qui interroge votre serveur DNS sur plusieurs noms de domaine sans récursion témoigne quant à elle de la recherche d’une entrée à corrompre à des fins d’empoisonnement.

En plus de surveiller votre serveur DNS, gardez l’œil sur les événements Active Directory et le comportement du système de fichiers afin de détecter toute activité anormale. Mieux encore, utilisez des outils d’analyse pour associer l’activité entre ces trois vecteurs et enrichir ainsi votre stratégie de cybersécurité d’un contexte précieux.

Comment se prémunir de l’empoisonnement du cache DNS ?

liste de 4 méthodes permettant d’empêcher l’empoisonnement du cache DNS Au-delà de la surveillance et de l’analyse, vous pouvez modifier la configuration de votre serveur DNS.

  • Limitez les requêtes récursives pour vous prémunir des attaques d’empoisonnement ciblées.
  • Stockez uniquement des données liées au domaine demandé.
  • Limitez les réponses au domaine demandé.
  • Forcez les clients à utiliser le protocole HTTPS.

Veillez à utiliser les versions les plus récentes des logiciels BIND et DNS afin de bénéficier des derniers correctifs de sécurité. Si possible, notamment si certains employés sont en télétravail, invitez tous les clients distants à se connecter via un VPN pour protéger le trafic et les requêtes DNS de l’espionnage via le réseau local. Par ailleurs, veillez à encourager l’utilisation d’un mot de passe fort pour les réseaux Wi-Fi domestiques afin de limiter encore le risque. Enfin, chiffrez les requêtes DNS. Le protocole Domain Name System Security (DNSSEC) permet ainsi de signer les requêtes DNS pour éviter les contrefaçons. Toutefois, il impose une vérification de la signature auprès du serveur DNS faisant autorité, ce qui ralentit le processus. Ce défaut limite son adoption. DNS over HTTPS (DoH) et DNS over TLS (DoT) sont deux protocoles concurrents pour la prochaine version de DNS, qui visent à sécuriser les requêtes sans les ralentissements engendrés par DNSSEC. Toutefois, ces deux spécifications ne sont pas la panacée, car elles peuvent ralentir ou empêcher la surveillance et l’analyse DNS en local. Il est également important de noter que DoH et DoT peuvent contourner les contrôles parentaux et autres blocages au niveau des DNS. Pour autant, Cloudflare, Quad9 et Google proposent tous des serveurs DNS publics prenant en charge DoT. De nombreux clients récents prennent en charge ces nouvelles normes, mais les désactivent par défaut. Pour en savoir plus, consultez l’article de Varonis consacré à la sécurité des DNS. L’usurpation de DNS consiste à remplacer l’adresse IP légitime d’un site Web par celle de l’ordinateur d’un hacker. Il s’agit d’une stratégie particulièrement difficile à repérer, car pour l’utilisateur final, l’URL saisie dans la barre d’adresse du navigateur est tout à fait normale. Pour autant, elle n’est pas impossible à bloquer. Vous pouvez limiter le risque à l’aide de logiciels de surveillance comme Varonis et du recours à la norme de chiffrement DNS over TLS.

FAQ sur l’usurpation de DNS

Vous trouverez ci-dessous les réponses à des questions fréquemment posées au sujet de l’usurpation de DNS.

Q : L’empoisonnement du cache DNS et l’usurpation de DNS sont-ils la même chose ?

R : Oui, il s’agit de deux expressions désignant la même cyberattaque.

Q : Quel est le mode de fonctionnement de l’empoisonnement du cache DNS ?

R : L’empoisonnement du cache DNS consiste à faire enregistrer au serveur DNS une fausse entrée DNS. Le trafic destiné à l’entrée DNS frauduleuse est alors redirigé vers un serveur choisi par les attaquants afin de leur permettre de s’emparer des données.

Q : Quels mécanismes de sécurité peuvent être utilisés pour se prémunir contre l’empoisonnement du cache DNS ?

R : Les propriétaires de sites Web peuvent mettre en œuvre une surveillance et une analyse de l’usurpation de DNS. Pour ce faire, ils peuvent mettre à jour leurs serveurs DNS afin d’utiliser DNSSEC ou un autre protocole de chiffrement comme DNS over HTTPS ou DNS over TLS. Le recours dans la mesure du possible au chiffrement de bout en bout, par exemple via le protocole HTTPS, permet aussi d’éviter ce type d’usurpation. Les Cloud Access Security Brokers (CASB) sont extrêmement utiles dans ce scénario. Ils permettent aux utilisateurs finaux de réinitialiser un cache DNS potentiellement victime d’une attaque en visant périodiquement le cache DNS de leur navigateur ou après s’être connecté à un réseau non sécurisé ou partagé. L’utilisation d’un VPN peut vous protéger contre l’usurpation DNS sur un réseau local. Enfin, en évitant de cliquer sur des liens suspects, les utilisateurs finaux peuvent protéger le cache de leur navigateur.

Q : Comment vérifier si un cache DNS a été empoisonné ?

R : Il peut être difficile de se rendre compte qu’un cache DNS a été empoisonné. Il est probablement plus efficace de surveiller vos données et de protéger vos systèmes contre les malwares pour éviter les conséquences de l’empoisonnement du cache. Consultez notre atelier de cyberattaque en laboratoire pour découvrir comment nous détectons de véritables menaces de cybersécurité à l’aide de la surveillance des DNS.

Q : Comment fonctionne la communication DNS ?

R : Lorsqu’un utilisateur final saisit une URL, par exemple « varonis.com », dans la barre d’adresse de son navigateur, les événements suivants se produisent :

  1. Le navigateur consulte son cache local pour voir s’il dispose déjà des données DNS correspondantes.
  2. S’il ne les trouve pas, il interroge le serveur DNS en amont le plus proche, généralement le routeur du réseau local.
  3. Si le routeur ne dispose pas non plus de l’entrée DNS nécessaire dans son cache, il fait appel à un fournisseur DNS en amont, comme Google, Cloudflare ou Quad9.
  4. Ce serveur reçoit la demande et consulte son cache.
    • 4.1 S’il ne dispose pas des données demandées, il lance une résolution DNS récursive en commençant par demander aux serveurs DNS racine « Qui gère l’extension *.com ? ».
    • 4.2 Le résolveur demande ensuite au serveur de domaine supérieur chargé de l’extension .com « Qui gère Varonis.com ? ». Le serveur lui fournit alors l’URL d’un serveur de nom faisant autorité.
    • 4.3 Le résolveur envoie enfin une requête à ce serveur en demandant « Quelle est l’adresse IP de Varonis.com ? ». Le serveur lui répond en lui fournissant l’adresse IP du domaine.

5. Les données DNS sont alors renvoyées de proche en proche jusqu’à l’appareil de l’utilisateur final. Chaque serveur DNS de cette chaîne met en cache cette réponse pour pouvoir la réutiliser au besoin.

Q : Comment les hackers s’y prennent-ils pour empoisonner les caches DNS ?

Il existe plusieurs méthodes pour empoisonner un cache DNS, mais les plus fréquentes sont les suivantes : inciter la victime à cliquer sur un lien malveillant utilisant du code intégré qui altère le cache DNS de son navigateur ou pirater le serveur DNS local par l’intermédiaire d’une attaque de l’homme du milieu (attaque s’appuyant sur l’usurpation ARP pour rediriger les requêtes DNS vers un serveur DNS contrôlé par les hackers).

Q : Qu’est-ce que l’empoisonnement du cache DNS ?

R : L’empoisonnement du cache DNS consiste à remplacer une entrée de la base de données DNS par une adresse IP malveillante qui redirige l’utilisateur final vers un serveur contrôlé par le hacker.

Q : Comment l’usurpation de DNS intervient-elle ?

R : Un hacker peut usurper des DNS en accédant au cache DNS et en le modifiant, ou en redirigeant des requêtes DNS vers son propre serveur.

Q : Que signifie l’expression « usurpation de DNS » ?

R : L’usurpation de DNS signifie que l’URL qu’un utilisateur saisit dans son navigateur, par exemple varonis.com, ne le redirige pas vers l’adresse IP associée à cette URL, mais vers un serveur malveillant contrôlé par un hacker.

Q : En quoi l’usurpation de DNS est-elle un problème ?

R : L’usurpation de DNS pose problème, car le protocole DNS est basé sur la confiance et n’est généralement pas chiffré. Cela signifie qu’un hacker peut usurper une entrée DNS et l’utiliser pour voler des données, injecter des malwares, lancer des attaques de phishing et bloquer des mises à jour.

Q : Quelles sont les menaces posées par une usurpation de DNS ?

R : La principale menace posée par l’usurpation de DNS est le vol de données par le biais de pages de phishing. Par ailleurs, le risque d’une infection par un malware via l’hébergement de téléchargements d’apparence légitime est réel. Enfin, si le système repose sur Internet pour ses mises à jour, celles-ci peuvent être bloquées par la modification des entrées DNS, empêchant la résolution des adresses vers un site Web réel. La même stratégie peut être appliquée à n’importe quel site Web à des fins de censure.

Avatar

Michael Raymond

Michael Raymond est chercheur en sécurité et producteur vidéo pour les chaînes YouTube Null Byte et SecurityFWD.

 

Votre cybersécurité est-elle au cœur de votre infrastructure ?

Bénéficiez d'une évaluation personnalisée des risques auxquels sont exposées vos données, effectuée par des ingénieurs passionnés par la sécurité des données.