Was ist ein DNS-Cacheangriff? | DNS-Spoofing

Angreifer können den DNS-Cache „vergiften“, indem sie die DNS-Resolver dazu bringen, falsche Informationen im Cache zu speichern. Das führt dazu, dass der Resolver den Clients die falsche IP-Adresse sendet und Benutzer, die zu einer Website navigieren möchten, werden zur falschen Adresse geleitet.

Share facebook icon linkedin icon twitter icon email icon

DNS-Spoofing

Lernziele

Nach Lektüre dieses Artikels können Sie Folgendes:

  • DNS-Cacheangriffe definieren
  • Funktionsweise des DNS-Caching
  • Erklären, wie Angreifer einen DNS-Cache manipulieren können
  • Wie DNSSEC zur Vermeidung von DNS-Cacheangriffen beiträgt

Was ist ein DNS-Cacheangriff?

Stellen Sie sich vor, die Abschlussklasse einer Schule spielt den Neuankömmlingen einen Streich und tauscht alle Klassenzimmernummern in der Schule aus. Die neuen Schüler, die das Schulgebäude nicht kennen, werden sich dann am nächsten Tag verlaufen und zu den falschen Klassenzimmern gehen. Stellen Sie sich weiter vor, dass die falschen Zimmernummern in einem Gebäudeplan notiert werden und die Schüler weiterhin zu den falschen Zimmern gehen, bis das jemandem auffällt und der Gebäudeplan korrigiert wird.

Mit einem DNS-Cacheangriff werden falsche Informationen in einen DNS-Cache eingeschleust, sodass DNS-Abfragen eine falsche Antwort liefern und die Benutzer zu falschen Websites geleitet werden. DNS-Cacheangriffe werden auch als ‚DNS-Spoofing‘ bezeichnet. IP-Adressen sind die ‚Zimmernummern‘ im Internet, die es dem Internetdatenverkehr ermöglichen, an den richtigen Orten anzukommen. DNS-Resolver-Caches sind mit dem ‚Gebäudeplan‘ vergleichbar. Wenn sie falsche Informationen speichern, wird der Datenverkehr an die falschen Orte geleitet, bis die Cacheinformationen korrigiert werden. (Beachten Sie, dass die reale Website damit nicht von der zugehörigen realen IP-Adresse getrennt wird.)

Weil die DNS-Resolver für gewöhnlich die Daten in ihrem Cache nicht verifizieren können, bleiben die falschen DNS-Informationen im Cache, bis die TTL (Time To Live) abgelaufen ist oder sie manuell entfernt werden. Eine Reihe von Schwachstellen ermöglichen DNS-Cacheangriffe. Das Hauptproblem ist jedoch, dass DNS für ein viel kleineres Internet konzipiert wurde und auf einem Vertrauensgrundsatz basiert (ähnlich wie BGP). Ein sichereres DNS-Protokoll namens DNSSEC zielt darauf ab, einige dieser Probleme zu lösen, ist aber noch nicht weit verbreitet.

Was tun DNS-Resolver?

DNS-Resolver liefern Clients die IP-Adresse, die mit einem Domain-Namen verknüpft ist. Mit anderen Worten, sie übersetzen für Menschen lesbare Websiteadressen wie ‚cloudflare.com‘ und übersetzen sie in maschinenlesbare IP-Adressen. Wenn ein Benutzer versucht, zu einer Website zu navigieren, sendet ein Betriebssystem eine Anfrage an einen DNS-Resolver. Der DNS-Resolver antwortet mit einer IP-Adresse. Der Webbrowser liest diese Adresse und beginnt mit dem Laden der Website.

Wie funktioniert DNS-Caching?

DNS-Resolver speichern die Antworten auf IP-Adressanfragen über einen bestimmten Zeitraum. Daher kann der Resolver künftige Anfragen viel schneller beantworten, ohne mit den vielen Servern, die an einer typischen DNS-Auflösung beteiligt sind, kommunizieren zu müssen. Wie lange DNS-Resolver die Antworten in ihrem Cache speichern, wird durch die festgelegte Gültigkeitsdauer (TTL, Time To Live) der betreffenden IP-Adresse bestimmt.

DNS Nicht gecachte Antwort:

DNS uncached response

DNS Gecachte Antwort:

DNS cached response

Wie manipulieren Angreifer DNS-Caches?

