DNS Leak

Le Domain Name System, abrégé en DNS, traduit les domaines Internet en adresses IP. Ce système mondial associe des adresses IP aux différents noms de domaine jouant ainsi le rôle d’un « annuaire » Internet. L’adresse IP correspond à une adresse postale à laquelle on peut envoyer des paquets. Voici deux exemples de requêtes DNS :

Nom de domaine interrogé

Adresse IP renvoyée

« example.com »

« 93.184.216.34 »

« ionos.fr »

« 217.160.86.7 »

Pour que la résolution de nom puisse fonctionner, l’adresse IP d’un serveur DNS doit être renseignée sur chaque terminal. Le terminal adresse ses requêtes DNS à ce serveur. Les données utilisées dans ce cadre en disent long sur le comportement de navigation de l’internaute. Si vous souhaitez protéger votre vie privée, les requêtes DNS sortantes doivent uniquement être envoyées à des serveurs de confiance. Mais que se passe-t-il lorsque tout ne marche pas comme prévu ?

Qu’est-ce qu’une DNS Leak ?

Contrairement aux détournements de DNS et au DNS spoofing, les DNS Leak, ou fuites DNS en français, menacent uniquement les utilisateurs essayant de garder leur comportement de navigation confidentiel. Pour être plus précis, les utilisateurs concernés sont ceux qui utilisent un réseau virtuel privé (VPN) ou un proxy pour leur connexion Internet. Ces deux technologies servent à dissimuler l’identité personnelle lors de l’utilisation d’Internet.

Vouloir garder son comportement de navigation confidentiel n’implique pas nécessairement des activités illégales. En effet, le droit à la vie privée et à l’autodétermination en ce qui concerne les informations sont des droits de l’homme fondamentaux. Les fournisseurs de services de VPN commerciaux soutiennent cette aspiration légitime des utilisateurs moyennant paiement. Alors que par le passé, les proxys étaient fortement utilisés, ils sont aujourd'hui moins fréquents ; par conséquent, nous limiterons notre analyse aux fuites DNS survenant dans le cadre de l’utilisation d’un VPN.

Les services de VPN visent à faire passer l’ensemble du trafic réseau sortant via le VPN. Dans certaines circonstances, il peut toutefois arriver que des connexions individuelles soient effectuées directement de l’appareil de l’utilisateur aux partenaires de communication sur Internet. On parle de DNS Leak lorsqu’une requête DNS devant passer par le VPN parvient au serveur DNS sans protection. Il s’agit souvent du serveur DNS du fournisseur d’accès à Internet (ISP). Les fournisseurs d’accès sont connus pour collecter, analyser et revendre les données qu’ils reçoivent dans ce cadre.

Quelles informations peuvent fuiter ?

Que se passe-t-il en cas de DNS Leak et quelles sont les informations divulguées ? Tout d’abord, il convient de distinguer trois cas :

  1. Les informations transmises au fournisseur d’accès de l’utilisateur,
  2. Les informations captées sur le chemin vers le serveur DNS et
  3. Les informations divulguées par un prestataire de services.

Une requête DNS entrante dans le serveur DNS du fournisseur d’accès contient non seulement l’adresse IP non masquée de l’utilisateur final mais aussi le nom de domaine à résoudre. Accompagnées d’un horodatage dans les fichiers journaux du serveur du fournisseur d’accès, ces informations permettent de déterminer à quel moment un utilisateur à souhaiter accéder à tel domaine. Cela pose un problème de protection des données sérieux. Les données DNS sont d’une part souvent rassemblées en profils et vendues. D’autre part, les agences gouvernementales peuvent avoir accès à ces données. Dans le cas de dissidents et d’activistes politiques, une telle fuite de données peut signifier leur arrêt de mort.

Les requêtes DNS utilisent le User Datagram Protocol (UDP) comme protocole de connexion. Avant de parvenir au serveur DNS, les paquets UDP sont consultables par n’importe quel acteur en mesure de surveiller ce canal de transmission. Afin d’assurer la confidentialité du comportement d’utilisation de l’utilisateur final, les requêtes DNS doivent passer via le VPN. Depuis les révélations faites par Snowden, il est de notoriété publique que les services secrets surveillent, extraient, analysent et enregistrent le trafic Internet de façon massive. Par conséquent, les paquets de données permettant une identification personnelle qui sont divulgués en cas de DNS Leak représentent un danger sérieux pour la sécurité et la vie privée des internautes.

