Une équipe de chercheurs de l’UC Irvine et de l’Université de Tsinghua a développé une nouvelle attaque puissante d’empoisonnement du cache nommée « MaginotDNS », qui cible les résolveurs de DNS conditionnel (CDNS) et peut compromettre des domaines de premier niveau TLD entiers.
L’attaque est rendue possible grâce à des incohérences dans la mise en œuvre des contrôles de sécurité dans différents logiciels DNS et modes de serveur (résolveurs et redirecteurs récursifs), laissant environ un tiers de tous les serveurs CDNS vulnérables.
Les chercheurs ont présenté l’attaque et l’article plus tôt cette semaine à Black Hat 2023, signalant que les problèmes identifiés ont maintenant été résolus au niveau logiciel.
Contexte d’empoisonnement du cache DNS
DNS (Domain Name System) est un système de nommage hiérarchique et distribué pour les ressources et les réseaux Internet, aidant à résoudre les noms de domaine lisibles par l’homme en adresses IP numériques afin qu’une connexion réseau puisse être établie.
Le processus de résolution DNS utilise UDP, TCP et DNSSEC pour effectuer des requêtes et recevoir des réponses. Il peut être itératif et récursif, impliquant plusieurs étapes et échanges avec les serveurs racine, les serveurs TLD, les serveurs faisant autorité, la mise en cache des enregistrements en cours de route, etc.
Le concept d’empoisonnement du cache DNS consiste à injecter des réponses falsifiées dans le cache du résolveur DNS, obligeant le serveur à diriger les utilisateurs qui entrent dans un domaine vers des adresses IP incorrectes, les conduisant potentiellement à des sites Web malveillants à leur insu.
De nombreuses attaques de ce type ont été démontrées dans le passé, comme, par exemple, l’attaque de Kashpureff en 1997, qui a exploité un manque de vérification des données (règles de bailliage), et l’attaque de Kaminsky en 2008 qui a profité de l’absence d’une source système de randomisation des ports.
Ces attaques ont été atténuées en ajoutant des défenses dans la mise en œuvre des résolveurs, ce qui rend les attaques hors chemin difficiles.
Cependant, l’attaque ‘MaginotDNS’ peut surmonter ces défenses en attaquant le mode de transfert de CDNS depuis le chemin ou hors chemin.
L’attaque MaginotDNS
Les résolveurs CDNS prennent en charge les modes de requête récursifs et de transfert, utilisés par les FAI et l’entreprise pour réduire les coûts et améliorer le contrôle d’accès.
Les chercheurs ont constaté que les contrôles de bailliage sont correctement appliqués en mode récursif ; cependant, le transitaire est vulnérable.
Étant donné que les deux partagent le même cache DNS global, une attaque sur le mode de transfert peut ouvrir la voie à une violation du mode récursif, brisant essentiellement la limite de protection du cache DNS.
Les chercheurs ont identifié des incohérences dans la vérification du bailliage des principaux logiciels DNS, notamment BIND9 (CVE-2021-25220), Knot Resolver (CVE-2022-32983), Microsoft DNS et Technitium (CVE-2021-43105).
Dans certains cas, ils ont noté des configurations qui traitaient tous les enregistrements comme s’ils se trouvaient sous le domaine racine, une configuration très vulnérable.
Les exemples présentés par les chercheurs lors de leur présentation BlackHat incluent à la fois des attaques sur le chemin et hors du chemin, ces dernières étant les plus compliquées mais aussi beaucoup plus précieuses pour les acteurs de la menace.
Pour ces attaques, l’auteur de la menace doit prédire le port source et l’ID de transaction utilisés par les serveurs DNS récursifs de la cible lors de la génération d’une requête, puis utiliser un serveur DNS malveillant pour envoyer des réponses falsifiées avec les paramètres corrects.
Déduire le port source et deviner les ID de transaction peuvent être effectués par force brute ou en utilisant SADDNS (DNS attaqué par canal latéral).
Pour BIND9, les deux paramètres peuvent être récupérés avec succès après 3 600 cycles de requête, tandis que pour Microsoft DNS, cela tombe à 720 cycles.
Pour augmenter les chances de succès, l’attaquant doit contrôler le temps de réponse des réponses DNS malveillantes pour s’assurer que leur réponse falsifiée atteint le serveur de la victime avant la réponse légitime.
Les chercheurs ont partagé la vidéo suivante démontrant l’attaque MaginotDNS sur Microsoft DNS.
Recherche de CDNS vulnérables
Les chercheurs ont scanné Internet et trouvé 1 200 000 résolveurs DNS, dont 154 955 sont des serveurs CDNS.
Ensuite, en utilisant des empreintes logicielles pour identifier les versions vulnérables, ils ont trouvé 54 949 serveurs CDNS vulnérables, qui sont tous sensibles aux attaques sur le chemin, et 88,3 % sont touchés par les attaques hors chemin.
Tous les éditeurs de logiciels concernés mentionnés ci-dessus ont confirmé et corrigé les failles, et Microsoft a accordé une prime aux chercheurs pour leur rapport.
Cependant, pour que les problèmes soient entièrement atténués, les administrateurs CDNS doivent appliquer les correctifs et suivre les directives de configuration correctes fournies par les fournisseurs.