Le système de noms de domaine (DNS) est essentiellement un annuaire d’adresses pour Internet. Votre navigateur utilise le DNS pour trouver l’adresse IP d’un service donné. Par exemple, lorsque vous saisissez esecurityplanet.com, le navigateur interroge un service DNS pour accéder aux serveurs correspondants, mais le DNS est également utilisé lorsque vous envoyez un e-mail.
C’est pratique pour les utilisateurs, qui n’ont pas à mémoriser l’adresse IP de chaque service, mais cela n’est pas sans risques ni vulnérabilités de sécurité. Les attaquants vont probablement énumérer les DNS pour tenter des attaques courantes.
Il s’agit souvent de la première étape pour mener d’autres actions, comme des vols de données, des défigurations de sites ou même des attaques par rançongiciel qui ont causé de graves dommages à de nombreuses organisations ces dernières années. De plus, ces attaques sont très prisées des hackers, car elles sont généralement difficiles à détecter par les outils de sécurité et permettent de cibler des milliers de victimes en une seule opération.
À lire également : Comment empêcher les attaques DNS
DNS : cinq concepts essentiels
Pour comprendre les attaques DNS et leurs conséquences, vous devez d’abord comprendre ce qu’est le DNS et comment il fonctionne :
- Chaque appareil connecté possède une adresse IP unique qui permet aux autres machines de le trouver et de l’identifier.
- Le DNS évite aux utilisateurs de devoir mémoriser les adresses à peine lisibles par un humain de chaque appareil et service.
- Chaque fois que vous consultez une page web, plusieurs serveurs DNS sont sollicités avant que vous puissiez réellement voir son contenu.
- L’opération qui consiste à traduire les noms de domaine en adresses IP s’appelle la résolution DNS et est prise en charge par les résolveurs DNS.
- Le cache DNS, également appelé cache du résolveur DNS, est une base de données contenant les résolutions DNS récentes. Comme il existe plusieurs caches à différents niveaux, il faut souvent attendre la propagation du DNS lors de la création ou de la mise à jour d’entrées DNS.
Les attaques DNS courantes expliquées
Cette liste n’est pas exhaustive, mais les techniques suivantes sont les attaques les plus couramment utilisées par les acteurs malveillants pour compromettre le DNS.
Usurpation ou empoisonnement DNS
Le terme usurpation signifie que l’attaquant tente de se faire passer pour un service légitime, par exemple en falsifiant l’adresse IP associée à un domaine.
Bien que l’usurpation DNS soit une méthode assez répandue, il s’agit d’un terme générique qui recouvre différentes situations. L’empoisonnement du cache DNS est probablement plus exact pour décrire le scénario le plus courant : dans ce cas, l’attaquant parvient à remplir le cache DNS avec de fausses informations, de sorte que la requête DNS redirige les utilisateurs vers une adresse IP malveillante.
Techniquement, les résolveurs DNS ne peuvent pas vérifier les données présentes dans le cache. C’est pourquoi les fausses informations y restent jusqu’à leur expiration, également appelée TTL ou durée de vie. Même si cette attaque est par définition temporaire, elle suffit souvent à injecter un logiciel malveillant avec succès.
La plupart du temps, les hackers redirigent les utilisateurs vers une copie du site légitime afin de dérober leurs identifiants ou leurs données bancaires. Bien qu’il existe certains indices permettant aux utilisateurs de repérer les sites contrefaits, il est parfois très difficile de les détecter, notamment lorsqu’il s’agit d’un clone exact de l’application originale.
À lire également : Une nouvelle menace d’usurpation DNS met des millions d’appareils en danger
Tunneling DNS
Cette attaque repose sur une architecture client-serveur et consiste à utiliser d’autres protocoles, comme TCP ou SSH, pour faire transiter un logiciel malveillant dans des requêtes DNS. L’attaquant enregistre généralement un nom de domaine et le fait pointer vers son serveur qui héberge le logiciel malveillant.
Les hackers utilisent cette technique depuis longtemps, car elle est particulièrement efficace pour connecter un serveur de commande et de contrôle à une machine infectée. Aucun pare-feu ne peut bloquer ces requêtes DNS.
Détournement DNS
Dans ce cas, l’attaquant redirige toutes les requêtes vers un autre serveur de noms de domaine, par exemple après avoir obtenu un accès non autorisé pour modifier les enregistrements DNS. Contrairement aux attaques par empoisonnement DNS, le cache DNS n’est pas impliqué.
Il existe différentes approches et techniques de détournement DNS. Par exemple, le hacker peut modifier les paramètres DNS locaux ou compromettre le routeur.
Amplification DNS
L’objectif est d’amplifier le trafic de serveurs DNS vulnérables afin de dissimuler l’origine exacte d’une attaque. L’attaquant falsifie la destination pour qu’elle corresponde aux adresses de la victime, ce qui peut mettre hors service toute une infrastructure avec un minimum de ressources.
Inondation DNS
Les attaques par inondation exploitent des appareils disposant d’une bande passante élevée pour bombarder les serveurs DNS. Les serveurs ciblés ne peuvent pas gérer le volume gigantesque de requêtes. Ces attaques sont souvent associées à des botnets surpuissants (par exemple Mirai), capables de mettre hors service même les plus grandes organisations.
Chiffrement du DNS : DoH contre DoT
Pour lutter contre les attaques DNS, de grandes entreprises comme Google ont promu le chiffrement du DNS via TLS (DoT) ou HTTPS (DoH). Cela s’explique par le fait que la plupart des requêtes DNS sont restées non chiffrées pendant des années, ce qui rend le DNS vulnérable aux attaques MITM (attaques de l’homme du milieu). Par exemple, toute personne qui parvient à accéder à un réseau Wi-Fi ou à un réseau d’entreprise peut manipuler les requêtes et les réponses DNS.
À l’aide d’un logiciel gratuit comme Wireshark, il est relativement facile de capturer des données, notamment des opérations sensibles et l’ensemble du trafic Internet.
Le principal problème réside dans la confiance aveugle entre les appareils et les résolveurs DNS. Heureusement, le chiffrement peut renforcer l’accès aux messages DNS. Même s’il ne s’agit pas exactement du même concept, c’est un peu comme passer de HTTP à HTTPS pour un site web.
Le chiffrement du DNS via TLS a été introduit pour encapsuler les messages dans des canaux sécurisés. Les messages de négociation TLS sont échangés entre le client et le serveur avant l’envoi des messages DNS chiffrés.
Il repose sur un nouveau port (par exemple le port 53) qui peut être bloqué par certains pare-feu et entrer en conflit avec les architectures existantes, ce qui pourrait finalement contraindre les utilisateurs à revenir aux requêtes DNS non chiffrées. C’est pourquoi DoH a été créé : pour résoudre le problème et permettre aux applications web d’utiliser les API existantes.
DoH permet d’exécuter des requêtes DNS via le protocole HTTPS. Sans autorisation appropriée, il est théoriquement impossible d’accéder aux requêtes et aux réponses.
Protéger le DNS avec DNSCrypt
DNSCrypt est un protocole qui chiffre, authentifie et, en option, anonymise les communications entre un client DNS et un résolveur DNS.
Autrement dit, DNSCrypt chiffre l’intégralité du trafic DNS. La cryptographie utilisée est appelée cryptographie à courbe elliptique.
Elle permet de filtrer le trafic qui transite via UDP et TCP, par exemple dans le navigateur, ce qui constitue une mesure de sécurité efficace dans les réseaux d’entreprise. Elle peut empêcher l’usurpation DNS grâce à l’authentification.
DNSCrypt peut être installé comme client sur la plupart des systèmes d’exploitation, notamment Windows, macOS et Linux, ainsi que sur Android, iOS et les firmwares de routeurs libres. Le client le plus populaire est dnscrypt-proxy.
- Avantages
- Permet d’examiner le trafic généré depuis le réseau
- Peut bloquer les publicités, les logiciels malveillants et le spam
- Utilise le port 443
- Peut réduire la latence (par exemple dans les réseaux IPv4 uniquement)
- Peut être déployé sur des serveurs cloud
- Inconvénients
- La sécurité prime sur la disponibilité, ce qui est généralement une bonne chose, mais peut constituer un inconvénient
- Peut devenir un point de défaillance unique si les autres couches ne sont pas sécurisées
À lire également : Comment sécuriser le DNS avec DNSCrypt et DNSSEC
Comment sécuriser le DNS avec DNSSEC
L’extension de sécurité du DNS (DNSSEC) utilise des signatures numériques fondées sur des clés publiques pour renforcer le DNS. Au lieu de chiffrer les requêtes et les réponses DNS, elle sécurise les données DNS au moyen de paires de clés publiques et privées.
La clé privée sert à signer les données DNS dans une zone donnée et à générer une signature numérique. La clé publique est publiée dans la zone. Tout résolveur qui recherche des données dans la zone peut récupérer la clé publique afin de valider l’authenticité des données DNS avant de les renvoyer à l’utilisateur.
Si la signature est incorrecte ou absente, le résolveur considère qu’il s’agit d’une attaque et annule le transfert de données.
En outre, DNSSEC ajoute généralement de nouveaux enregistrements DNS, comme RRSIG (signature cryptographique) et DNSKEY.
- Avantages
- Efficace pour limiter l’empoisonnement DNS
- Facile à déployer et à activer
- Large prise en charge par le secteur
- Inconvénients
- Utilise la validation plutôt que le chiffrement
Pour aller plus loin : tests d’intrusion DNS
Les tests d’intrusion DNS réguliers constituent probablement l’une des meilleures mesures de sécurité que vous puissiez prendre pour sécuriser le DNS de votre organisation, car ils simulent des attaques en conditions réelles.
Les pentesters commenceront probablement par énumérer les services avec Nmap, puis pourront utiliser dig pour explorer votre DNS. Par exemple, vous pouvez effectuer une recherche faisant autorité sur mozilla.org avec la commande suivante dans Kali Linux :
dig authority mozilla.org
L’objectif ultime des commandes dig est de récupérer des informations telles que la liste des serveurs DNS faisant autorité, des serveurs de messagerie ou des serveurs de noms. En outre, certains modules de Metasploit permettent d’énumérer le DNS, comme auxiliary/gather/enum_dns.
À lire ensuite : Les meilleurs outils de test d’intrusion





