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.

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

Link zum Artikel kopieren

Free DNS included with any Cloudflare plan

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 Nutzer zu falschen Websites geleitet werden. DNS-Cacheangriffe werden auch als „DNS-Spoofing“ bezeichnet. IP-Adressen sind die „Zimmernummern“ im Internet, die es dem Internet-Traffic ermöglichen, an den richtigen Orten anzukommen. DNS-Resolver-Caches sind mit dem „Gebäudeplan“ vergleichbar. Wenn sie falsche Informationen speichern, wird der Traffic 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 machen 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“ in maschinenlesbare IP-Adressen. Wenn ein Nutzer 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-Adressabfragen über einen bestimmten Zeitraum. Daher kann der Resolver künftige Abfragen 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 Nicht gecachte Antwort

DNS Gecachte Antwort:

DNS Gecachte Antwort

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-Cacheangriffsverfahren:

DNS-Cacheangriffsverfahren

Manipulierter DNS-Cache:

Manipulierter 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 betreibt, hackt oder sich physischen Zugriff dazu 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 den Zugriff auf bestimmte Websites oder Webressourcen zu verhindern.

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

DNSSEC steht für Domain Name System Security Extensions und dient 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 zu 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.