Tester la faille DNS CP en ligne de commande

Date: 29/07/2008 | Catégories: Open-source,Reseau | Tags: ,

Pour vérifier que vos serveurs DNS ne sont pas touchés par la faille DNS Caching Poisoning (DNS CP), un simple test via la ligne de commande de votre système est possible. Nous allons dans ce billet voir comment réaliser et interpréter ce test puis détailler les actions à prendre au cas ou ce test serait positif.

Faire le test

On va utiliser l'utilitaire dig, fourni en standard dans tout OS qui se respecte.On lance la commande suivante (remplacer dns par l'adresse IP de votre serveur DNS):

dig +short @dns porttest.dns-oarc.net TXT

Si le résultat est:

z.y.x.w.v.u.t.s.r.q.p.o.n.m.l.k.j.i.h.g.f.e.d.c.b.a.pt.dns-oarc.net.
"dns is GOOD: 26 queries in 4.4 seconds from 26 ports with std dev 20195.32"

Alors vous pouvez pavoiser, pas la peine d'aller plus loin, votre DNS est protégé contre ce type d'attaque.

Par contre si le résultat est le suivant:

porttest.y.x.w.v.u.t.s.r.q.p.o.n.m.l.k.j.i.h.g.f.e.d.c.b.a.pt.dns-oarc.net.
"dns is POOR: 26 queries in 4.3 seconds from 1 ports with std dev 0"

Il faut vite penser à mettre à jour votre DNS en suivant les conseils du paragraphe suivant.

Mettre à jour son serveur DNS

Sous FreeBSD

On commence par mettre à jour les ports en suivant cette procédure. Puis on tape les commandes:

cd /usr/ports/dns/bind9
make deinstall
make reinstall

Sous Linux Ubuntu

On passe par le gestionnaire de package apt-get:

sudo apt-get update
sudo apt-get upgrade

Sous Linux Fedora

On passe par le gestionnaire de package yum:

su - root
yum update

Configurer son serveur DNS

Si vous avez une architecture DNS avec un primaire et un secondaire (par exemple si vous avez suivi ce tutorial). Il peut être bon d'avoir une configuration différente entre le primaire (celui qui est le plus exposé aux attaques venant d'Internet et le secondaire qui sera uniquement utilisé par les clients de votre réseau local).

Source: SecureWorks

Sur le serveur primaire ("Authoritative nameserver") il est conseillé de désactivé la résolution des requêtes par récursion (option allow-recursion) et d'activer le changement dynamique du port réseau de réponse du serveur DNS (option dnssec-enable).

Sur ce premier serveur, la section options di fichier named.conf ressemblera donc à:

options {
...
allow-recursion { none; };
dnssec-enable yes;
}

Selon la criticité de votre réseau vous pouvez également appliquer cette configuration sur le serveur secondaire ("caching nameserver").

Il ne reste plus qu'a relancer le serveur DNS et à recommencer le test du premier chapitre.

  • « Alors vous pouvez pavoiser, pas la peine d’aller plus loin, votre DNS est protégé contre ce type d’attaque. »

    Euh, faut pas pousser mémé : on ne peut pas se protéger contre cette faille, sauf en utilisant DNSSec. On augmente la difficulté pour l’exploiter, oui.

  • Bonsoir,

    Le scoring du test à été modifier :

    Vous pouvez soit un GREAT, soit un GOOD, soit un POOR

    ( cf : https://www.dns-oarc.net/oarc/services/porttest )

    Merci pour ton article qui ma permis de tester mon serveur qui obtient un GREAT et mon modem-routeur qui obtient un GOOD.

  • fken

    « On va utiliser l’utilitaire dig, fourni en standard dans tout OS qui se respecte.On lance la commande suivante (remplacer dns par l’adresse IP de votre serveur DNS):

    et si jamais pour raison ou une autre ce n’est pas installé, vous pourrez lr trouver en installant le paquet :
    bind-tools