Question:
Pourquoi les caches DNS du navigateur n'atténuent-ils pas les attaques DDOS contre les fournisseurs DNS?
aeb0
2016-10-23 06:25:37 UTC
view on stackexchange narkive permalink

Pourquoi la récente attaque DDoS contre le fournisseur DNS Dyn et d'autres attaques similaires réussissent-elles? Bien sûr, une attaque DDoS peut faire tomber une entité, et si cette entité contrôle les serveurs DNS, les requêtes adressées à ces serveurs de noms échoueront et les domaines répertoriés sous ces serveurs de noms ne seront pas accessibles par tout hôte qui ne dispose pas déjà d'informations IP pour eux.

Mais comme les navigateurs mettent en cache les enregistrements DNS, de nombreux hôtes auront déjà des informations IP pour ces domaines (au moins jusqu'à ce que leurs entrées de cache expirent) et donc le fait que les serveurs de noms soient hors service ne devrait pas avoir d'importance pour les hôtes avec des caches . Mais cela ne semble pas être le cas: lors de l'attaque d'hier, je n'ai pas pu accéder à github, npm, etc.

Bien que la plupart des réponses ici parlent des caches de navigateur, je suis également intéressé par les caches intermédiaires (comme votre FAI).Lorsque je modifie le DNS, on me dit souvent que cela peut prendre un jour pour que le changement se propage sur Internet.Pourquoi ces caches DNS intermédiaires n'aident-ils pas?
Six réponses:
Shackledtodesk
2016-10-23 06:55:17 UTC
view on stackexchange narkive permalink

Vous avez raison de dire que le cache DNS atténuerait l'indisponibilité d'un serveur de noms. Il est extrêmement courant d'avoir un TTL de 5 minutes ou moins. Par conséquent, 5 minutes après l'attaque DDOS qui a fait tomber Dyn, votre cache aurait été invalide et vous n'auriez pas pu frapper github, etc.

À quelle fréquence les adresses IP de ces sites majeurs changent-elles?J'aurais pensé que la cache durerait au moins quelques jours, peut-être des semaines.
@AlexanderMomchliov Le TTL est choisi pour la latence plutôt que pour la fréquence.Si votre adresse IP est modifiée, vous ne voulez pas attendre des semaines avant que les gens puissent l'utiliser à nouveau.
Par curiosité ... Mis à part l'équilibrage de charge et le basculement à tour de rôle pilotés par DNS (qui se fait généralement complètement différemment!), Quelle est la raison pour laquelle le cache est si inutilement de courte durée?Ce n'est pas comme si l'entrée DNS d'un site devrait normalement changer 200 fois par jour.On pourrait penser que deux heures devraient aussi bien fonctionner.
@Damon: Retour au commentaire d'OrangeDog.Cela ne change pas souvent, mais quand cela change, vous préférez que cela change * maintenant *, pas 2 jours plus tard.De plus, certains sites / services basés sur des clouds * sont * dynamiques: les VM sont tuées, mélangées, arrêtées, générées, ... et l'utilisateur final doit toujours être dirigé vers un serveur / port où se trouve réellement le site / service souhaité.D'autre part, les caches DNS comme [EdgeDNS] (https://github.com/jedisct1/edgedns) conserveront les entrées expirées et les utiliseront jusqu'à ce qu'ils parviennent à les actualiser à partir du DNS faisant autorité, ce qui est utile lorsqu'il est en panne./lent.
Comme mentionné, mais mérite d'être répété.Si vous avez un TTL inférieur à 5 minutes sur votre DNS, vous effectuez probablement un équilibrage de charge réparti géographiquement via DNS.Au bout de 5 minutes, nous parlons de la possibilité de basculer vers un site DR (Disaster Recovery) lorsque le principal est en panne.Par conséquent, vous ne voulez pas d'un long TTL pour votre DNS pour l'une ou l'autre raison. Bien que EdgeDNS puisse conserver les entrées DNS à l'expiration du cache ET que le primaire ne répond pas, cela est en dehors de la spécification RFC pour DNS et à la fois ni normal et généralement pas ce que vous voulez.
C'est ce qui se produit lorsque les gens utilisent Stupid DNS Tricks® pour fournir un basculement et d'autres fonctionnalités (par exemple, le géo-routage) que DNS n'a pas été conçu pour faire.Le basculement appartient à la couche IP, pas à la couche de dénomination.
@MatthieuM.Notez que dans le cloud, vous attachez rarement directement un domaine à 1 serveur.Vous l'attachez à un équilibreur de charge.
@Alnitak Pouvez-vous ajouter cela comme réponse?Je pense que c'est sous-estimé.
@Shackledtodesk `généralement pas ce que vous voulez.` Quand serait-il préférable de ne fournir aucun enregistrement DNS que de fournir un enregistrement DNS expiré, si le serveur DNS principal de l'hôte est inaccessible?
AiliuzfnecCMT fait
paj28
2016-10-23 08:37:17 UTC
view on stackexchange narkive permalink

Une petite modification de la conception des caches DNS pourrait faire une grande différence. La plupart des caches DNS suppriment une entrée à l'expiration du TTL. Un cache pourrait à la place conserver l'entrée, mais la marquer comme expirée. Si une requête arrive pour une entrée expirée, le cache essaiera d'abord de résoudre le nom en amont, et si cela échoue, retournera l'entrée expirée. Je pense que c'est techniquement en violation du protocole DNS, mais toujours un meilleur comportement d'échec.

Cependant, je ne m'attends pas à voir cela se produire. L'impact de l'arrêt des serveurs DNS serait toujours significatif - tous les sites que vous n'avez pas dans votre cache. L'accent restera sur le maintien de l'infrastructure DNS opérationnelle.

Mise à jour: @MatthieuM a souligné que EdgeDNS fait cela.

Notez que [EdgeDNS] (https://github.com/jedisct1/edgedns) fait exactement cela.Il conserve les entrées expirées et les utilise jusqu'à ce qu'il parvienne à obtenir une réponse du DNS faisant autorité pour l'entrée.
C'est une faille de sécurité.Si je prends le contrôle de l'ancienne adresse IP d'un site, j'incite les gens à visiter ma page à la place en utilisant leur DNS.Cela peut arriver longtemps après le changement d'adresse IP si je sais que quelqu'un n'a pas visité le site depuis longtemps.
Existe-t-il un logiciel qui fait cela pour Windows?@MatthieuM.
@BlueRaja-DannyPflughoeft - Tout site où la sécurité est importante devrait avoir SSL qui arrête cela
@paj28 Ce n'est pas une réponse médiocre, c'est la réponse _correct_.La réponse actuellement acceptée dit essentiellement "parce que ce n'est pas la façon dont les caches DNS basés sur un navigateur sont actuellement conçus", alors que cette réponse va à la racine de la question du "pourquoi" en expliquant cela, alors que les navigateurs _pourraient_ atténuer les effets de la baisse du DNS, cela aurait un impact limité.
Du point de vue des performances, je pense qu'il serait avantageux de dire que si le programme veut établir une connexion avec un hôte dont l'entrée de cache est plus que par ex.5 minutes mais moins que par ex.un jour, le programme doit se connecter immédiatement en utilisant l'adresse mise en cache, mais le cache doit émettre une requête DNS et mettre à jour le cache si la réponse indique une nouvelle adresse.
@paj28 `L'impact de l'arrêt des serveurs DNS serait toujours significatif - tous les sites que vous n'avez pas dans votre cache." En supposant que nous parlons du cache du navigateur.Mais les serveurs DNS qui ne font pas autorité ne pourraient-ils pas faire de même?Ensuite, si Dyn tombait à nouveau en panne, tous les autres serveurs DNS conserveraient les entrées DNS en cache.Les sites Web plus petits ne seraient pas toujours mis en cache, mais il serait beaucoup plus difficile de supprimer de grandes parties du réseau en atteignant une cible centralisée.(Sauf bien sûr que je me trompe).
@Nateowami - Belle idée!
Le DDoS ne fera que monter dans la pile ...
@IanRingrose - Trop vrai: (Nous n'avons pas de solution complète à DDoS pour le moment, juste une série d'atténuations allant des cookies syn aux épurateurs distribués. Pour l'instant, les contre-mesures tactiques sont les meilleures qui soient.
grochmal
2016-10-23 07:23:07 UTC
view on stackexchange narkive permalink

@Shackledtodesk est correct (+1), le cache du navigateur est conservé pendant une courte période. Ironiquement, certaines des meilleures références à ce sujet ont été publiées par Dyn:

Un programme simple que j'ai écrit pour interroger les 1000 meilleurs sites Web (selon Alexa) montre 212 résultats avec une valeur TTL de 300 (5 mins), 192 hits avec un TTL de 3600 (1 hr), 116 hits avec un TTL de 600 (10 mins) et 79 hits avec un TTL de 86400. Le reste des résultats avait des hits dans les années 50 et moins. , allant d'un TTL de 5 (1 hit) à un TTL de 864000 (1 hit).

Voici une citation de Ben Anderson, chercheur et rédacteur technique chez Dyn.

En regardant ces résultats, vous pouvez le voir sur une petite quantité si votre navigateur invalide le cache DNS. Et votre résolution DNS commence à échouer.

Référence


PS: pour ajouter l'insulte à la blessure, l'article lié de Dyn soutient que le cache DNS du navigateur est une mauvaise chose.

symcbean
2016-10-23 22:18:33 UTC
view on stackexchange narkive permalink

Les navigateurs ne mettent pas en cache les enregistrements DNS

Ceci est une fonction du résolveur qui est un complément à la pile réseau.

DNS La mise en cache n'aiderait pas beaucoup.

Les appareils mis en esclavage de mirai sont capables de mener n'importe quel nombre d'attaques différentes selon les instructions du CnC. Dans le cas de l'attaque contre la sécurité de Krebbs et DYN, les attaquants ont simplement rempli leur bande passante avec du trafic - peu importe le trafic. Bien que le DNS puisse être exploité pour une attaque indirecte par amplification, je crois comprendre que cela ne s'applique pas dans le cas des attaques contre Krebss et DYN. Le DNS a été utilisé dans cette dernière attaque car il ne permettait pas de filtrer le trafic réel du trafic d'attaque.

Si les enregistrements DNS étaient mis en cache ailleurs accessibles aux utilisateurs normaux (sur les caches DNS, pas dans les navigateurs), alors L'attaque aurait eu beaucoup moins d'impact, mais le modèle commercial DYN cible principalement l'hébergement DNS et la fourniture aux utilisateurs finaux. Ce dernier aurait été perturbé de toute façon. La présence des données dans les caches intermédiaires / autres fournisseurs d'utilisateurs finaux dépend du volume de trafic et du délai d'expiration (mon expérience est que les délais d'expiration de moins de 2 heures sont inefficaces). En outre, un site à fort trafic aura plusieurs points de présence géographiques ainsi que plusieurs enregistrements A à chaque POP - les adresses de multidiffusion sont chères et (en raison d'edns-client-subnet) non requises autrement que pour DNS (en l'absence d'attaques DOS ).

Ils ne le font pas?Peut-être qu'au moins Chrome met en cache les enregistrements DNS?Ou peut-être que «cache» n'est pas exactement le mot juste pour ce qu'ils font?chrome: // net-internals / # dns
Caches, caches partout http://superuser.com/questions/203674/how-to-clear-flush-the-dns-cache-in-google-chrome
Alnitak
2016-10-25 15:27:57 UTC
view on stackexchange narkive permalink

Le DNS a été principalement conçu pour fournir un mappage stable (et peu cohérent ) des noms aux adresses. Dans le bon vieux temps, la durée de vie (TTL) des enregistrements DNS était généralement comprise entre 3600 et 86400 secondes. On s'attendait à ce que quiconque demande un enregistrement particulier vous obtienne toujours la même réponse .

Certaines personnes ont alors pensé que si elles utilisaient des TTL très courts, elles pourraient exécuter des astuces DNS stupides ® qui contraignent le DNS à faire des choses qu'il n'était pas censé faire .

Par exemple, certaines appliances d'équilibrage de charge ont des serveurs DNS intégrés qui surveillent la santé du back- serveurs finaux et fournissent une réponse différente à chaque requête entrante en fonction de leur charge actuelle.

Certains opérateurs regardent l'adresse source de la requête entrante et renvoient différentes réponses pour rediriger le client vers le cluster d'applications le plus proche (aka "Global Server Load Balancing").

À propos de l'attaque de la semaine dernière contre Dyn - une bonne pratique DNS consistait à distribuer vos serveurs DNS faisant autorité sur plusieurs réseaux (et / ou opérateurs) afin que une attaque ou une panne sur l'un d'entre eux vous laisserait toujours avec DNS en cours d'exécution.

Cependant, les "astuces" mentionnées ci-dessus impliquent des algorithmes et «intelligence» qui ne sont pas inhérents au DNS lui-même, de sorte qu'il devient très difficile (voire impossible) de s'appuyer sur la résilience intégrée du DNS. Un système qui génère des réponses synthétisées au lieu d'utiliser un fichier de zone ne peut pas être partagé entre plusieurs opérateurs utilisant AXFR.

v7d8dpo4
2016-10-23 20:36:45 UTC
view on stackexchange narkive permalink

Le cache DNS atténue les attaques DDOS contre les fournisseurs DNS, mais le cache NE DEVRAIT durer que peu de temps.

La durée maximale de mise en cache d'un enregistrement de ressource est spécifiée par le serveur, appelée TTL.

La signification du champ TTL est une limite de temps sur la durée pendant laquelle un RR peut être conservé dans un cache. Cette limite ne s'applique pas aux données faisant autorité dans les zones; il est également expiré, mais par les politiques d'actualisation de la zone. Le TTL est attribué par l'administrateur pour la zone d'où proviennent les données. Alors que des TTL courts peuvent être utilisés pour minimiser la mise en cache et qu'un TTL nul interdit la mise en cache, les réalités des performances Internet suggèrent que ces heures devraient être de l'ordre du jour pour l'hôte typique. Si un changement peut être anticipé, le TTL peut être réduit avant le changement pour minimiser les incohérences pendant le changement, puis ramené à sa valeur antérieure après le changement.

(extrait de RFC 1034)

Le serveur peut dire au résolveur que l'enregistrement peut être mis en cache pendant plus de 68 ans, ce qui est généralement assez long pour qu'une attaque soit corrigée. Mais les serveurs ne le font généralement pas. Les grands sites Web ne veulent pas qu'une défaillance du réseau les affecte pendant longtemps. Une façon de le faire est de définir la durée de vie de leurs enregistrements de ressources sur une durée relativement courte, par exemple 5 minutes. De cette façon, ils peuvent modifier leur enregistrement DNS en cas de défaillance de certains de leurs serveurs. Et les clients interrogeant le RR toutes les 5 minutes ne sont pas trop surchargés que de l'interroger une seule fois.

De plus, les applications mettent généralement en cache le RR dans la RAM. Ainsi, les enregistrements sont perdus une fois l'application redémarrée. (Il y a des exceptions. Vous pouvez vider le cache de BIND dans le système de fichiers par exemple.)

Je veux mentionner Namecoin ici. Il stocke les noms de domaine sur le disque, dans une blockchain. Si votre site Web utilise un domaine .bit, il est peu probable qu'il tombe en panne uniquement à cause du fournisseur DNS.



Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 3.0 sous laquelle il est distribué.
Loading...