Cyber Security Academy · Leçon

Usurpation de DNS et empoisonnement du cache

Falsifier les réponses DNS.

Leçon 2 sur 413 étapes

Usurpation de DNS et empoisonnement du cache est une leçon Cyber Security Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Cyber Security Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Cyber Security Academy comprend 4 leçons au total.

Falsification des réponses DNS

L’usurpation DNS consiste à fournir une réponse DNS falsifiée afin que la victime résolve un nom vers une adresse IP contrôlée par l’attaquant. L’empoisonnement du cache est une forme particulière dans laquelle la réponse falsifiée est acceptée et stockée par un résolveur récursif, infectant chaque client qui l’utilise.

Le but est généralement de rediriger le trafic : envoyer les utilisateurs vers des pages d’hameçonnage, des logiciels malveillants à télécharger ou des proxys de type homme du milieu.

Condition de concurrence

Lorsqu’un résolveur envoie une requête, un attaquant tente d’injecter une réponse falsifiée avant que le serveur faisant autorité ne réponde. Si la falsification arrive la première et correspond aux champs attendus, elle remporte la course et est mise en cache.

C’est pourquoi la latence, l’ordre des paquets et le port sortant du résolveur sont si importants, aussi bien pour l’attaque que pour la défense.

Champs que l’attaquant doit faire correspondre

Pour qu’une réponse UDP falsifiée soit acceptée, l’attaquant doit faire correspondre :

  • L’adresse IP source (le serveur faisant autorité).
  • Le port de destination (le port sortant du résolveur).
  • Le nom et le type de la requête.
  • L’ID de transaction (TXID) de 16 bits.

Sans protections, le seul véritable secret est le TXID, soit environ une chance sur 65 536 par paquet.

Attaque de Kaminsky

La révélation faite par Dan Kaminsky en 2008 a montré que l’empoisonnement était bien plus facile qu’on ne le pensait. Plutôt qu’une seule course par enregistrement, l’attaquant interroge de nombreux sous-domaines inexistants (aaa.bank.com, aab.bank.com...) et inonde la cible de réponses falsifiées contenant un enregistrement NS ou un enregistrement de liaison malveillant pour tout le domaine.

Chaque tentative constitue une nouvelle course, sans coût de mise en cache en cas d’absence, ce qui permet à l’attaquant de multiplier les tentatives jusqu’à ce qu’une supposition réussisse et empoisonne toute la zone.

for sub in $(seq 1 10000); do
  dig $sub.bank.com @victim-resolver &
done
# Attacker floods forged NS answers in parallel

Attribution aléatoire du port source

La principale mesure d’atténuation après l’attaque de Kaminsky a été la randomisation du port source. Au lieu d’utiliser un port sortant fixe, le résolveur choisit un port éphémère aléatoire pour chaque requête.

L’attaquant doit alors deviner à la fois le TXID (16 bits) et le port source (environ 16 bits), ce qui élargit l’espace de recherche à environ 2^32 possibilités. Cela rend l’empoisonnement aveugle hors chemin irréalisable en pratique, même s’il reste possible avec des implémentations dont l’entropie est faible.

Attaquants sur le chemin ou hors chemin

Un attaquant hors chemin ne peut pas voir la requête et doit deviner à l’aveugle le TXID et le port. Un attaquant sur le chemin (Wi-Fi malveillant, routeur compromis, ISP) peut lire directement la requête et fabriquer facilement une réponse correspondante.

L’usurpation sur le chemin neutralise entièrement la randomisation du port. C’est pourquoi un transport chiffré et la validation DNSSEC sont nécessaires pour obtenir une assurance forte, et pas seulement une meilleure entropie.

DHCP malveillant et détournement du résolveur

Les attaquants ne falsifient pas toujours les paquets. Un serveur DHCP malveillant peut fournir aux clients l’adresse d’un résolveur DNS malveillant, de sorte que chaque résolution soit traitée par l’attaquant. Un logiciel malveillant peut également réécrire /etc/resolv.conf ou les paramètres du routeur.

Des menaces historiques comme le logiciel malveillant DNSChanger ont redirigé discrètement le DNS des victimes vers des serveurs frauduleux pendant des années. Vérifiez quels résolveurs votre parc utilise réellement.

