Cache Poisoning

Cache Poisoning

Copyright © Shutterstock / REDPIXEL.PL

Was ist Cache-Poisoning?

Als Cache-Poisoning, auf Deutsch “Cache Vergiftung”, wird ein Hacker-Angriff auf den Cache eines DNS-Nameserver bezeichnet. Bei dieser Attacke werden vom Angreifer veränderte Domain Name System-Daten in die Cache-Datenbank des DNS-Nameservers eingefügt.

Ziel von Cache-Poisoning

Ziel eines DNS-Cache-Poisoning-Angriffs ist es, eine IP-Adresse zu fälschen, um Internetnutzer an diese IP-Adresse umzuleiten. Die gefälschte IP-Adresse bezieht sich fast immer auf einen Server, der vom Angreifer gesteuert wird.

Cache Poisoning Attacken werden häufig verwendet, um Computerwürmer und andere Malware zu verbreiten. Eine andere Bezeichnung für Cache-Poisoning ist DNS-Spoofing. Das Domain Name System (DNS) ist ein System, das Domänennamen eindeutige IP-Adressen zuordnet. Browser, die eine Verbindung zum Internet oder zu anderen Netzwerken herstellen wollen, benötigen DNS, um URLs, E-Mail-Adressen und andere von Benutzern lesbare Domänennamen in ihre entsprechenden IP-Adressen aufzulösen.

Beim Aufruf einer Webseite wird die zu einem Domainnamen gehörende IP-Adresse im DNS-Cache auf einem lokalen Computer, einem Router oder dem DNS-Server des Internetdienstanbieters gesucht. Findet der DNS-Server die gesuchte IP-Adresse, sendet er sie zurück an den Browser, sodass die Verbindung zur Website aufgebaut werden kann.

Dieser Vorgang wird als DNS-Lookup bezeichnet. Der DNS-Server speichert diese Verknüpfung von Domainnamen und IP-Adresse in seinem Cache, um bei einer erneuten Anfrage schneller Antworten zu können.

Wie vergiften Angreifer den DNS Cache?

Angreifer können eine Cache-Poisoning Attacke durchführen, indem sie sich selbst als DNS-Nameserver ausgeben, und dann die Antwort fälschen, wenn der DNS-Resolver einen Nameserver abfragt. Dies ist möglich, weil DNS-Server UDP (User Datagram Protokoll) anstelle des Transmission Control Protocol/Internet Protocol (TCP/IP) verwenden und keine Überprüfung der DNS-Informationen erfolgt.

Bei der Verwendung des User Datagram Protokolls müssen beide Kommunikationspartner einen ‘Handshake’ durchführen, um die Kommunikation einzuleiten und die Identität der Geräte zu überprüfen. Bei UDP gibt es keine Garantie dafür, dass eine Verbindung geöffnet ist, der Empfänger bereit ist zu empfangen oder dass der Absender der ist, von dem er sagt, dass er es ist.

UDP ist aus diesem Grund anfällig für Fälschungen – ein Angreifer kann eine Nachricht über UDP senden und so tun, als wäre er eine Antwort von einem seriösen Server, indem er die Header-Daten fälscht. Wenn ein DNS-Resolver eine gefälschte Antwort erhält, akzeptiert und speichert er die Daten unkritisch. Es erfolgt keine Überprüfung der Richtigkeit der Informationen und, ob die Daten von einer legitimen Quelle stammen.

Fehlende Überprüfung

Diese fehlende Überprüfung ist dadurch bedingt, dass das Domain Name System aus den frühen Tagen des Internets stammt, als die einzigen beteiligten Parteien Universitäten und Forschungszentren waren. Es gab damals keinen Grund zu erwarten, dass jemand versuchen würde, gefälschte DNS-Informationen zu verbreiten.

Trotz dieser Schwachstelle im DNS Prozess sind Cache-Poisoning Angriffe nicht einfach durchzuführen. Da der DNS-Resolver den autorisierenden Nameserver tatsächlich abfragt, haben Angreifer nur wenige Millisekunden Zeit, um die gefälschte Antwort zu senden, bevor die echte Antwort vom Nameserver eingeht. Angreifer müssen außerdem eine Reihe von Faktoren kennen oder erraten, um Cache-Poisoning Angriffe durchzuführen.

Angreifer müssen wissen, welche DNS-Abfragen vom Ziel-DNS-Resolver nicht zwischengespeichert werden, sodass der Resolver den autorisierenden Nameserver abfragt und das Einschleusen der gefälschten Informationen möglich ist. Zudem muss bekannt sein oder erraten werden, welchen Port der DNS-Resolver verwendet und an welchen autorisierenden Nameserver die Abfrage gestellt wird.

Schutz vor Cache-Poisoning Attacken

Protokolle wie SSL-Secure-Socket-Layer zur verschlüsselten Datenübertragung können dazu beitragen, Cache-Poisoning Attacken zu verhindern. Eine weitere Schutzmaßnahme ist die Verwendung von DNSSEC (Domain Name System Security Extensions).

Wissenswert

Ähnlich wie SSL/TLS verwendet DNSSEC eine kryptografische Verschlüsselung mit öffentlichem Schlüssel. DNSSEC dient der Überprüfung der DNS-Datenintegrität und des Datenursprungs. DNSSEC wurde 2005 veröffentlicht und im Jahr 2010 auf der Stammebene des Internets implementiert.


Sie haben noch Fragen?

Kontaktieren Sie uns

Kostenloser SEO-Check der OSG


Weitere Inhalte