Le système de noms de domaine (DNS) est l'un des fondements d'Internet, mais la plupart des personnes en dehors des réseaux ne réalisent probablement pas qu'elles l'utilisent tous les jours pour faire leur travail, consulter leurs e-mails ou perdre du temps à leurs smartphones.
À la base, le DNS est un répertoire de noms qui correspondent à des nombres. Les numéros, 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, considérez le DNS comme la liste de contacts de votre smartphone, qui associe les noms des personnes à leurs numéros de téléphone et adresses e-mail. Multipliez ensuite cette liste de contacts par tous les autres habitants de la planète.
Une brève histoire du DNS
Lorsque Internet était très, très petit, il était plus facile pour les gens de faire correspondre des adresses IP spécifiques avec des ordinateurs spécifiques, mais cela n'a pas duré longtemps car plus d'appareils et personnes ont rejoint le réseau grandissant. 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 genre que nous reconnaîtrions comme un nom de domaine (comme networkworld.com) aujourd'hui. 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 de Stanford, qui maintenait une liste principale de tous les ordinateurs connectés à Internet dans un fichier texte appelé HOSTS.TXT.
C'était évidemment une situation intenable à mesure qu'Internet se développait, notamment parce que Feinler ne traitait que les demandes avant 18 heures. heure de la Californie, et a pris congé pour Noël. En 1983, Paul Mockapetris, chercheur à l'USC, a été chargé de trouver un compromis parmi plusieurs suggestions pour résoudre le problème. Il les a pratiquement tous ignorés et a développé son propre système, qu'il a baptisé DNS. Bien que cela ait évidemment beaucoup changé depuis lors, à un niveau fondamental, cela fonctionne toujours de la même manière qu'il y a près de 40 ans.
Fonctionnement des serveurs DNS
Le répertoire DNS qui associe les noms aux numéros n'est pas situé au même endroit dans un coin sombre d'Internet. Avec plus de 332 millions de noms de domaine répertoriés fin 2017, un seul annuaire serait en effet très volumineux. Comme 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 très régulièrement entre eux pour fournir des mises à jour et des redondances.
Serveurs DNS faisant autorité 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< em>. 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 faire appel 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 à plusieurs adresses IP. En fait, certains sites ont des centaines ou plus d'adresses IP qui correspondent à un seul nom de domaine. Par exemple, le serveur auquel votre ordinateur accède pour www.google.com est probablement complètement différent du serveur auquel quelqu'un dans un autre pays accèderait en saisissant le même nom de site dans son navigateur.
Une autre raison de la nature distribuée de l'annuaire est le temps qu'il vous faudrait pour obtenir une réponse lorsque vous recherchiez un site s'il n'y avait qu'un seul emplacement pour l'annuaire, partagé entre des millions, voire des milliards , de personnes recherchant également des informations en même temps. 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 des 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, ces informations sont enregistrées 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 à Internet, ainsi que sur les serveurs du fournisseur d'accès Internet (FAI) de l'utilisateur. Avec autant de mise en cache, le nombre de requêtes qui parviennent réellement aux serveurs de noms DNS est beaucoup plus faible qu'il n'y paraît.
Comment puis-je trouver mon serveur DNS ?
Généralement, le serveur DNS que vous utilisez sera automatiquement établi par votre fournisseur de réseau lorsque vous vous connecterez à Internet. Si vous voulez voir quels serveurs sont vos serveurs de noms principaux - 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 est un bon site et fournit de nombreuses informations, y compris vos serveurs DNS actuels.
Puis-je utiliser le DNS 8.8.8.8 ?
Il est important de garder à l'esprit, cependant, que même si votre FAI définira 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 à la place 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 importants est celui de Google ; son adresse IP est 8.8.8.8. Les services DNS de Google ont tendance à être rapides, et bien qu'il y ait certaines questions sur les arrière-pensées de Google pour offrir le service gratuit, ils ne peuvent pas vraiment obtenir plus d'informations de votre part qu'ils n'obtiennent pas déjà de Chrome. Google a une page avec des instructions détaillées sur la façon de configurer votre ordinateur ou votre routeur pour se connecter au DNS de Google.
Comment le DNS ajoute de l'efficacité
Le DNS est organisé selon une hiérarchie qui permet d'assurer un fonctionnement rapide et fluide. Pour illustrer, supposons que vous vouliez visiter networkworld.com.
La demande initiale d'adresse IP est adressée à un résolveur récursif, comme indiqué ci-dessus. Le résolveur récursif sait à quels autres serveurs DNS il doit faire appel pour résoudre le nom d'un site (networkworld.com) avec son adresse IP. Cette recherche mène à un serveur racine, qui connaît toutes les informations sur les domaines de premier niveau, tels que .com, .net, .org et tous ces domaines nationaux comme .cn (Chine) et .uk (Royaume-Uni). Les serveurs racine sont situés partout dans le monde, 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 est transmise à un serveur de noms de domaine de premier niveau (TLD), qui stocke les informations du domaine de second niveau, les mots utilisés avant d'accéder au .com, .org , .net (par exemple, ces informations pour networkworld.com sont « networkworld »). La demande est ensuite transmise au serveur de noms de domaine, qui contient les informations sur le site et son adresse IP. Une fois l'adresse IP découverte, elle est renvoyée au client, qui peut alors l'utiliser pour visiter le site Web. Tout cela ne prend que quelques millisecondes.
Parce que le DNS fonctionne depuis plus de 30 ans, la plupart des gens le tiennent pour 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.
Attaques par réflexion DNS
Les attaques par réflexion DNS peuvent inonder les victimes de messages volumineux provenant des serveurs de résolution DNS. Les attaquants demandent des fichiers DNS volumineux à 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 sollicitées qui submerge ses machines.
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. Ainsi, 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, celui contrôlé par l'attaquant. Une fois sur ces faux sites, les victimes peuvent être amenées à renoncer à leurs mots de passe ou subir des téléchargements de logiciels malveillants.
Épuisement des ressources DNS
Les attaques par épuisement des ressources DNS peuvent obstruer l'infrastructure DNS des FAI, empêchant les clients du FAI d'accéder aux sites sur Internet. Cela peut être fait par des attaquants enregistrant un nom de domaine et utilisant le serveur de noms de la victime comme serveur faisant autorité du domaine. Ainsi, si un résolveur récursif ne peut pas 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 requêtes pour leur domaine et jettent des sous-domaines inexistants pour démarrer, ce qui conduit à un torrent de requêtes de résolution lancées sur le serveur de noms de la victime, le submergeant.
Qu'est-ce que DNSSec ?
Les extensions de sécurité DNS visent à sécuriser davantage 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 à des attaquants de détourner des recherches. Cela permettrait aux attaquants de répondre aux demandes de recherche de sites légitimes avec l'adresse IP des sites malveillants. Ces sites pourraient télécharger des logiciels malveillants vers les utilisateurs ou mener des attaques de phishing et de pharming.
DNSSEC résoudrait ce problème en demandant à chaque niveau de serveur DNS de signer numériquement ses requêtes, ce qui garantit que les requêtes envoyées par les utilisateurs finaux ne sont pas réquisitionnées par des attaquants. Cela crée une chaîne de confiance afin qu'à chaque étape de la recherche, l'intégrité de la requête soit validée.
En outre, DNSSec peut déterminer si des noms de domaine existent, et si ce n'est pas le cas, il ne laissera pas ce domaine frauduleux être livré à des demandeurs innocents cherchant à résoudre un nom de domaine.
Au fur et à mesure que de plus en plus de noms de domaine sont créés et que de plus en plus d'appareils continuent de rejoindre le réseau via des appareils de l'Internet des objets et d'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 DNS.
SIGRed : une faille DNS wormable pointe le bout de son nez
Le monde a récemment pu observer le genre de chaos que les faiblesses du DNS pourraient provoquer avec la découverte d'une faille dans les serveurs DNS 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 corrigés pour potentiellement installer et exécuter du code malveillant arbitraire sur les clients. Et l'exploit est « vermifuge », ce qui signifie qu'il peut se propager d'un ordinateur à l'autre sans intervention humaine. La vulnérabilité était considérée comme suffisamment alarmante pour que les agences fédérales américaines n'aient eu que quelques jours pour installer les correctifs.
DNS sur HTTPS : un nouveau paysage de la confidentialité
Au moment d'écrire ces lignes, le DNS est sur le point de connaître 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 l'implémentation de Chrome, le navigateur vérifie si les serveurs DNS prennent en charge DoH, et s'ils ne le font pas, il redirige les requêtes DNS vers le 8.8.8.8 de Google.
C'est une décision non sans controverse. Paul Vixie, qui a effectué une grande partie des premiers travaux sur le protocole DNS dans les années 1980, qualifie cette décision de "désastre" pour la sécurité : les services informatiques d'entreprise auront beaucoup plus de mal à surveiller ou à diriger le trafic DoH qui traverse leur réseau, par exemple. Pourtant, 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, éditeur 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 éditeur qui vit à Los Angeles.)
Rejoignez les communautés Network World sur Facebook et LinkedIn pour commenter les sujets qui vous tiennent à cœur.