Usurpation DNS et empoisonnement de cache : comment ça marche et ce qui les arrête
L'usurpation DNS ne nécessite pas d'intercepter du trafic réel. Elle nécessite de deviner juste et d'arriver le premier — le cache d'un résolveur accepte la réponse qui arrive avant la vraie.
Ce qu'est l'usurpation DNS
L'usurpation DNS falsifie une réponse DNS pour qu'un résolveur mette en cache et serve une adresse IP choisie par l'attaquant plutôt que la vraie. Une fois une réponse falsifiée mise en cache, tout client utilisant ce résolveur la reçoit jusqu'à l'expiration de la TTL — sans action supplémentaire de l'attaquant.
Le problème d'être hors chemin
Un attaquant qui ne se trouve pas sur le chemin réseau entre le résolveur et le vrai serveur faisant autorité ne peut pas simplement lire ou modifier le trafic authentique. La réponse falsifiée doit plutôt être devinée et livrée avant que la vraie réponse faisant autorité n'arrive — une course, pas une interception.
Ce qu'il faut deviner
Un résolveur identifie une réponse valide par un ID de transaction de 16 bits et le port source UDP depuis lequel la requête a été envoyée. L'attaque Kaminsky de 2008 a montré comment transformer un coup unique peu probable en attaque praticable : tromper un résolveur pour qu'il recherche de nombreux sous-domaines différents et inexistants du même domaine donne à un attaquant de nombreuses courses indépendantes pour gagner le même emplacement de cache, puisque toute falsification réussie empoisonne les enregistrements du domaine parent.
L'impact d'un empoisonnement réussi
Une fois empoisonné, le résolveur redirige silencieusement chaque client qui l'interroge — vers un site de phishing, un point d'injection publicitaire, ce que l'attaquant a choisi — sans toucher un seul des systèmes des victimes, aussi longtemps que dure la TTL de l'enregistrement falsifié.
Pourquoi DNSSEC arrête cela
Un résolveur qui valide vérifie une chaîne de signatures cryptographiques jusqu'à une racine de confiance avant d'accepter une réponse. Un attaquant qui gagne la course aux suppositions ne possède toujours pas la clé privée de signature de la zone, donc la réponse falsifiée ne peut pas produire de signature valide — deviner correctement l'ID de transaction et le port devient sans importance dès lors que c'est la validation elle-même qui vérifie l'authenticité.
Vérifier le DNSSEC d'un domaine
Voyez la théorie en pratique — lancez Vérification DNSSEC pour votre propre domaine.