Frage:
Warum verringern Browser-DNS-Caches DDOS-Angriffe auf DNS-Anbieter nicht?
aeb0
2016-10-23 06:25:37 UTC
view on stackexchange narkive permalink

Warum sind der jüngste DDoS-Angriff gegen den DNS-Anbieter Dyn und andere ähnliche Angriffe erfolgreich? Sicher, ein DDoS-Angriff kann eine Entität zum Absturz bringen. Wenn diese Entität DNS-Server steuert, schlagen Abfragen an diese Nameserver fehl, und unter diesen Nameservern aufgeführte Domänen können von keinem Host erreicht werden, der noch keine IP-Informationen für sie hat.

Da Browser DNS-Einträge zwischenspeichern, verfügen viele Hosts bereits über IP-Informationen für diese Domänen (zumindest bis ihre Cache-Einträge ablaufen), und daher sollte die Tatsache, dass die Nameserver nicht verfügbar sind, für die Hosts mit Caches keine Rolle spielen . Dies scheint jedoch nicht der Fall zu sein: Während des gestrigen Angriffs konnte ich nicht auf Github, Npm usw. zugreifen.

Obwohl sich die meisten Antworten hier auf Browser-Caches beziehen, interessieren mich auch die Zwischen-Caches (wie Ihr ISP).Wenn ich eine DNS-Änderung vornehme, wird mir oft gesagt, dass es einen Tag dauern kann, bis sich die Änderung im Internet verbreitet.Warum helfen diese Zwischen-DNS-Caches nicht?
Sechs antworten:
Shackledtodesk
2016-10-23 06:55:17 UTC
view on stackexchange narkive permalink

Sie haben Recht, dass der DNS-Cache verhindern würde, dass ein Nameserver nicht verfügbar ist. Es ist äußerst üblich, eine TTL von 5 Minuten oder weniger zu haben. Daher wäre Ihr Cache 5 Minuten nach dem DDOS-Angriff von Dyn ungültig gewesen und Sie hätten Github usw. nicht treffen können.

