Articles

Qu’est-ce que le DNS et comment fonctionne-t-il ?

Le système de noms de domaine (DNS) est l’un des fondements de l’internet, pourtant la plupart des gens en dehors des réseaux ne réalisent probablement pas qu’ils l’utilisent tous les jours pour faire leur travail, consulter leur courrier électronique ou perdre du temps sur leur smartphone.

À la base, le DNS est un répertoire de noms qui correspondent à des numéros. Les chiffres, dans ce cas, sont des adresses IP, que les ordinateurs utilisent pour communiquer entre eux. La plupart des descriptions du DNS utilisent l’analogie d’un annuaire téléphonique, ce qui convient aux personnes de plus de 30 ans qui savent ce qu’est un annuaire téléphonique.

Si vous avez moins de 30 ans, pensez au DNS comme à la liste de contacts de votre smartphone, qui fait correspondre les noms des personnes avec leurs numéros de téléphone et leurs adresses électroniques. Multipliez ensuite cette liste de contacts par tous les habitants de la planète.

Un bref historique du DNS

Lorsque l’internet était très, très petit, il était plus facile pour les gens de faire correspondre des adresses IP spécifiques à des ordinateurs spécifiques, mais cela n’a pas duré longtemps car de plus en plus d’appareils et de personnes ont rejoint le réseau en expansion. Il est toujours possible de taper une adresse IP spécifique dans un navigateur pour accéder à un site web, mais à l’époque, comme aujourd’hui, les gens voulaient une adresse composée de mots faciles à retenir, du type de ceux que l’on reconnaîtrait aujourd’hui comme un nom de domaine (comme networkworld.com). Dans les années 1970 et au début des années 1980, ces noms et adresses étaient attribués par une seule personne – Elizabeth Feinler à Stanford – qui tenait à jour une liste principale de tous les ordinateurs connectés à Internet dans un fichier texte appelé HOSTS.TXT.

Cette situation était évidemment intenable au fur et à mesure que l’Internet se développait, notamment parce que Feinler ne traitait les demandes qu’avant 18 heures, heure de Californie, et prenait congé pour Noël. En 1983, Paul Mockapetris, un chercheur de l’USC, a été chargé de trouver un compromis parmi de multiples suggestions pour résoudre le problème. Il les a toutes ignorées et a développé son propre système, qu’il a baptisé DNS. S’il a évidemment beaucoup changé depuis, à un niveau fondamental, il fonctionne toujours de la même manière qu’il y a près de 40 ans.

Comment fonctionnent les serveurs DNS

Le répertoire DNS qui fait correspondre le nom aux numéros n’est pas situé tout entier dans un coin sombre d’internet. Avec plus de 332 millions de noms de domaine répertoriés à la fin de 2017, un seul annuaire serait en effet très grand. Comme l’internet lui-même, l’annuaire est distribué dans le monde entier, stocké sur des serveurs de noms de domaine (généralement appelés serveurs DNS en abrégé) qui communiquent tous entre eux très régulièrement pour fournir des mises à jour et des redondances.

Serveurs DNS autoritaires vs serveurs DNS récursifs

Lorsque votre ordinateur veut trouver l’adresse IP associée à un nom de domaine, il fait d’abord sa demande à un serveur DNS récursif, également appelé résolveur récursif. Un résolveur récursif est un serveur qui est généralement exploité par un FAI ou un autre fournisseur tiers, et il sait quels autres serveurs DNS il doit demander pour résoudre le nom d’un site avec son adresse IP. Les serveurs qui disposent réellement des informations nécessaires sont appelés serveurs DNS faisant autorité.

Serveurs DNS et adresses IP

Chaque domaine peut correspondre à plus d’une adresse IP. En fait, certains sites ont des centaines ou plus d’adresses IP qui correspondent à un seul nom de domaine. Par exemple, le serveur que votre ordinateur atteint pour www.google.com est probablement complètement différent du serveur que quelqu’un d’un autre pays atteindrait en tapant le même nom de site dans son navigateur.

Une autre raison de la nature distribuée du répertoire est le temps qu’il vous faudrait pour obtenir une réponse lorsque vous recherchez un site s’il n’y avait qu’un seul emplacement pour le répertoire, partagé entre les millions, probablement les milliards, de personnes qui recherchent également des informations au même moment. C’est une longue file d’attente pour utiliser l’annuaire téléphonique.

Qu’est-ce que la mise en cache DNS ?