En dehors des dangers déjà évoqués dans le cadre des DNS Leak, il existe un autre risque. En effet, une fuite DNS peut être exploitée par des tiers. Il peut s’agir d’un prestataire de services, par ex. l’exploitant d’un site Internet. À l’aide d’une astuce, le prestataire peut déterminer qu’un utilisateur accède à son service via un VPN. Dans certaines circonstances, le fournisseur d’accès de l’utilisateur est révélé au prestataire de services. Cette information donne une indication approximative de la localisation géographique de l’utilisateur. Les tests de DNS Leak utilisent la même astuce, mais au profit de l’utilisateur.

Comment fonctionne un test de DNS Leak ?

Il existe une multitude de services tentant de détecter les fuites DNS. Les services connus sous le nom de « tests de fuites DNS » sont habituellement conçus sous la forme de sites web classiques que l’utilisateur peut consulter via son navigateur. Afin de tester l’éventuelle présence d’un DNS Leak, le test de fuites DNS déclenche une série de tentatives de connexion spécifiques dont l’objectif est de retracer la provenance des requêtes DNS qui en résultent. Mais quel en est le fonctionnement exact ?

Pour bien comprendre le principe de fonctionnement d’un test de fuites DNS, il convient d’expliquer la structure du DNS. Le DNS est un système hiérarchique composé de serveurs de noms. Dans ce cadre, on opère une distinction entre les serveurs de noms faisant autorité et les serveurs de noms ne faisant pas autorité. Un serveur de noms faisant autorité sert de source pour les données DNS d’une zone DNS. Pour vous représenter ce qu’est une zone DNS, vous pouvez imaginer un domaine accompagné, le cas échéant, d’autres sous-domaines.

Outre les serveurs de noms faisant autorité, il existe également des serveurs de noms conservant une partie des données DNS dans un cache. Ces serveurs permettent de répondre rapidement aux requêtes déjà soumises par le passé sans avoir à interroger à chaque fois le serveur de noms faisant autorité. Pour la plupart des domaines, le serveur DNS du fournisseur d’accès est un serveur de noms ne faisant pas autorité. Regardons ce qu’il se passe lorsqu’une requête parvient au serveur DNS du fournisseur d’accès pour un nom de domaine :

  1. Un client souhaite consulter une ressource hébergée sous un nom de domaine.
  2. Le client soumet une requête de nom de domaine au serveur DNS de son fournisseur d’accès.
  3. Si le serveur DNS connaît l’adresse IP appartenant au nom de domaine, il la renvoie.
  4. Dans le cas contraire, le serveur DNS du fournisseur d’accès interroge le serveur DNS faisant autorité pour la zone DNS, ce dernier étant hiérarchiquement supérieur au nom de domaine.
  5. Le serveur DNS faisant autorité renvoie l’adresse IP pour le nom de domaine.
  6. Le serveur DNS du fournisseur d’accès transmet l’adresse IP au client et enregistre la requête dans son cache.
  7. Le client peut désormais adresser la requête pour la ressource au serveur accessible sous le nom de domaine.

Un test de fuites DNS se base sur ce principe essentiel. Nous vous l’expliquons en prenant l’exemple du site web DNS Leak Test :

  1. Un utilisateur se rend sur le site Internet dnsleaktest.com dans son navigateur. Ce test de fuites DNS génère des requêtes pour des ressources fictives sous un sous-domaine unique, généré de façon aléatoire. Voici un exemple de nom pour un tel domaine : c6fe4e11-d84d-4a32-86ef-ee60d9c543fa.test.dnsleaktest.com
  2. Pour consulter l’une des ressources, le navigateur du visiteur de la page a besoin de l’adresse IP correspondant au nom de domaine. Comme il s’agit d’un nom de domaine généré au hasard, seul le serveur DNS faisant autorité peut connaître l’adresse IP.
  3. Le serveur DNS recevant la requête interroge par conséquent le serveur DNS faisant autorité pour la zone DNS, à savoir test.dnsleaktest.com. Le serveur DNS faisant autorité pour ce nom de domaine est sous le contrôle de l’exploitant du site dnsleaktest.com.
  4. Le serveur DNS faisant autorité compare alors la partie unique et générée de façon aléatoire du nom de domaine avec les entrées d’une base de données interne. dnsleaktest.com permet ainsi de déterminer à quel visiteur du site Internet correspond chaque requête DNS.
  5. Grâce à l’adresse IP, le serveur DNS faisant autorité sait de quel serveur DNS externe vient la requête concernant l’adresse IP du nom de domaine généré de façon aléatoire. Si la source de la requête est le serveur DNS d’un fournisseur d’accès, cela signifie qu’il y a DNS Leak.