cat /etc/resolv.conf
# nameserver should match your trusted internal resolver

Vérification du périmètre d’autorité

Les résolveurs appliquent des règles de périmètre d’autorité : une réponse ne peut fournir des enregistrements que pour des noms appartenant à la zone pour laquelle elle fait autorité. Une réponse pour bank.com ne peut pas y dissimuler un enregistrement pour unrelated.com.

Cela limite les injections de type Kaminsky au domaine interrogé et empêche une seule réponse empoisonnée de contaminer des zones sans rapport. Vérifiez que votre résolveur applique un filtrage strict du périmètre d’autorité.

Détecter un empoisonnement

Signes d’un empoisonnement en cours ou réussi :

  • Une hausse soudaine des requêtes pour des sous-domaines aléatoires et inexistants.
  • Des réponses DNS en double ou dans le désordre pour le même TXID.
  • Des adresses IP obtenues par résolution qui pointent soudainement vers des ASN ou des zones géographiques inattendus.
  • Une discordance entre les réponses du résolveur et une résolution fiable effectuée hors bande.

Défenses en couches

Aucun contrôle unique ne suffit. Combinez :

  • Randomisation du port source et du TXID pour augmenter le coût d’une attaque hors chemin.
  • Validation DNSSEC afin que les réponses falsifiées échouent aux vérifications de signature.
  • DoT/DoH pour empêcher les attaquants sur le chemin de voir les requêtes et de les modifier.
  • Encodage 0x20 (casse aléatoire dans les noms de requête) pour ajouter de l’entropie.
  • Surveillance des inondations de NXDOMAIN et des anomalies de réponse.

Réalité opérationnelle

En pratique, l’empoisonnement aveugle du cache par un attaquant hors chemin est aujourd’hui rare sur les résolveurs à jour, mais il réapparaît par l’intermédiaire de canaux auxiliaires, par exemple la fragmentation UDP et les attaques d’inférence de port fondées sur ICMP, telles que SAD DNS. Maintenez vos résolveurs à jour et privilégiez ceux qui valident les réponses et chiffrent le transport.

N’oubliez pas : la compromission DNS ayant souvent le plus d’impact n’est pas une course d’empoisonnement ingénieuse, mais le vol d’un compte auprès du bureau d’enregistrement. Protégez les deux extrémités.

Vérification rapide

Vérifiez votre compréhension de la technique de Kaminsky.

Récapitulatif

L'usurpation DNS falsifie les réponses ; l'empoisonnement du cache les fait persister dans un résolveur. L'acceptation dépend de la correspondance entre l'adresse IP source, le port, le nom de requête et le TXID. La randomisation du port source et les vérifications du périmètre d'autorité ont renforcé la protection contre les attaquants hors chemin, mais les attaquants sur le chemin et les canaux auxiliaires restent une menace.

La défense en profondeur (entropie, validation DNSSEC, transport chiffré et surveillance) est essentielle. Nous allons maintenant voir comment les attaquants détournent le DNS pour déplacer des données : tunnelisation et exfiltration.

Gratuit pour commencer

Apprends Cyber Security Academy avec un tuteur IA — gratuit

Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.

Cours
76
Leçons
303

Questions Fréquemment Posées

La leçon « Usurpation de DNS et empoisonnement du cache » est-elle gratuite ?

Oui — le texte complet de « Usurpation de DNS et empoisonnement du cache » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Cyber Security Academy, passe à CoddyKit PRO. Le cours Cyber Security Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Usurpation de DNS et empoisonnement du cache » ?

Falsifier les réponses DNS. Tu pratiques Cyber Security Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Cyber Security Academy ?

Aucune expérience préalable n'est requise. Cyber Security Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.

Combien de temps prend la leçon « Usurpation de DNS et empoisonnement du cache » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Cyber Security Academy ?

Oui. Chaque leçon Cyber Security Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Fonctionnement et risques de DNS
  2. Usurpation de DNS et empoisonnement du cache
  3. Tunneling et exfiltration par DNS
  4. DNSSEC et filtrage DNS
← Retour à Cyber Security Academy