Skip to content

Sécurité DNS

Gabrielle Cruz edited this page Aug 24, 2023 · 6 revisions

Identification des biens à proteger

  • Les données stockées dans le système DNS
    • SOA et Resolvers
    • Name Servers et Resource Records
  • Les utiilisateurs de l'entreprise qui accèdent l'internet

Identification des menaces et risques associés

Menaces

  • L'attaque d'amplification de DNS
    • Une forme de DDoS (Distributed Denial of Service) qui cible et surcharge un système DNS publique par le trafic de réponse
  • DNS Spoofing
    • Cache Poisoning
      • L'injection des fausses données dans le cache d'un resolveur DNS pour rediriger les users vers les machines frauduleuses
    • ID Spoofing
      • L'insertion de l'attaquant entre le client et le serveur pour rediriger les users vers des faux sites afin de recuperer leurs informations
  • DNS Tunneling
    • L'exploitation du protocol DNS pour passer (tunnel en anglais) le malware par un modèle client-server pour contrôler et gérer le serveur DNS et ses services

Risques

  • Perte de disponibilités des services DNS [DDoS / DNS Amplification]
  • Corruption des données [Cache Poisoning]
  • Risques à la confidentialité des données des users [DNS Tunneling / ID Spoofing]

Contre-mésures des menaces identifiés

Pour se proteger contre les menaces décrites au-dessous, dont une grande partie des attaques viennent des données falsifiées, nous allons mettre en place le méchanisme d'authentification DNSSEC (Domain Name System Security Extensions). Ce méchanisme se base sur le principe de la cryptographie asymétrique, permet de garantir l'intégrité des réponses DNS, et empêche les attaques "man-in-the-middle".

Mise en place des contre-mesures

Pour l'implémentation de DNSSEC, nous avons 3 grands étapes:

  1. Génération des clés
  2. Publication du clé public dans le zone DNS
  3. Signature du zone avec le clé privé

Pour commencer, il faut ajouter ces consignes dans named.conf:

dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;

Ensuite, on génere une paire des clés KSK (KEY Signing Key) par ce commande: dnssec-keygen -f KSK -a RSASHA256 -b 2048 -n ZONE mmes-3.ephec-ti.be

Après, on génere une paire des clés ZSK (Zone Signing Key) par ce commande: dnssec-keygen -a RSASHA256 -b 2048 -n ZONE mmes-3.ephec-ti.be

Il faut ensuite signer la zone DNS avec DNSSEC en faisant ce commande: dnssec-signzone -A -N INCREMENT -o mmes-3.ephec-ti.be -t db.mmes-3

Après la signature de la zone, il faut configurer le serveur DNS pour accepter le DNSSEC. Il suffit simplement d'ajouter les enregistrements DNSKEY (la clé publique) et DS (empreinte de DNSKEY) dans le zone DNS.

Finalement, on teste la configuration du DNSSEC avec: dnssec-verify ns.mmes-3.ephec-ti.be/signed

Tableau Recapitulatif

Menace Probabilité Impact Estimation du risque Contre-mesure
Cache Poisoning +++ ++ Important Vider le cache - DNSSEC - TTL plus court
DDoS (DNS Amplification) +++ +++ Important Configuration du firewall / fail2ban sur VPS
ID Spoofing ++ ++ Moyen DNSSEC
DNS Tunneling + ++ Moyen Analyse du trafic

Bibliotheque

  1. Violino, B. (2022, 3 mars). The 5 big DNS attacks and how to mitigate them. Network World. https://www.networkworld.com/article/3409719/worst-dns-attacks-and-how-to-mitigate-them.html
  2. EPHEC Moodle : se connecter sur le site. (s. d.). https://moodle.ephec.be/mod/book/view.php?id=335557&chapterid=76304
  3. EPHEC Moodle : se connecter sur le site. (s. d.-b). https://moodle.ephec.be/mod/book/view.php?id=335557&chapterid=76305
  4. A, J. (2014). How to setup DNSSEC on an authoritative BIND DNS Server. DigitalOcean. https://www.digitalocean.com/community/tutorials/how-to-setup-dnssec-on-an-authoritative-bind-dns-server-2

Clone this wiki locally