Pour contourner ce problème, les informations DNS sont partagées entre de nombreux serveurs. Mais les informations relatives aux sites visités récemment sont également mises en cache localement sur les ordinateurs clients. Il y a de fortes chances que vous utilisiez google.com plusieurs fois par jour. Au lieu que votre ordinateur interroge à chaque fois le serveur de noms DNS pour obtenir l’adresse IP de google.com, cette information est enregistrée sur votre ordinateur afin qu’il n’ait pas à accéder à un serveur DNS pour résoudre le nom avec son adresse IP. Une mise en cache supplémentaire peut se produire sur les routeurs utilisés pour connecter les clients à l’Internet, ainsi que sur les serveurs du fournisseur d’accès Internet (FAI) de l’utilisateur. Avec une telle mise en cache, le nombre de requêtes qui parviennent effectivement aux serveurs de noms DNS est beaucoup plus faible qu’il n’y paraît.

Comment trouver mon serveur DNS ?

En règle générale, le serveur DNS que vous utilisez sera établi automatiquement par votre fournisseur de réseau lorsque vous vous connecterez à Internet. Si vous voulez voir quels serveurs sont vos serveurs de noms primaires – généralement le résolveur récursif, comme décrit ci-dessus – il existe des utilitaires web qui peuvent fournir une foule d’informations sur votre connexion réseau actuelle. Browserleaks.com en est un bon, et il fournit beaucoup d’informations, y compris vos serveurs DNS actuels.

Puis-je utiliser 8.8.8.8 DNS ?

Il est important de garder à l’esprit, cependant, que si votre FAI définit un serveur DNS par défaut, vous n’êtes pas obligé de l’utiliser. Certains utilisateurs peuvent avoir des raisons d’éviter le DNS de leur FAI – par exemple, certains FAI utilisent leurs serveurs DNS pour rediriger les demandes d’adresses inexistantes vers des pages contenant de la publicité.

Si vous voulez une alternative, vous pouvez au contraire faire pointer votre ordinateur vers un serveur DNS public qui agira comme un résolveur récursif. L’un des serveurs DNS publics les plus connus est celui de Google ; son adresse IP est 8.8.8.8. Les services DNS de Google ont tendance à être rapides et, bien que l’on puisse s’interroger sur les arrière-pensées de Google pour offrir ce service gratuit, ils ne peuvent pas vraiment obtenir plus d’informations de votre part qu’ils n’en obtiennent déjà de Chrome. Google dispose d’une page contenant des instructions détaillées sur la façon de configurer votre ordinateur ou votre routeur pour qu’il se connecte au DNS de Google.

Comment le DNS ajoute de l’efficacité

Le DNS est organisé selon une hiérarchie qui aide à maintenir un fonctionnement rapide et fluide. Pour illustrer, supposons que vous vouliez visiter networkworld.com.

La demande initiale de l’adresse IP est faite à un résolveur récursif, comme indiqué ci-dessus. Le résolveur récursif sait quels autres serveurs DNS il doit demander pour résoudre le nom d’un site (networkworld.com) avec son adresse IP. Cette recherche conduit à un serveur racine, qui connaît toutes les informations sur les domaines de premier niveau, tels que .com, .net, .org et tous les domaines nationaux comme .cn (Chine) et .uk (Royaume-Uni). Les serveurs racine sont situés dans le monde entier, de sorte que le système vous dirige généralement vers le plus proche géographiquement.

Une fois que la demande atteint le bon serveur racine, elle va vers un serveur de noms de domaines de premier niveau (TLD), qui stocke les informations pour le domaine de second niveau, les mots utilisés avant d’arriver au .com, .org, .net (par exemple, cette information pour networkworld.com est « networkworld »). La demande est ensuite transmise au serveur de noms de domaine, qui détient les informations sur le site et son adresse IP. Une fois l’adresse IP découverte, elle est renvoyée au client, qui peut désormais l’utiliser pour visiter le site web. Tout cela ne prend que quelques millisecondes.

Comme le DNS fonctionne depuis plus de 30 ans, la plupart des gens le considèrent comme acquis. La sécurité n’a pas non plus été prise en compte lors de la construction du système, de sorte que les pirates en ont pleinement profité, créant une variété d’attaques.

Les attaques par réflexion DNS

Les attaques par réflexion DNS peuvent submerger les victimes avec des messages à haut volume provenant des serveurs de résolution DNS. Les attaquants demandent de gros fichiers DNS à tous les résolveurs DNS ouverts qu’ils peuvent trouver et le font en utilisant l’adresse IP usurpée de la victime. Lorsque les résolveurs répondent, la victime reçoit un flot de données DNS non demandées qui submerge ses machines.

L’empoisonnement du cache DNS

L’empoisonnement du cache DNS peut détourner les utilisateurs vers des sites Web malveillants. Les attaquants parviennent à insérer de faux enregistrements d’adresse dans le DNS, de sorte que lorsqu’une victime potentielle demande une résolution d’adresse pour l’un des sites empoisonnés, le DNS répond avec l’adresse IP d’un site différent, contrôlé par l’attaquant. Une fois sur ces sites bidons, les victimes peuvent être amenées à donner des mots de passe ou subir des téléchargements de logiciels malveillants.

