DNS-Dampening: Angriffe bremsen, Resolver erhalten
Zusammenfassung
Lutz Donnerhacke testet im September 2012 einen eigenen Patch für BIND, der DNS-Anfragen mit Strafpunkten bewertet und auffällige Quellen vorübergehend ignoriert. Die Messdaten zeigen Überraschungen: Interne Prüfskripte lösten das Dampening aus, und ein fehlendes Minuszeichen ließ Strafpunkte exponentiell wachsen statt verfallen. Nach den Korrekturen erkannte der Patch Angriffe binnen rund 40 Paketen, ohne normale Anfragen zu stören.
Worum es ging
2012 missbrauchten Angreifer offene und autoritative Nameserver für Verstärkungsangriffe: Eine kleine Anfrage mit gefälschter Absenderadresse, etwa vom Typ ANY, erzeugt eine große Antwort an das Opfer. In der Statistik von Lutz Donnerhacke steht ANY mit 56.926 Anfragen auf Platz zwei hinter A. Dampening soll solche Quellen ausbremsen, ohne den Nameserver für alle anderen abzuschalten.
Die Lösung, die sich durchsetzte, folgt einer ähnlichen Idee. Response Rate Limiting (RRL) begrenzt gleiche Antworten an dieselbe Gegenstelle über ein Guthabenmodell; ISC liefert es ab BIND 9.10 mit, für BIND 9.9 musste es beim Bauen ausdrücklich aktiviert werden. RFC 8482 erlaubt seit 2019 außerdem, ANY-Anfragen nur noch minimal zu beantworten.
Was die Messung lehrte
Lokale Netze nimmt Lutz Donnerhacke vom Dampening aus: Wer für sie gefälschte Absender annimmt, misstraut dem eigenen Netz. Die offenen Fragen am Ende sind bis heute die richtigen, etwa was passiert, wenn ein Angreifer die Adresse des Resolvers eines großen Providers fälscht.
Ideen
- Dampening sammelt Strafpunkte je Quelle und unterdrückt auffällige Anfragen vorübergehend.
- Frühe Veröffentlichung deckte einen schweren Fehler in der Heapverwaltung auf.
- Interne Konsistenzprüfungen können wie Angriffsverkehr aussehen.
- Lokale Netze gehören auf eine Ausnahmeliste.
- Strafpunkte müssen mit der Zeit verfallen.
- Feste Ressourcengrenzen verhinderten, dass ein Programmierfehler den Server sprengte.
Einsichten
- Abwehrlogik ohne Produktionsdaten wird leicht selbst zur Verfügbarkeitsstörung.
- Ein falscher Algorithmus kann als ungeplanter Belastungstest trotzdem nützen.
- Quellenbasierte Sperren treffen bei gefälschten Absendern auch Unbeteiligte.
Zitate
- Release often, release early (Lutz Donnerhacke)
Fakten
- Der Patch setzte auf BIND 9.9.1-P3 auf und griff direkt im Anfragepfad ein.
- Ein internes Prüfskript erzeugte binnen weniger Minuten rund 40.000 Anfragen.
- In der Statistik folgten auf 165.976 A-Anfragen bereits 56.926 vom Typ ANY.
- ISC liefert Response Rate Limiting ab BIND 9.10 als Standardfunktion aus.
- RFC 8482 von 2019 erlaubt minimale Antworten auf ANY-Anfragen.
Referenzen
- Lutz Donnerhacke: Erste Ergebnisse vom DNS Dampening
- BCP 38: Filterung gefälschter Quelladressen.
- BIND 9.9.1-P3: untersuchte Nameserver-Version.
- ISC: Using the Response Rate Limiting Feature
- RFC 8482: Providing Minimal-Sized Responses to DNS Queries That Have QTYPE=ANY (2019)
- RFC 5358: Preventing Use of Recursive Nameservers in Reflector Attacks (2008)
Bemerkungen
- Der Beitrag dokumentiert eigene Programmierfehler ebenso offen wie die Korrekturen.
Empfehlungen
- Aktiviere auf autoritativen Nameservern Response Rate Limiting.
- Nimm interne Monitoring- und Prüfsysteme ausdrücklich von Ratenbegrenzungen aus.
- Begrenze Zustandstabellen von Abwehrmechanismen auf eine feste Größe.
Links zur Originalquelle und zum Webarchiv öffnen einen neuen Tab.