Wie häufig ändern sich IP-Adressen für solche wichtigen Websites?Ich hätte gedacht, der Cache würde mindestens ein paar Tage, vielleicht Wochen dauern.
@AlexanderMomchliov Die TTL wird eher nach Latenz als nach Frequenz gewählt.Wenn Ihre IP-Adresse geändert wird, möchten Sie nicht Wochen warten, bis die Benutzer sie wieder verwenden können.
Aus Neugier ... DNS-gesteuerter Round-Robin-Lastausgleich und Failover (was normalerweise ganz anders gemacht wird!) Abgesehen davon, was ist der Grund dafür, den Cache so unnötig kurzlebig zu machen?Es ist nicht so, dass sich der DNS-Eintrag einer Site normalerweise 200 Mal pro Tag ändern sollte.Man würde denken, zwei Stunden sollten auch gut funktionieren.
@Damon: Zurück zum OrangeDog-Kommentar.Es ändert sich nicht oft, aber wenn es sich ändert, möchten Sie es lieber * jetzt * ändern, nicht 2 Tage später.Außerdem sind einige auf Clouds basierende Sites / Dienste * dynamisch *: VMs werden getötet, gemischt, gestoppt, erzeugt usw. Der Endbenutzer sollte weiterhin zu einem Server / Port geleitet werden, auf dem sich der gewünschte Standort / Dienst tatsächlich befindet.Auf der anderen Seite behalten DNS-Caches wie [EdgeDNS] (https://github.com/jedisct1/edgedns) die abgelaufenen Einträge bei und verwenden sie, bis sie vom autorisierenden DNS aktualisiert werden können. Dies ist hilfreich, wenn es nicht verfügbar ist/schleppend.
Wie gesagt, aber es lohnt sich zu wiederholen.Wenn Ihr DNS eine TTL von weniger als 5 Minuten enthält, führen Sie wahrscheinlich einen geografisch verteilten Lastausgleich über DNS durch.Bei der 5-Minuten-Marke handelt es sich um ein Failover auf eine DR-Site (Disaster Recovery), wenn die primäre Site ausgefallen ist.Daher möchten Sie aus beiden Gründen keine lange TTL für Ihr DNS. Während EdgeDNS DNS-Einträge nach Ablauf des Caches behalten kann UND der primäre nicht antwortet, liegt dies außerhalb der RFC-Spezifikation für DNS und beides ist weder normal noch normalerweise nicht das, was Sie wollen.
Dies ist der Fall, wenn Benutzer Stupid DNS Tricks® verwenden, um Failover und andere Funktionen (z. B. Geo-Routing) bereitzustellen, für die DNS nicht entwickelt wurde.Das Failover gehört zur IP-Schicht, nicht zur Namensschicht.
@MatthieuM.Beachten Sie, dass Sie in der Cloud selten eine Domäne direkt an einen Server anhängen.Sie hängen es an einen Load Balancer an.
@Alnitak Können Sie das als Antwort hinzufügen?Ich denke, es ist unterbetont.
@Shackledtodesk "normalerweise nicht das, was Sie wollen". Wann wäre es jemals besser, keinen DNS-Eintrag bereitzustellen, als einen abgelaufenen DNS-Eintrag bereitzustellen, wenn der primäre DNS-Server für den Host nicht erreichbar ist?
AilifvcdhrCMT fertig
paj28
2016-10-23 08:37:17 UTC
view on stackexchange narkive permalink

Eine kleine Designänderung an DNS-Caches kann einen großen Unterschied machen. Die meisten DNS-Caches entfernen einen Eintrag, wenn die TTL abläuft. Ein Cache könnte stattdessen den Eintrag behalten, ihn jedoch als abgelaufen markieren. Wenn eine Abfrage für einen abgelaufenen Eintrag eingeht, versucht der Cache zunächst, den Namen im Upstream aufzulösen. Wenn dies fehlschlägt, geben Sie den abgelaufenen Eintrag zurück. Ich gehe davon aus, dass dies technisch gegen das DNS-Protokoll verstößt, aber immer noch ein besseres Fehlerverhalten darstellt.

Ich erwarte jedoch nicht, dass dies geschieht. Die Auswirkungen eines Ausfalls von DNS-Servern wären immer noch erheblich - alle Websites, die Sie nicht in Ihrem Cache haben. Der Fokus wird weiterhin darauf liegen, die DNS-Infrastruktur betriebsbereit zu halten.

Update: @MatthieuM hat darauf hingewiesen, dass EdgeDNS dies tut.

Beachten Sie, dass [EdgeDNS] (https://github.com/jedisct1/edgedns) genau dies tut.Es behält abgelaufene Einträge bei und verwendet sie, bis es gelingt, eine Antwort vom autorisierenden DNS für den Eintrag zu erhalten.
Dies ist eine Sicherheitslücke.Wenn ich die Kontrolle über die alte IP-Adresse einer Site erhalte, betrüge ich die Leute dazu, meine Seite zu besuchen, indem ich ihr DNS mache.Dies kann lange nach den IP-Änderungen passieren, wenn ich weiß, dass jemand die Site schon lange nicht mehr besucht hat.
Gibt es eine Software, die dies für Windows tut?@MatthieuM.
@BlueRaja-DannyPflughoeft - Jede Site, auf der die Sicherheit wichtig ist, sollte über SSL verfügen, das dies verhindert
@paj28 Es ist keine mittelmäßige Antwort, es ist die richtige Antwort.Die derzeit akzeptierte Antwort lautet im Wesentlichen "weil Browser-basierte DNS-Caches derzeit nicht so entworfen werden", während diese Antwort der Frage nach dem "Warum" auf den Grund geht, indem sie dies erklärt, während Browser die Auswirkungen des DNS-Ausfalls mildern könntenDies wäre von begrenzter Wirkung.
Unter dem Gesichtspunkt der Leistung würde ich denken, dass es vorteilhaft wäre zu sagen, dass, wenn das Programm eine Verbindung zu einem Host herstellen möchte, dessen Cache-Eintrag mehr als z.5 Minuten alt, aber weniger als z.B.Nach einem Tag sollte das Programm sofort eine Verbindung über die zwischengespeicherte Adresse herstellen. Der Cache sollte jedoch eine DNS-Anforderung ausgeben und den Cache aktualisieren, wenn die Antwort eine neue Adresse angibt.
@paj28 "Die Auswirkungen eines Ausfalls von DNS-Servern wären immer noch erheblich - alle Websites, die Sie nicht in Ihrem Cache haben." Angenommen, wir sprechen über den Browser-Cache.Aber konnten nicht autorisierende DNS-Server nicht dasselbe tun?Wenn Dyn dann wieder ausfällt, behalten alle anderen DNS-Server die DNS-Einträge im Cache.Kleinere Websites würden nicht immer zwischengespeichert, aber es würde eine Tonne schwieriger machen, große Teile des Netzes zu entfernen, indem ein zentrales Ziel erreicht wird.(Es sei denn natürlich, ich irre mich).
AiliiguxpxCMT - Gute Idee!
Das DDoS bewegt sich nur den Stapel nach oben ....
@IanRingrose - Zu wahr :( Wir haben derzeit keine umfassende Lösung für DDoS, sondern nur eine Reihe von Abschwächungen von Syn-Cookies bis hin zu verteilten Scrubbern. Derzeit sind taktische Gegenmaßnahmen die besten, die jeder hat.
grochmal
2016-10-23 07:23:07 UTC
view on stackexchange narkive permalink

@Shackledtodesk ist korrekt (+1), der Browser-Cache bleibt für kurze Zeit erhalten. Ironischerweise wurden einige der besten Referenzen zu dieser Tatsache von Dyn veröffentlicht:

Ein einfaches Programm, das ich geschrieben habe, um die 1000 besten Websites abzufragen (laut Alexa), zeigt 212 Treffer mit einem TTL-Wert von 300 (5 Minuten), 192 Treffer mit einer TTL von 3600 (1 Stunde), 116 Treffer mit einer TTL von 600 (10 Minuten) und 79 Treffer mit einer TTL von 86400. Der Rest der Ergebnisse hatte Treffer in den 50er Jahren und weniger Dies reicht von einer TTL von 5 (1 Treffer) bis zu einer TTL von 864000 (1 Treffer).

Dies ist ein Zitat von Ben Anderson, einem Forscher und technischen Redakteur bei Dyn.

Wenn Sie sich diese Ergebnisse ansehen, können Sie feststellen, dass Ihr Browser über einen kleinen Zeitraum den DNS-Cache ungültig macht. Und Ihre DNS-Auflösung schlägt fehl.

Referenz


PS: Um die Verletzung zusätzlich zu beleidigen, argumentiert der verlinkte Artikel von Dyn, dass der DNS-Cache des Browsers eine schlechte Sache ist. sub>

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

Browser zwischenspeichern keine DNS-Einträge

Dies ist eine Funktion des Resolvers, der eine Ergänzung zum Netzwerkstapel darstellt.

DNS Caching würde nicht viel helfen

Die mirai versklavten Geräte sind in der Lage, eine beliebige Anzahl verschiedener Angriffe auszuführen, wie vom CnC angewiesen. Sowohl beim Angriff auf Krebbs Sicherheit als auch auf DYN füllten die Angreifer einfach ihre Bandbreite mit Verkehr - es war eigentlich egal, um welchen Verkehr es sich handelte. Während DNS für einen indirekten Verstärkungsangriff ausgenutzt werden kann, gilt dies meines Wissens nicht für Angriffe auf Krebss und DYN. DNS wurde bei letzterem Angriff verwendet, da es unpraktisch war, echten Datenverkehr aus dem Angriffsdatenverkehr herauszufiltern.

Wenn die DNS-Einträge an einer anderen Stelle zwischengespeichert wurden, auf die normale Benutzer zugreifen können (in DNS-Caches, nicht in Browsern) Der Angriff hätte viel weniger Auswirkungen gehabt, das DYN-Geschäftsmodell zielt jedoch hauptsächlich auf DNS-Hosting und Endbenutzerbereitstellung ab. Letzteres wäre trotzdem gestört worden. Das Vorhandensein der Daten in Zwischen-Caches / anderen Endbenutzer-Anbietern hängt vom Verkehrsaufkommen und der Ablaufzeit ab (meiner Erfahrung nach sind Ablaufzeiten von weniger als 2 Stunden unwirksam). Darüber hinaus verfügt eine Site mit hohem Datenverkehr über mehrere geografische Präsenzpunkte sowie mehrere A-Einträge an jedem POP. Multicast-Adressen sind teuer und (aufgrund des Edns-Client-Subnetzes) nur für DNS erforderlich (ohne DOS-Angriffe) ).

Sie nicht?Vielleicht speichert Chrome zumindest DNS-Einträge zwischen?Oder ist "Cache" nicht genau das richtige Wort für das, was sie tun?chrome: // net-internals / # dns
Caches, Caches überall 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

Der DNS wurde hauptsächlich entwickelt, um eine stabile (und lose kohärente ) Zuordnung von Namen zu Adressen bereitzustellen. In den guten alten Tagen lag die Time To Live (TTL) für DNS-Einträge normalerweise im Bereich von 3600 bis 86400 Sekunden. Es wurde erwartet, dass jeder, der nach einem bestimmten Datensatz fragte, immer die gleiche Antwort erhalten würde .

Einige Leute dachten dann, wenn sie wirklich kurze TTLs verwenden würden, könnten sie dumme DNS-Tricks ausführen ®, die den DNS dazu zwingen, Dinge zu tun, für die er nicht vorgesehen war .

Einige Load-Balancing-Appliances verfügen beispielsweise über integrierte DNS-Server, die den Zustand des Back- überwachen. Beenden Sie die Server und stellen Sie basierend auf ihrer aktuellen Auslastung eine andere Antwort auf jede eingehende Anforderung bereit.

Einige Bediener überprüfen die Quelladresse der eingehenden Abfrage und senden unterschiedliche Antworten zurück, um den Client zum nächsten Anwendungscluster umzuleiten (auch bekannt als "Global Server Load Balancing").

Apropos Angriff der letzten Woche auf Dyn - Früher war es eine gute DNS-Praxis, Ihre autorisierenden DNS-Server auf mehrere Netzwerke (und / oder Betreiber) zu verteilen Bei einem Angriff oder Ausfall eines DNS müssen Sie immer noch DNS ausführen.

Bei den oben genannten "Tricks" handelt es sich jedoch um maßgeschneiderte Tricks Algorithmen und "Intelligenz", die dem DNS selbst nicht eigen sind, so dass es sehr schwierig (wenn nicht unmöglich) wird, sich auf die integrierte Ausfallsicherheit des DNS zu verlassen. Ein System, das synthetisierte Antworten generiert, anstatt eine Zonendatei zu verwenden, kann mit AXFR nicht von mehreren Operatoren gemeinsam genutzt werden.

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

Der DNS-Cache verringert DDOS-Angriffe auf DNS-Anbieter, der Cache sollte jedoch nur eine kurze Zeit dauern.

Die maximale Zeit, die ein Ressourceneintrag zwischengespeichert werden soll, wird vom Server als TTL angegeben.

Die Bedeutung des TTL-Felds ist ein Zeitlimit dafür, wie lange eine RR in einem Cache aufbewahrt werden kann. Diese Grenze gilt nicht für maßgebliche Daten in Zonen. Es wird auch eine Zeitüberschreitung festgestellt, jedoch durch die Aktualisierungsrichtlinien für die Zone. Die TTL wird vom Administrator für die Zone zugewiesen, aus der die Daten stammen. Während kurze TTLs verwendet werden können, um das Caching zu minimieren, und eine TTL von Null das Caching verbietet, legen die Realitäten der Internetleistung nahe, dass diese Zeiten für den typischen Host in der Größenordnung von Tagen liegen sollten. Wenn eine Änderung erwartet werden kann, kann die TTL vor der Änderung reduziert werden, um Inkonsistenzen während der Änderung zu minimieren, und nach der Änderung wieder auf ihren vorherigen Wert erhöht werden.

(aus RFC entnommen) 1034)

Der Server kann dem Resolver mitteilen, dass der Datensatz über 68 Jahre zwischengespeichert werden kann, was normalerweise lang genug ist, um einen Angriff zu beheben. Server tun dies jedoch normalerweise nicht. Große Websites möchten nicht, dass ein Fehler im Netzwerk sie für lange Zeit beeinträchtigt. Eine Möglichkeit, dies zu tun, besteht darin, die TTL ihrer Ressourceneinträge auf eine relativ kurze Zeit festzulegen, z. B. 5 Minuten. Auf diese Weise können sie ihren DNS-Eintrag ändern, falls einige ihrer Server ausfallen. Und Clients, die die RR alle 5 Minuten abfragen, sind nicht viel überlastet, als sie nur einmal abzufragen.

Außerdem zwischenspeichern die Anwendungen die RR normalerweise im RAM. Die Datensätze gehen also verloren, sobald die Anwendung neu gestartet wird. (Es gibt Ausnahmen. Sie können beispielsweise den BIND-Cache im Dateisystem ablegen.)

Ich möchte hier Namecoin erwähnen. Es speichert Domänennamen auf der Festplatte in einer Blockchain. Wenn Ihre Website eine .bit-Domain verwendet, ist es unwahrscheinlich, dass sie nur aufgrund des DNS-Anbieters ausfällt.



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...