DNS pour Domaine Name Service, ou Service de Nom de Domaine en Français.
Qu’est ce que le DNS ? à qui il sert ? Quelles sont les attaques liées au DNS et comment s’en protéger ?
On vous explique cela dans l’article qui suit.
Qu’est ce que le DNS et à quoi cela sert ?
Le DNS est pour Internet ce qu’a pu être l’annuaire téléphonique papier (les Pages Blanches), avant la démocratisation de l’accès à Internet.
Pour les plus jeunes :), l’annuaire était distribué sous format papier, il contenait ces fameuses pages blanches, et pages jaunes.
Lorsque l’on souhaitait appeler une personne dont on connaissait le nom, nous pouvions chercher son numéro dans notre répertoire papier personnel.
Mais si nous ne l’avions pas, il fallait alors rechercher le nom dans les pages blanches de l’annuaire, afin de trouver le numéro correspondant.
Mais quel est le rapport avec les DNS ?
Les services de nom de domaine ont une fonction similaire.
Alors que l’annuaire répond à la question : « quel est le numéro de téléphone de SOOIZ ? », le DNS répond quant à lui à la question : « quelle est l’adresse du site sooiz.fr ? »
En effet, il serait assez contraignant de se souvenir de l’adresse IP de chaque site que l’on souhaite visiter.
Il est plus simple et pratique de retenir un nom de marque, ou de société comme sooiz.fr qu’une adresse IP, par exemple 84.16.76.221
Les autres usages du DNS ?
Tout comme l’annuaire permettait de trouver un numéro de téléphone, mais aussi une adresse, le nom de domaine peut répondre à d’autres questions, par exemple :
- à quelle adresse je dois envoyer les emails à destination de @sooiz.fr ? (c’est ce que l’on appelle techniquement les MX pour Mail eXchanger – échangeurs de courrier)
- quels sont les adresses des serveurs autorisés à envoyer des emails pour le compte de sooiz.fr ? (ce sont les adresses autorisées à envoyer des mails, les SPF pour Sender Policy Framework – politique d’expéditeur)
- quelle est l’adresse du vpn.sooiz.fr ? (pour les adresses, ce sont les enregistrements A (Adresse), ou CNAME si un alias est associé.)
- et même : comment paramétrer mon compte de messagerie pour mon adresse @sooiz.fr ? (ce sont les enregistrements nommés souvent « autodiscover » pour découverte automatique)
Le fonctionnement du DNS
Pour répondre à ces questions, et fournir un « service de noms de domaine », le DNS a besoin que des informations soient renseignées.
Cela se fait au niveau des noms de domaine.
Le nom de domaine
Le nom de domaine est une chaine de caractères composée d’un nom (ex. sooiz) et d’une extension (ex. .fr). Ce nom de domaine peut avoir un préfixe, par exemple www, et on peut également créer des sous domaines tels que sousdomaine.sooiz.fr par exemple.
La configuration du nom de domaine va contenir les informations vues précédemment, à savoir les serveurs de messagerie associés, l’adresse du site web, etc..
C’est le propriétaire du nom de domaine qui doit le paramétrer pour renseigner ces informations.
Il se souscrit en général en ligne, via différentes plateformes ou auprès de prestataires de noms de domaine, qui font le lien entre le client final et les registres, organismes en charge d’extensions.
Un registre est une organisation accréditée qui a l’autorisation de vendre et de gérer des extensions. En France, c’est l’AFNIC qui gère les noms de domaine en .fr
A noter : nous traitons ici des noms de domaine « PUBLICS » en .com, .org, .fr, .eu etc… Sur un serveur DNS local, il est également possible de créer ses propres noms de domaines se terminant par exemple par : .local, .priv, .lan. Ces derniers ne seront pas publiés sur Internet, ils ne seront accessibles que depuis votre réseau.
Et ensuite ?
Lorsque dans la barre d’adresse de votre navigateur (Edge, Safari, Firefox, Chrome…) vous saisissez une adresse comme https://sooiz.fr , votre navigateur va demander à votre système (Windows, Linux, MacOS, iOS, Android…) : « quelle est l’adresse de sooiz.fr ? ».
Mais à qui il pose la question ?
A un service de noms de domaine. Le DNS qui est paramétré sur votre réseau.
Sur un réseau domestique, il s’agit probablement par défaut de votre BOX Internet
Sur un réseau d’entreprise, c’est souvent le rôle d’un routeur, d’un firewall ou de l’Active Directory.
Comment ce DNS connait tous les noms de domaine d’Internet ?
Il ne les connait pas tous, il dispose de ce que l’on nomme un cache.
C’est à dire qu’il va conserver l’historique des recherches qu’il a eu à effectuer. Il ne va pas garder ces informations éternellement car elles peuvent changer et devenir périmées, c’est là qu’intervient la durée de vie (TTL : Time To Live) qui est défini globalement au niveau du nom de domaine, ou pour chaque enregistrement.
Si la réponse à la question « quelle est l’adresse de sooiz.fr ? » est dans le cache, et n’est pas périmée, alors le DNS va répondre.
Sinon, il va demander à ses redirecteurs DNS la réponse à sa question, un redirecteur est un autre serveur DNS.
Les redirecteurs DNS
Par défaut, les redirecteurs DNS sont fournis par votre fournisseur d’accès, mais il est possible de personnaliser sur sa carte réseau, sur sa box, son firewall etc… les redirecteurs. Certains sont disponible en ligne gratuitement : ceux de Google, ceux de OpenDNS, ou bien ceux de dns0.eu .
Attention à bien vérifier les conditions d’utilisation des DNS pour votre confidentialité, en effet, lorsque votre poste pose la question « quelle est l’adresse IP de sooiz.fr ? » à un serveur DNS, ce dernier pourrait enregistrer votre requête pour connaitre l’historique des adresses auxquelles vous avez tenté d’accéder.
Les redirecteurs ont toutes les informations ?
Non, eux non plus de gardent pas toutes les informations concernant les noms de domaine.
Ils vont s’appuyer sur ce que l’on appelle les « serveurs DNS racines » : ces derniers vont recevoir la question « quelle est l’adresse du serveur de domaine de sooiz.fr ? ».
Ils vont donc rechercher les serveurs d’enregistrement des domaines « .fr », contacter les serveurs DNS de l’AFNIC (vu plus haut), pour savoir quel serveur interroger pour obtenir la réponse souhaitée.
Un peu avant, il y a le fichier hosts
Le périphérique que vous utilisez pour accéder à Internet, votre poste, smartphone tablette etc… dispose d’un fichier particulier nommé « hosts ».
Ce fichier va permettre de détourner le DNS, en y inscrivant des enregistrements type tel nom correspond à telle IP.
Si on reprend l’analogie de l’annuaire, le fichier hosts est l’équivalent du répertoire téléphonique que l’on peut conserver pour noter les numéros de nos proches.
Avant d’interroger les serveurs DNS, votre périphérique va commencer par vérifier si le nom recherché est présent dans le fichier hosts.
En pratique, le fichier hosts n’est pas utile pour les utilisateurs, il existe à des fins techniques, ou parfois de test pour simuler un nom de domaine qui n’est pas présent sur les serveurs DNS. Cependant son utilisation pourrait être détournée, hackée, voir « les risques liés au DNS ».
En résumé
Les noms de domaine publics sont souscrits auprès de bureaux d’enregistrements, qui les déclarent chez les TLD Managers, tels que l’AFNIC, qui gèrent des serveurs dits « ccTLD » pour « Country Code Top-Level Domain ».
Les domaines en .com , .org et .net etc… sont eux gérés par les serveurs DNS gTLDs (Generic Top-Level Domains).
Des domaines locaux peuvent être gérés en autonomie sur des serveurs locaux tels que des .priv, .local, .lan.
Chaque serveur DNS dispose d’un cache, qui est mis à jour pour chaque enregistrement en fonction de son TTL. Ce mécanisme permet d’améliorer le temps de réponse et diminuer les ressources nécessaires lors d’une requête.
Lorsque vous saisissez une adresse internet dans un navigateur :
- le navigateur vérifie son cache,
- il envoie la demande au système d’exploitation,
- qui vérifie le fichier hosts,
- puis envoie la requête au serveur DNS paramétré pour votre réseau,
- qui envoie la requête à son redirecteur,
- qui demande aux TLDs (Top-Level Domains / DNS racines) quel serveur gère l’extension en question,
- qui envoie la requête aux ccTLDs « Country Code Top-Level Domains » pour savoir quel serveur gère le nom de domaine,
- et la question est posée au serveur qui héberge la zone technique du domaine,
- Enfin, la réponse est retournée à jusqu’au navigateur, qui va pouvoir faire sa requête web à destination d’une adresse IP sur Internet.
Quels sont les principaux risques associés aux DNS ?
Les DNS sont un des fondements du réseau Internet, ils permettent de rendre accessible de manière ergonomique le réseau à des utilisateurs, et une majorité des actions que vous faites sur Internet réalisent au préalable une requête DNS. Il est donc primordial de réaliser quelques contrôles sur le fonctionnement de votre DNS en entreprise en particulier, mais également à titre personnel.
Pour la conformité RGPD, et pour la confidentialité, il est important de vérifier les données de journalisation stockées par vos fournisseurs de redirecteurs DNS, et l’usage fait de ces données. En effet, en conservant coté redirecteur DNS, toutes vos requêtes (questions), il est facile de reconstituer un historique des domaines que vous avez visité.
La modification d’un fichier hosts sur un périphérique, ou l’utilisation d’un serveur DNS corrompu, pourrait permettre de rediriger un utilisateur vers un faux site, type phishing par exemple, sans que l’utilisateur ne s’en rende compte. Cela pourrait être le cas pour un poste laissé sans surveillance, mais aussi par un virus déjà déployé sur votre réseau.
Il convient donc de limiter les droits d’accès aux fichiers hosts (par défaut protégés par le système d’exploitation), et idéalement de surveiller les modifications de ce fichier. Un anti-virus avancé (EPP pour EndPoint Protection) peut faire cela pour vous.
Les serveurs DNS sont quant à eux régulièrement la cible d’attaques, par exemple le « cache Poisonning and Spoofing » qui consiste à remplacer les enregistrements originaux des domaines par des adresses malveillantes. Mais les attaques réussies les plus fréquentes sur ces serveurs sont des attaques type DDOS, qui ralentissent, voir rendent indisponible, des serveurs DNS, comme en 2016 sur les serveurs de Dyn qui hébergeaient les domaines de Netflix, Spotify, Twitter etc…
La sécurité des serveurs racines, distribués sur tout le globe, est bien entendu également un point important pour le bon fonctionnement d’Internet, vous trouverez sur cette page Wikipédia plus de détails quant à ces serveurs et un historiques des attaques d’envergure qu’ils ont pu subir.