Angreifer können DNS-Caches manipulieren, indem sie sich für DNS-Nameserver ausgeben, eine Anfrage an einen DNS-Resolver senden und die Antwort fälschen, wenn der DNS-Resolver einen Nameserver abfragt. Das ist möglich, weil DNS-Server UDP statt TCP verwenden und weil DNS-Informationen derzeit nicht verifiziert werden.

DNS-Cacheangriffssverfahren:

DNS Cache Poisoning Process

Manipulierter DNS-Cache:

Poisoned DNS Cache

Statt TCP, bei dem beide Kommunikationspartner durch einen ‚Handshake‘ die Kommunikation einleiten und die Identität der Geräte verifizieren, wird für DNS-Anfragen und -Antworten das UPD-Protokoll (User Datagram Protocol) verwendet. Bei UPD ist nicht garantiert, dass eine Verbindung offen ist, dass der Empfänger bereit zum Empfang ist oder dass der Sender derjenige ist, der er vorgibt zu sein. UDP ist aus diesem Grund anfällig für Manipulationen. Ein Angreifer kann eine Nachricht per UDP senden und vorgeben, es handele sich um die Antwort eines legitimen Servers, indem er die Header-Daten fälscht.

Wenn ein DNS-Resolver eine gefälschte Antwort erhält, akzeptiert er die Daten kritiklos und speichert sie im Cache, weil er nicht verifizieren kann, ob die Informationen korrekt sind und von einer legitimen Quelle stammen. DNS wurde in den Anfangstagen des Internet entwickelt, als nur Universitäten und Forschungszentren mit dem Internet verbunden waren. Es gab keinen Grund zu erwarten, dass irgendjemand falsche DNS-Informationen streuen würde.

Trotz dieser wichtigen Schwachstellen im DNS-Cachingverfahren sind DNS-Cacheangriffe nicht einfach durchzuführen. Weil der DNS-Resolver den autoritativen Nameserver tatsächlich abfragt, haben Angreifer nur einige Millisekunden Zeit zum Senden einer falschen Antwort, bevor die echte Antwort vom autoritativen Nameserver ankommt.

Angreifer müssen eine Reihe von Faktoren kennen oder erraten, um DNS-Spoofing-Angriffe ausführen zu können:

  • Welche DNS-Abfragen nicht vom anvisierten DNS-Resolver gecacht werden, sodass der autoritative Nameserver abgefragt wird.
  • Welcher Port* für die DNS-Auflösung verwendet wird – früher wurde für alle Abfragen derselbe Port verwendet, heute wird jedes Mal ein anderer, zufälliger Port verwendet
  • Die ID-Nummer der Anfrage
  • An welchen autoritativen Nameserver die Abfrage gerichtet wird

Angreifer könnten auch auf andere Weise Zugriff auf den DNS-Resolver erlangen. Wenn eine böswillige Person einen DNS-Resolver bedient, hackt oder sich physischen Zugriff verschafft, kann sie die gecachten Daten einfacher manipulieren.

*Im Netzwerkbereich ist ein Port eine virtuelle Nachrichtenempfangsstelle. Computer verfügen über mehrere Ports mit jeweils einer eigenen Nummer. Damit Computer miteinander kommunizieren können, müssen bestimmte Ports für bestimmte Arten der Kommunikation benannt werden. Beispielsweise erfolgt die HTTP-Kommunikation immer über Port 80 und für HTTPS wird immer Port 443 verwendet.

DNS-Spoofing und Zensur

Verschiedene Regierungen haben absichtlich DNS-Caches in ihren Ländern manipuliert, um bestimmten Websites oder Webressourcen den Zugriff zu verweigern.

Wie trägt DNSSEC zur Vermeidung von DNS-Cacheangriffen bei?

DNSSEC steht fürDomain Name System Security Extensions und ist ein Mittel zum Verifizieren der Integrität und des Ursprungs von DNS-Daten. Da DNS ursprünglich ohne einen solchen Verifizierungsmechanismus konzipiert wurde, sind DNS-Cacheangriffe möglich.

Ähnlich wie TLS/SSL, verwendet DNSSEC Verschlüsselung mit öffentlichen Schlüsseln (eine Methode zum digitalen Signieren von Informationen), um Daten zu verifizieren und authentifizieren. DNSSEC-Erweiterungen wurden im Jahr 2005 veröffentlicht. Allerdings ist DNSSEC noch nicht allgemein üblich, sodass DNS immer noch anfällig für Angriffe ist.