Epuisement des ressources DNS

Les attaques par épuisement des ressources DNS peuvent obstruer l’infrastructure DNS des FAI, bloquant les clients du FAI pour qu’ils puissent atteindre des sites sur Internet. Pour ce faire, les attaquants enregistrent un nom de domaine et utilisent le serveur de noms de la victime comme serveur faisant autorité pour le domaine. Ainsi, si un résolveur récursif ne peut fournir l’adresse IP associée au nom du site, il demandera au serveur de noms de la victime. Les attaquants génèrent un grand nombre de demandes pour leur domaine et y jettent des sous-domaines inexistants pour démarrer, ce qui conduit à un torrent de demandes de résolution tirées sur le serveur de noms de la victime, le submergeant.

Qu’est-ce que DNSSec ?

Les extensions de sécurité DNS sont un effort pour rendre plus sûre la communication entre les différents niveaux de serveurs impliqués dans les recherches DNS. Il a été conçu par l’Internet Corporation for Assigned Names and Numbers (ICANN), l’organisation en charge du système DNS.

L’ICANN a pris conscience de faiblesses dans la communication entre les serveurs d’annuaire DNS de premier niveau, de deuxième niveau et de troisième niveau, qui pourraient permettre aux attaquants de détourner les consultations. Cela permettrait aux attaquants de répondre aux demandes de consultation de sites légitimes avec l’adresse IP de sites malveillants. Ces sites pourraient télécharger des logiciels malveillants vers les utilisateurs ou mener des attaques de phishing et de pharming.

DNSSEC remédierait à ce problème en faisant signer numériquement les requêtes de chaque niveau de serveur DNS, ce qui garantit que les requêtes envoyées par les utilisateurs finaux ne sont pas réquisitionnées par les attaquants. Cela crée une chaîne de confiance de sorte qu’à chaque étape de la recherche, l’intégrité de la demande est validée.

En outre, DNSSec peut déterminer si les noms de domaine existent, et si l’un d’eux n’existe pas, il ne laissera pas ce domaine frauduleux être livré à des demandeurs innocents cherchant à faire résoudre un nom de domaine.

Alors que de plus en plus de noms de domaine sont créés, que de plus en plus d’appareils continuent à rejoindre le réseau via les appareils de l’internet des objets et autres systèmes « intelligents », et que de plus en plus de sites migrent vers IPv6, le maintien d’un écosystème DNS sain sera nécessaire. La croissance du big data et de l’analytique entraîne également un besoin accru de gestion des DNS.

SIGRed : Une faille DNS vermoulue refait surface

Le monde a eu récemment un bon aperçu du genre de chaos que des faiblesses dans le DNS pourraient causer avec la découverte d’une faille dans les serveurs DNS de Windows. La faille de sécurité potentielle, baptisée SIGRed, nécessite une chaîne d’attaque complexe, mais peut exploiter des serveurs DNS Windows non patchés pour potentiellement installer et exécuter un code malveillant arbitraire sur des clients. L’exploit est « vermifuge », ce qui signifie qu’il peut se propager d’ordinateur en ordinateur sans intervention humaine. La vulnérabilité a été jugée suffisamment alarmante pour que les agences fédérales américaines n’aient eu que quelques jours pour installer des correctifs.

DNS over HTTPS : A new privacy landscape

Au moment où nous écrivons ces lignes, le DNS est à l’aube de l’un des plus grands changements de son histoire. Google et Mozilla, qui contrôlent ensemble la part du lion du marché des navigateurs, encouragent une évolution vers le DNS sur HTTPS, ou DoH, dans lequel les requêtes DNS sont cryptées par le même protocole HTTPS qui protège déjà la plupart du trafic web. Dans la mise en œuvre de Chrome, le navigateur vérifie si les serveurs DNS prennent en charge DoH, et s’ils ne le font pas, il redirige les demandes DNS vers le 8.8.8.8 de Google.

C’est un mouvement qui n’est pas sans controverse. Paul Vixie, qui a réalisé une grande partie des premiers travaux sur le protocole DNS dans les années 1980, qualifie ce mouvement de « désastre » pour la sécurité : les services informatiques des entreprises auront beaucoup plus de mal à surveiller ou à diriger le trafic DoH qui traverse leur réseau, par exemple. Malgré tout, Chrome est omniprésent et DoH sera bientôt activé par défaut, nous verrons donc ce que l’avenir nous réserve.

(Keith Shaw est un ancien rédacteur en chef de Network World et un écrivain, rédacteur et critique de produits primé qui a écrit pour de nombreuses publications et sites Web dans le monde entier.)

(Josh Fruhlinger est un écrivain et rédacteur qui vit à Los Angeles.)

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *