web-dev-qa-db-fra.com

Quels types de vulnérabilités de sécurité fournissant DNSSEC exposent?

Je prévoyais de signer ma zone DNS avec DNSSEC. Ma zone, le greffier et mon serveur DNS (BIND9) Tous prennent en charge DNSSEC. Le seul qui ne prend pas en charge DNSSEC est mon fournisseur de noms secondaire (nommément buddyns.com ).

sur leur site Web , ils affirment ceci concernant DNSSEC:

Buddyns ne prend pas en charge la DNSSEC, car elle expose certaines vulnérabilités invisibles à un service DNS à volume élevé.

Eh bien, je pensais que l'utilisation de DNSSEC est actuellement discutable, car la plupart des résolvers ne vérifient pas si les enregistrements sont signés correctement. Ce que je ne savais pas, c'était que - selon leur déclaration - il semble que cela exposerait des vulnérabilités de sécurité de certaines personnes.

Quelles sont ces "vulnérabilitées"?

28
Johann Bauer

DNSSEC a des risques, mais ils ne sont pas directement liés à la réflexion ou à l'amplification. L'expansion de la taille du message EDNS0 est un hareng rouge dans ce cas. Laissez-moi expliquer.

Tout échange de paquets qui ne dépend pas d'une preuve d'identité antérieure est soumis à des abus d'assaillants DDO qui peuvent utiliser cet échange de paquets non authentifié en tant que réflecteur, et peut-être aussi comme un amplificateur. Par exemple, ICMP (le protocole derrière "ping") peut être abusé de cette manière. Comme l'TCP Syn Packet, qui sollicite jusqu'à 40 paquets Syn-ACK, même si la syn de synchronisation a été utilisée pour provoquer une victime qui ne veut pas ces paquets Syn-ACK. Et bien sûr, tous les services UDP sont vulnérables à cette attaque, y compris NTP, SSDP, UPNP et, comme indiqué par d'autres réponses ici, y compris également DNS.

La plupart des appareils de détection des intrusions, de prévention des intrusions et d'équilibreurs de charge sont des goulots d'étranglement, incapables de suivre le trafic de "taux de ligne". De plus, de nombreux routeurs ne peuvent pas courir au taux de ligne et quelques commutateurs. Ces goulots d'étranglement, en étant la plus petite chose "sur le chemin", et plus petit que les liens eux-mêmes sont la cible réelle des attaques DDO basées sur la congestion. Si vous pouvez garder le pare-feu de quelqu'un occupé avec un trafic d'attaque, le bon trafic ne réussira pas, même si les liens ne sont pas pleins. Et ce qui ralentit un pare-feu n'est pas le nombre total de bits par seconde (qui peut être augmenté en utilisant des messages plus volumineux, et EDNS0 et DNSSEC feront), mais plutôt le nombre total de paquets par seconde.

Il y a beaucoup de légende urbaine sur la manière dont Dnssec fait pire DDOS en raison de la taille du message plus large de DNSSEC, et de ce que cela rend le sens intuitif et "ça sonne bien", c'est simplement faux. Mais s'il y avait une vérité de la vérité à cette légende, la vraie réponse serait toujours étendue ... [car DNSSEC utilise toujours EDNS0, mais EDNS0 peut être utilisé sans DNSSEC] et de nombreuses réponses normales non-DNSSEC sont aussi grandes que la DNSSEC. la réponse serait. Considérez les enregistrements TXT utilisés pour représenter les stratégies SPF ou les touches DKIM. Ou juste n'importe quel grand ensemble d'adresses ou d'enregistrements MX. En bref, aucune attaque n'exige DNSSEC, et donc toute concentration sur la DNSSEC en tant que risque DDOS est une énergie missuelle.

DNSSEC a des risques! Il est difficile d'utiliser et plus difficile à utiliser correctement. Souvent, il nécessite un nouveau flux de travail pour les modifications de données de zone, la gestion des registraires, l'installation de nouvelles instances de serveur. Tout cela doit être testé et documenté, et chaque fois que quelque chose rompt est lié à DNS, la technologie DNSSEC doit faire l'objet d'une enquête comme une cause possible. Et le résultat final si vous faites tout ce qui va, vous serez que, en tant que signataire de zone, votre propre contenu et systèmes en ligne sera plus fragile pour vos clients. En tant qu'opérateur de serveur d'extrémité, le résultat sera que le contenu et les systèmes de tous les autres seront plus fragiles. Ces risques sont souvent perçus à l'emporter sur les avantages, car le seul avantage est de protéger les données DNS de la modification ou de la substitution en vol. Cette attaque est si rare de ne pas valoir tout cet effort. Nous espérons que DNSSEC devient omniprésente un jour, à cause des nouvelles applications qu'elle permettra. Mais la vérité est qu'aujourd'hui, DNSSEC est tout coût, aucun avantage et avec des risques élevés.

Donc, si vous ne voulez pas utiliser DNSSEC, c'est votre prérogative, mais ne laissez personne vous confondre que le problème de DNSSEC est son rôle en tant qu'amplificateur DDOS. DNSSEC n'a pas de rôle nécessaire en tant qu'amplificateur DDOS; Il existe d'autres meilleures façons moins chères d'utiliser DNS comme amplificateur DDOS. Si vous ne voulez pas utiliser DNSSEC, laissez-le être parce que vous n'avez pas encore bu l'aide à Kool et que vous voulez être un dernier déménageur (plus tard) et non un premier déménageur (maintenant).

Les serveurs de contenu DNS, parfois appelés "serveurs d'autorité", doivent être empêchés d'être abusés en tant que DNS reflétant des amplificateurs, car DNS utilise UDP, et que UDP est agressable par des paquets source spoofed. La façon de sécuriser votre serveur de contenu DNS contre ce type d'abus n'est pas de bloquer UDP, ni de forcer TCP (à l'aide du truc de TC = 1), ni de bloquer la requête, ni de ne pas désinscrire de DNSSEC. Aucune de ces choses ne vous aidera. Vous avez besoin limitation du taux de réponse DNS (DNS RRL), une technologie entièrement gratuite qui est désormais présente dans plusieurs serveurs de noms de source ouverts, y compris Bind, Knot et NSD. Vous ne pouvez pas corriger le problème de réflexion DNS avec votre pare-feu, car seule une centrale consciente de contenu tel que le serveur DNS lui-même (avec RRL ajouté) connaît suffisamment la demande de deviner avec précision ce qui est une attaque et ce qui n'est pas. Je tiens à souligner, encore une fois: DNS RRL est gratuit et chaque serveur d'autorité devrait l'exécuter.

En terminant, je veux exposer mes préjugés. J'ai écrit la plupart des bind8, j'ai inventé Edns0 et j'ai co-inventé DNS RRL. Je travaille sur DNS depuis 1988 en tant que 20 quelque chose, et je suis maintenant grincheux de 50-quelque chose, avec de moins en moins de patience pour des solutions à moitié cuites aux problèmes mal compris. Veuillez accepter mes excuses si ce message ressemble trop à "Hey You Kids, obtenez Offa ma pelouse!"

103
Paul Vixie

Je connais deux vulnérabilités spécifiques. Il y a la réflexion/amplification mentionnée par Håkan. Et il y a la possibilité de dénombrer la zone.

réflexion/amplification

Réflexion signifie des attaques dans lesquelles les demandes d'une adresse IP de source spoofée sont envoyées à un serveur DNS. L'hôte étant spoofed est la principale victime de l'attaque. Le serveur DNS envoie inconsciemment la réponse à un hôte qui ne l'a jamais demandé.

L'amplification fait référence à toute attaque de réflexion dans laquelle la réponse réfléchie consiste en plus d'octets ou plus de paquets que la demande initiale. Avant que DNSSEC + EDNS0 amplification de cette manière ne permettrait que 512 octets d'être envoyés. Avec DNSSEC + EDNS0, il est possible que 4096 octets soient envoyés, qui couvre généralement 3-4 paquets.

Il existe des mesures d'atténuation possibles pour ces attaques, mais je ne connais aucun serveur DNS en les mettant en œuvre.

Lorsque le client IP n'a pas été confirmé, le serveur DNS peut envoyer une réponse tronquée pour forcer le client à passer à TCP. La réponse tronquée peut être aussi courte que la demande (ou plus courte si le client utilise EDNS0 et la réponse ne signifie pas) qui élimine l'amplification.

Toute adresse IP client qui complète a TCP Handshake et envoyez une demande DNS sur la connexion peut être temporairement blanchie. Une fois que la nuisible est blanchissante que la propriété intellectuelle doit envoyer des requêtes UDP et recevoir des réponses UDP jusqu'à 512 octets (4096 octets Si vous utilisez EDNS0). Si une réponse UDP déclenche un message d'erreur ICMP, l'adresse IP est à nouveau retirée de la liste blanche.

La méthode peut également être inversée à l'aide d'une liste noire, ce qui signifie simplement que les IP clients sont autorisés à interroger via UDP par défaut, mais n'importe quel message d'erreur ICMP entraînait la liste noire de l'IP qui a besoin d'avoir besoin d'A TCP requête pour obtenir hors de la liste noire.

Un bitmap couvrant toutes les adresses IPv4 pertinentes pourrait être stockée dans 444 Mo de mémoire. Les adresses IPv6 devraient être stockées d'une autre manière.

énumération de zone

Si l'énumération de la zone est une vulnérabilité en premier lieu est l'objet d'un débat. Mais si vous ne voulez pas que tous les noms de votre zone soient des connaissances publiques, vous considérez probablement une vulnérabilité. L'énumération de la zone peut principalement être atténuée grâce à l'utilisation des enregistrements NSEC3.

Le problème qui persiste encore même lorsque l'utilisation de NSEC3 est qu'un attaquant peut trouver le hachage de chaque étiquette en interrogeant simplement des noms aléatoires. Une fois que l'attaquant a tous les hachages, une attaque de force brute hors ligne peut être effectuée sur ces hachages.

Une défense appropriée contre l'énumération de la zone nécessiterait un attaquant d'effectuer une requête sur le serveur faisant autorité pour chaque devin. Cependant, aucune défense de ce type n'existe dans la DNSSEC.

7
kasperd

La chose qui me vient à l'esprit n'est pas réellement spécifique à DNSSEC, mais plutôt à propos de l'extension EDNS0, que DNSSEC s'appuie sur.

EDNS0 permet aux charges utiles plus grandes et plus grandes charge utiles UDP peut permettre d'aggraver les attaques de réflexion/amplification du trafic.


[ les résolveurs publics de Google.

D'après cela, je penserais que le pourcentage de résolveurs de validation est probablement de manière significativement meilleure que le pourcentage de zones signées.

4
Håkan Lindqvist