Empoisonnement du cache DNS
Qu'est-ce que Empoisonnement du cache DNS ?
Empoisonnement du cache DNSAttaque qui insère de faux enregistrements dans le cache d'un résolveur DNS afin que les requêtes ultérieures renvoient des adresses choisies par l'attaquant jusqu'à l'expiration du TTL.
L'empoisonnement du cache DNS vise les résolveurs récursifs en les incitant à accepter une réponse falsifiée qu'ils vont ensuite stocker et servir. Pour être crédible, une réponse usurpée doit correspondre au nom de la requête, arriver sur le bon port UDP et porter le bon identifiant de transaction (TXID) sur 16 bits — les attaques classiques se réduisent donc à deviner ou à devancer ces champs avant l'arrivée de la véritable réponse faisant autorité.
La divulgation de Dan Kaminsky en 2008 (CVE-2008-1447) a rendu la chose praticable : en forçant des requêtes vers des sous-domaines aléatoires et en inondant le résolveur de tentatives sur le TXID de 16 bits, un attaquant pouvait réessayer indéfiniment sans attendre la mise en cache d'une réponse négative, empoisonnant ainsi l'enregistrement NS du domaine parent. Le correctif d'urgence fut la randomisation du port source, qui a fait passer l'espace de recherche de 16 à environ 32 bits. En 2020, des chercheurs de l'UC Riverside et de Tsinghua ont présenté SAD DNS (CVE-2020-25705) : un canal auxiliaire dans le compteur global de limitation de débit ICMP de Linux, qui permet à un attaquant hors chemin de déduire le port source éphémère ouvert, réduisant à néant ce gain. Linux l'a corrigé en randomisant le compteur de limitation de débit ICMP (noyau 5.10+).
flowchart TD
A[L'attaquant déclenche une requête pour random.bank.com] --> R[Résolveur récursif]
R -->|"requête UDP, TXID + port source aléatoires"| NS[Vrai NS faisant autorité]
A -.->|"inonde de fausses réponses : devine TXID + port"| R
R --> M{La fausse réponse correspond-elle<br/>au nom + port + TXID<br/>avant la vraie réponse ?}
M -->|Oui| P[Enregistrement empoisonné mis en cache pour tout le TTL]
M -->|Non| L[Réponse légitime mise en cache]
P --> V[Tous les clients du résolveur redirigés vers l'IP de l'attaquant]Défenses : DNSSEC (RFC 4033–4035) signe cryptographiquement les enregistrements, si bien que les réponses falsifiées échouent à la validation ; la randomisation de la casse 0x20 et la minimisation du nom de requête ajoutent de l'entropie ; et les transports chiffrés (DoH/DoT) suppriment entièrement la surface UDP en clair. Des TTL courts et prudents limitent le rayon d'impact lorsqu'un empoisonnement survient malgré tout.
● Exemples
- 01
L'attaque Kaminsky de 2008 (CVE-2008-1447), qui exploitait des failles de prédictibilité des ports dans les principaux résolveurs.
- 02
SAD DNS (CVE-2020-25705), qui a fait renaître l'empoisonnement via un canal auxiliaire sur la limite de débit ICMP.
● Questions fréquentes
Qu'est-ce que Empoisonnement du cache DNS ?
Attaque qui insère de faux enregistrements dans le cache d'un résolveur DNS afin que les requêtes ultérieures renvoient des adresses choisies par l'attaquant jusqu'à l'expiration du TTL. Cette notion relève de la catégorie Attaques et menaces en cybersécurité.
Que signifie Empoisonnement du cache DNS ?
Attaque qui insère de faux enregistrements dans le cache d'un résolveur DNS afin que les requêtes ultérieures renvoient des adresses choisies par l'attaquant jusqu'à l'expiration du TTL.
Comment se défendre contre Empoisonnement du cache DNS ?
Les défenses contre Empoisonnement du cache DNS combinent habituellement des contrôles techniques et des pratiques opérationnelles, comme détaillé dans la définition ci-dessus.
Quels sont les autres noms de Empoisonnement du cache DNS ?
Noms alternatifs courants : Empoisonnement de cache, Usurpation DNS (cache).