DNS Grundlagen und Funktionsweise

Auf dieser Seite geben wir einen kurzen Umriß in die Funktionsweise des Domain Name Systems. Detailliertere Darstellungen finden sich nicht nur im Internet sondern auch im Standardwerk "DNS and BIND" von Cricket Liu und Paul Albitz, erschienen im O'Reilly-Verlag. Dieses ist wohl im Regal jedes DNS-Administrators zu finden (es konzentriert sich aber auf BIND 9.3), und die 5te Ausgabe schneidet das Thema DNSSEC an, ist aber absolut veraltet.

DNS Funktionsweise

DNS, das Domain Name System, bildet eine der Grundlagen des heutigen Internet. In den Anfängen des "ARPAnet" in den 1970er Jahren wurden die IPs der wenigen Rechner in lokalen hosts-Dateien eingetragen. Dies war aber mit einer Reihe von Problemen behaftet: Datenaufkommen zur Übertragung der Dateien, Namenskollisionen und Inkosistenz.

Dies führte 1983 zur Entwicklung des Domain Name Systems (DNS), das dann in 1987 als RFC 4034 und RFC 4035 definiert wurde. Der hierarchische Aufbau erlaubt die Kontrolle der Hosteinträgen in lokalen Datenbanken, so genannten "Zonen", die aber durch ein Client/Server-System zu einer übergeordneten Datenbankstruktur zusammen gefügt werden, so dass alle Rechner im gesamten Internet bekannt sind.

Robustheit und angemessene Geschwindigkeit werden durch Replikation und Caching gewährleistet.

Hierarchischer Aufbau und Delegation

Ausgehend von der Root-Domäne "." ist jeder DNS-Eintrag hierachisch über die nachfolgenden TLDs, SLDs, etc. aufgebaut. Wobei diese jeweils mit einem Punkt getrennt zusammengesetzt den vollständigen Zonennamen ergeben. Z.B. de.wikipedia.org

 

Hierarchischer Namesraum

 

Jede Zone ist nur für ihre Einträge verantwortlich, d.h. sie ist dafür autoritativ verantwortlich. An nachfolgende Zonen (in der Baumstruktur nach unten gehend) wird die Verantwortung delegiert.

So kann, ausgehend von der root "."-Zone, durch die sukzessive Abfrage der für die Zone jeweiligen autoritativen Nameserver, die jeweils die Verantwortung delegieren, wenn sie selbst keine Antwort liefern können, der vollständige Domänenname ermittelt werden.

Das nachfolgende Bild illustriert dieses hierarchische Modell:

Hierarchische DNS-AbfrageNB: Das obige Bild ist mit einer Video-Animation der Darstellung der Abfrage verbunden.

 

DNS Schwachpunkte

DNS ist unverschlüsselt und sowohl die Behandlung von Anfragen durch Nameserver, als auch deren Antworten basieren auf Vertrauen. Während DNS mit der wachsenden Größe des Internet gut skalierte, ist es in der heutigen Zeit zunehmend Attacken böswilliger Angreifer ausgesetzt.

Einige Angriffspunkte setzen an der verteilten Struktur von DNS an, und greifen an der Übertragungswegen oder direkt auf den Nameservern an:

 

DNS-Angriffspunkte

 

Geänderte Zonen-Dateien

Wenn ein Angreifer in einem Slave-NS eingebrochen ist, kann er dort Zonen-Dateien manipulieren, die dann ausgeliefert werden, wenn der Slave Anfragen beantwortet.

Die Übertragung vom Master zu den Slaves ist grundsätzlich auch gefährdet. Diese kann aber auch über TSIG-Schlüssel abgesichert werden - dies Verwaltung gemeinsamer Schlüsselgeheimnisse zwischen Master und Slave (kein PKI) kann aber bei vielen Slaves aufwändig werden.


DNS Spoofing

Angreifer können mittels DNS-Spoofing Besucher von Webseiten auf ihre eigenen Server umleiten. Dazu wird einem anfragenden Resolver eine falsche Antwort gesendet, die bei richtiger Antwort-ID für die legitime Antwort auf die eigene DNS-Anfrage gehalten wird. Die kann der Angreifer aufgrund der 16Bit-Beschränkung der Paket-ID durch eine Flut von Antworten mit jeweils unterschiedlicher ID - und etwas Glück - vor Eintreffen der Antwort des legitimen echten Nameservers erreichen. Die nachfolgend eintreffende Antwort des echten Nameservers wird dann durch den Client ignoriert.

 

DNS Spoofing

NB: Das Bild ist mit einem Video einer Animation verlinkt.


Cache poisoning

Geschieht DNS-Spoofing in massivem Maße können der Cache von Resolvern mit gefälschten Einträgen versetzt werden ("Cache poisoning").

 

Cache impersonation ("Man-in-the-middle"-Attacke)

Schafft es ein Angreifer, sich als caching Nameserver gegenüber einem Resolver auszugeben, kann er falsche Antworten zurückliefern und den Verkehr auf seine Server umleiten.

 

DDoS

"Distributed Denial of Service" gegen resolving Nameserver können den Nameserver so lahm legen, dass er keine regulären Anfragen mehr bearbeiten kann. Dadurch sind die auf diesem Nameserver gecachten Zonen/Domänen für Benutzer, die über diesen Resolver Anfragen durchführen, nicht mehr erreichbar.

 

DNSSEC - DNS SECurity Extensions

Gegen Angriffe auf die ersten vier genannten Schwachpunkte schützt die Verwendung von DNSSEC.

Schutz durch DNSSEC

 

DDoS-Attacken werden aber durch die längeren Antworten inklusive Signaturen allerdings verstärkt. Dem wird aber - in naher Zukunft - es existiert ein IETF-Draft - mit "Aggressivem Nutzen von NSEC/NSEC3" entgegen gewirkt werden können. Siehe auch diesen kurzen Vortrag auf der ICANN57.