Sécurité DNS - bahuwart/Projet-admin-2 GitHub Wiki

Analyse sécurité DNS

Quels sont les biens à protéger ?

Dans le cadre du projet, nous disposons de deux éléments liés au DNS qui nécessitent une protection.

  • Tout d'abord, nous avons un serveur SOA externe qui est exposé à Internet. Son rôle est de permettre aux résolveurs externes du projet d'accéder à nos serveurs publics (mail, site b2b, site interne). Dans cette configuration, il est essentiel de renforcer la sécurité de ce serveur afin de le protéger au maximum contre toutes les attaques potentielles provenant directement d'Internet.

  • Ensuite, il y a un conteneur interne résolveur + SOA utilisé exclusivement par les utilisateurs du réseau local de l'entreprise. Il est moins important à sécuriser car il n'est accessible que depuis l'intérieur. Cependant, on ne peut pas nier qu'il puisse y avoir des attaques provenant de l'intérieur. Il serait donc intéressant de le sécuriser aussi.

Quelles sont les attaques possibles ?

  • DDoS (Distributed Denial of Service) : Cette attaque vise à submerger le résolveur ou le serveur SOA en envoyant un grand nombre de requêtes, ce qui peut le ralentir voire le mettre hors service.
  • ID Spoofing : Cette attaque vise à usurper les informations d'identification pour s'interposer entre le client et le résolveur. L'attaquant envoie des paquets réseau falsifiés au client afin de le rediriger vers de mauvais sites.
  • Tunneling DNS : Il s'agit d'une attaque qui ne se limite pas au DNS, mais qui concerne tous les autres services disponibles. Elle vise à contourner le pare-feu en utilisant le DNS, souvent moins contrôlé que les autres types de requêtes.
  • Cache Poisoning : Dans cette attaque similaire à l'ID Spoofing, l'attaquant falsifie les informations provenant directement du résolveur. Le résolveur dispose d'un cache dans lequel il stocke des informations récurrentes pour réduire le nombre de requêtes aux serveurs SOA. L'attaque consiste à modifier les informations dans le cache pour rediriger les clients vers de mauvaises adresses.

Comment s'en protéger ?

voici une analyse des différentes options pour sécuriser le DNS, avec leurs avantages et inconvénients :

  • DNSSEC (DNS Security Extensions) : DNSSEC est un ensemble de protocoles qui garantissent l'authenticité et l'intégrité des données DNS en utilisant des signatures numériques. L'avantage de DNSSEC est sa protection contre les attaques de type cache poisoning et man-in-the-middle (MITM), courantes sur le DNS non sécurisé. Cependant, DNSSEC peut être complexe à implémenter et à maintenir, et il peut également poser des problèmes de compatibilité avec certains équipements et applications.

  • DNSSec-aware : Les résolveurs DNSSec-aware sont des résolveurs DNS capables de valider les signatures numériques fournies par les serveurs DNS utilisant DNSSEC. Ces résolveurs protègent les utilisateurs contre les attaques de type cache poisoning et MITM en vérifiant l'authenticité des données DNS. Cependant, comme pour DNSSEC, l'implémentation et la maintenance des résolveurs DNSSec-aware peuvent être complexes.

  • DNS over TLS (DoT) : DNS over TLS est un protocole qui chiffre les communications entre les résolveurs DNS et les serveurs DNS. DoT protège contre les attaques d'interception et de surveillance en chiffrant les requêtes et réponses DNS. Cependant, DoT peut être difficile à mettre en œuvre sur les réseaux existants et peut entraîner des problèmes de performance et de compatibilité avec certains équipements et applications.

  • DNS over HTTPS (DoH) : DNS over HTTPS est un protocole similaire à DoT, qui chiffre également les communications entre les résolveurs DNS et les serveurs DNS, mais utilise le protocole HTTPS pour cela. DoH offre également une protection contre l'interception et la surveillance, et peut être plus facile à mettre en œuvre que DoT. Cependant, DoH peut être plus difficile à surveiller et à contrôler car il utilise le même canal que les autres communications Web.

  • Filtrage DNS : Le filtrage DNS est une technique qui bloque ou redirige les noms de domaine indésirables, tels que les sites malveillants ou les contenus inappropriés. Le filtrage DNS peut être mis en place à différents niveaux, tels que les résolveurs DNS, les pare-feu ou les routeurs. Le filtrage DNS peut être efficace pour protéger les utilisateurs contre les menaces en ligne, mais peut également poser des problèmes de censure et de liberté d'expression.

En résumé, chaque option de sécurité pour le DNS présente des avantages et des inconvénients. DNSSEC et les résolveurs DNSSec-aware offrent une protection contre les attaques de type cache poisoning et MITM, tandis que DoT et DoH offrent une protection contre l'interception des communications. Le filtrage DNS peut être efficace pour bloquer les contenus indésirables, mais peut entraîner des problèmes de censure. Le choix de la solution dépend des besoins spécifiques et des contraintes de chaque environnement.

Solution mis en place

La solution que nous avons choisi est le DNSSEC, qui permettra la protection la plus large pour ce service. Il y a, cependant, des inconvénients au DNSSEC, S'il y a des modifications à faire dans le fichier de zone, il faut resigner la zone en question ce qui peut être embêtant et peux causer des problèmes et erreur. Il se peut aussi que les clés soient compromise et qu'il faille donc en recréer.

Commande utilisé pour activer dnssec :

dnssec-keygen -a RSASHA256 -b 4096 -n ZONE m2-3.ephec-ti.be
dnssec-keygen -f KSK -a RSASHA256 -b 4096 -n ZONE m2-3.ephec-ti.be

for key in `ls Km2-3.ephec-ti.be*.key`
do
echo "\$INCLUDE /etc/bind/$key">> forward
done


dnssec-signzone -A -3 $(head -c 1000 /dev/random | sha1sum | cut -b 1-16) -N INCREMENT -o m2-3.ephec-ti.be -t forward

puis ajouter ceci dans named.conf :

options {
    dnssec-enable yes;
    dnssec-validation yes;
    dnssec-lookaside auto;
};

zone "m2-3.ephec-ti.be" {
 type master;
 file "/etc/bind/forward.signed";
 notify yes;
};

Bibliographie :