Skip to content

Secu_DNS

FirminMoyen edited this page Jun 13, 2022 · 4 revisions

Risques identifiés et contre mesures :

DOS :

Les attaques par denis de services consistent a envoyer un trop grand nombre de requetes sans interruption vers un serveur, cela a pour effet de surcharger le serveur l'empechant donc de repondre correctement aux requetes des utilisateurs et rendant donc le réseau innutilisable. il existe 3 type d'attaques par dénis de service :

  • Attaques de volume : Ce type d'attaques utilise une grande quantité de "faux" trafic pour surcharger une resource comme un serveur ou un site web, l volume de l'attaque est mesuré en bits par secondes.
  • Attaques sur la couche réseau ou protocole : Ce type d'attaques envoit un grand nombre de packets sur une infrastructure reseau, le volume de l'attaque est mesuré en packets par secondes.
  • Attaque sur la couche applicative : Ce type d'attaques est assez similaire aux attaques de volume sauf qu'il consiste a envoyer un nombre trop important de requetes a un serveur, le volume de l'attaque est mesuré en requetes par secondes.

Contre Mesures :

Il est assez compliqué de se prémunir face aux attaques de typer DOS, ca il n'est pas aisé de differentier les resources utilisées par des utilisateurs de celles des attaquants. Cependant, certainnes bonnes habitudes permettent de limiter les degats :

  • Surveiller et analyser le trafic : le trafic réseau peut etre supervisé grace a un firewall, les admins peuvent definir un ensemble de règles pour être allertés d'un trafic inhabituel, identifier la source du trafic où filtrer les packets sur un ensemble de critères.

  • installer et maintenir un antivirus pertinent pour l'nsemble du parc informatique.

  • Prévoir des serveurs de secour pour ne pas devoir arreter l'nesemble des activitées.

Le DNS cache poisonning/spoofing :

L'empoisonnement du cache DNS en français consiste à faire accepter au serveur DNS des informations incorrectes qu’il stockera alors dans son cache. Ainsi, lorsque le serveur DNS répond à ses clients, il le fait avec des données erronées et les clients sont alors redirigés vers la machine du pirate ou vers un site web falsifié. En plus, grâce à l’empoisonnement du cache, l’attaquant peut rediriger toutes les machines utilisant le serveur DNS pollué, vers ce que bon lui semble. Pour cela, le pirate doit utiliser une vulnérabilité du serveur DNS, consistant à lui faire ingérer des informations sans contrôle particulier concernant l’origine de ces informations.

Contre mesures :

Un des aspects les plus compliqué pour se défendre de ce genre d'attaques est que c'est assez difficile de determiner si une reponse DNS est legitime ou non.
Cependant il existe des solutions pour s'en prémunir. La plus connue et la plus efficace est DNSSEC, il s'agit d'un protocol spécialement concu pour répondre a ce type d'attaques permetant d'authentifier une réponse DNS au moyen de la cryptographie asmetrique. Nous llons voir plus loin comment le configurer sur notre serveur.

Une autre bonne pratique est de baisser le TTL (le temps de vie) des informations se trouvant dans le cache du serveur, en effet moins les informations restent longtemps dans le cache moins il y a de risque d'envoyer de mauvaises informations aux utilisateurs.

Dnssec :

Les DNSSEC renforcent l'authentification du DNS en utilisant des signatures numériques basées sur la cryptographie à clé publique. Avec les DNSSEC, les requêtes DNS et les réponses ne sont pas elles-mêmes signées cryptographiquement, ce sont les données DNS qui sont signées par le propriétaire des données.

Le but va etre de signer un fichier de zone grace a des clées asymetriques et d'utiliser ce nouveau fichier de zone singé pour envoyer les informations DNS.

voici les etapes pour le faire sur notre DNS :

  1. Il faut out d'abord s'assurer que ces liges soient présentes dans le fichier named.conf.option,
allow-transfer { none; };

dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
  1. on va ensuite créer les clées necesaires :
    Dans le dossier /etc/bind/keys, il faut generer les clées pour signer la zone et pour signer les clées :
dnssec-keygen -f KSK -a RSASHA256 -b 2048 -n ZONE m1-8.ephec-ti.be
dnssec-keygen -a RSASHA256 -b 2048 -n ZONE m1-8.ephec-ti.be
  1. Il est ensuite plus pratique de renomer ces clées en .ksk et .zsk de la façon suivante :
mv /etc/bind/keys/Km1-8.ephec-ti.be.+008+XXXXX.key /etc/bind/keys/m1-8.ephec-ti.be.ksk.key
mv /etc/bind/keys/Km1-8.ephec-ti.be.+008+XXXXX.private /etc/bind/keys/m1-8.ephec-ti.be.ksk.private

mv /etc/bind/keys/Km1-8.ephec-ti.be.+008+XXXXX.key /etc/bind/keys/m1-8.ephec-ti.be.zsk.key
mv /etc/bind/keys/Km1-8.ephec-ti.be.+008+XXXXX.private /etc/bind/keys/m1-8.ephec-ti.be.zsk.private

Où XXXXX sont 5 chipres générés aléatoirement lors de la création des clées, il faut donc verifier quelle clées correspond a quoi manuelement.


6) il faut signer la zone grace a la commande :
dnssec-signzone -e20221020030000 -t -g -k ./m1-8.ephec-ti.be.ksk.key -o m1-8.ephec-ti.be ../m1-8.ephec-ti.be ./m1-8.ephec-ti.be.zsk.key

Qui devrait nous renvoyer si tout va bin un réponse de ce type :

Zone fully signed:
Algorithm: RSASHA256: KSKs: 1 active, 0 stand-by, 0 revoked
                      ZSKs: 1 active, 0 stand-by, 0 revoked
../m1-8.ephec-ti.be.signed
Signatures generated:                       14
Signatures retained:                         0
Signatures dropped:                          0
Signatures successfully verified:            0
Signatures unsuccessfully verified:          0
Signing time in seconds:                 0.020
Signatures per second:                 700.000
Runtime in seconds:                      0.024
  1. Il ne nous reste plus qu'a changer le fichier de zone dans named.conf.local pour y préciser le .signed :
zone "m1-8.ephec-ti.be" {
    type master;
    file "/etc/bind/m1-8.ephec-ti.be.signed";
};
  1. Il faut enfin relancer le service Bind9 grace a la commande service named restart.


On peut maintenant tester le Dnssec grace a la comande dig où grace a des outils comme supertool :

https://mxtoolbox.com/SuperTool.aspx

Moyen Firmin

Clone this wiki locally