Quels sont les tests de fuites DNS disponibles ?

En principe, peu de moyens sont nécessaires pour créer un test de fuites DNS sous forme de service en ligne. Si ce sujet vous intéresse, nous vous invitons à lire cet article pour une description détaillée de la marche à suivre. Si vous souhaitez simplement vérifier si vous êtes personnellement victime d’un DNS Leak, il suffit de recourir à l’un des tests de fuites DNS existants. Nous en avons rassemblé quelques-uns pour vous dans la liste suivante :

Comment éviter les DNS Leak ?

La meilleure stratégie pour éviter les DNS Leak est basée sur le concept de sécurité informatique « Defense in depth » (en français : « défense en profondeur »). Ce concept consiste à mettre en place plusieurs couches pour une protection efficace contre les menaces. Même si l’une des couches tombe, la protection reste efficace. Afin d’éviter les DNS Leak, nous vous recommandons de suivre les étapes suivantes dans cet ordre :

  1. Installez sur l’appareil local et sur votre routeur domestique des serveurs DNS qui ne sont pas sous le contrôle de votre fournisseur d’accès. Il s’agit d'une mesure de protection fondamentale permettant également de prévenir les autres risques tels que les détournements de DNS. Pour ce faire, il est recommandé d’utiliser Quad9 ou Cloudflares 1.1.1.1. N'oubliez pas de vider le cache DNS après toute modification du serveur DNS.
  2. Utilisez un logiciel de chiffrement des connexions DNS, par ex. DNS over HTTPS (DoH) ou DNS over TLS (DoT). Cette mesure vous protégera contre le captage et la manipulation des paquets DNS sur leur chemin vers le serveur DNS empêchant ainsi les attaques de DNS spoofing. L’utilisation d’un chiffrement du DNS dépend du logiciel utilisé. Parmi les navigateurs les plus répandus, Firefox est en tête dans la transition vers le chiffrement des connexions DNS. Toutefois, les paramètres du navigateur doivent être ajustés à cet effet, comme nous vous le montrons dans notre article sur DoH.
  3. Utilisez un client VPN faisant passer les requêtes DNS via le tunnel du VPN et mettant à disposition des serveurs DNS personnels. Cette mesure permet de vous protéger contre tous les dangers liés aux DNS Leak. Il existe pléthore de fournisseurs de VPN différents. Certains d’entre eux mettent gratuitement leurs services à disposition, d’autres les proposent sous forme de prestations commerciales. De façon générale, il convient de se montrer méfiant vis-à-vis des services de VPN gratuits ; habituellement, vous ne pourrez pas attendre le même niveau de protection de leur part.
Conseil

Nous avons dressé pour vous une liste de différents services de VPN pour vous donner une vue d’ensemble.

Les points cités précédemment fournissent un niveau de protection de base contre les DNS Leak et devraient être suffisants pour la grande majorité des internautes. Les membres de groupes particulièrement menacés, notamment les défendeurs des droits de l’homme, devraient prendre des mesures de protection supplémentaires :

  • L’utilisation du navigateur Tor se révèle pratique. Celui-ci est connu pour éviter efficacement les DNS Leak lors de l’accès à des offres en ligne.
  • Afin de garantir que toutes les connexions réseaux sortantes passent effectivement par le réseau Tor et sont dépersonnalisées, il est recommandé de booter Tails-Linux depuis une clé USB. Cette approche fait figure de référence absolue en matière de masquage de l’identité dans le cadre de l’utilisation d’Internet.