Wenn es eine Sache gibt, die uns Hollywood-Filme lehren, dann ist es, dass Hacker clever sind und verschiedene Tricks kennen, um unsere Sicherheit zu umgehen. In der realen Welt ist ein Sicherheitsproblem oft eine Frage der Gelegenheit und nicht der Fähigkeiten. Ein „DNS-Poisoning“-Angriff passt zu dieser Beschreibung, und in der Tat musst du über die nötigen Fähigkeiten verfügen, um zu verhindern, dass deine Domain manipuliert wird.
Das Konzept ist einfach: Besucher sehen etwas, das wie deine Webseite aussieht, aber es ist betrügerisch und schädlich, während diese gefälschte Webseite ähnlich aussieht. Daher musst du verschiedene Techniken anwenden, um sicherzustellen, dass die Nutzer sicher sind und deine Webseite vor Angriffen geschützt bleibt.
In diesem Beitrag werden wir uns mit dem Konzept des DNS-Poisoning und des Domain-Poisoning befassen. Außerdem gehen wir auf einige der damit verbundenen Konzepte ein, damit du verstehst, warum deine Antwort die beste ist.
Eine Einführung in das Domain Name System (DNS)
Bevor wir uns mit dem DNS-Poisoning befassen, sollten wir über das Domain Name System sprechen. Das Surfen auf einer Webseite scheint einfach zu sein, aber unter der Haube des Servers geht eine Menge vor sich.
Es sind viele Elemente beteiligt, die dich von A nach B bringen:
- IP-Adresse. Es ist eine Reihe von Zahlen, die deine eigentliche Webadresse darstellen. Betrachte sie als die Koordinaten deines Hauses. 0.0.1:8080 ist zum Beispiel eine Standard-„localhost“-Adresse (d.h. dein Computer).
- Domain-Name. Wenn die IP-Adresse die Koordinaten darstellt, ist der Domain-Name deine Adresse, wie sie auf dem Briefumschlag steht. Natürlich ist „kinsta.com“ eines der Millionen von Beispielen.
- Eine DNS-Anfrage. Es ist ein hervorragendes Beispiel für eine High-Level-Frontend-Aufgabe mit einem komplexen Low-Level-Prozess. Betrachte eine Anfrage als eine Anfrage deines Browsers an einen speziellen Server, der die Adresse für eine Reihe von Koordinaten ermittelt.
- Ein DNS-Server. Er unterscheidet sich vom Server deiner Webseite dadurch, dass er vier Server in einem ist. Seine Aufgabe ist es, DNS-Anfragen zu bearbeiten. Wir werden in späteren Abschnitten noch etwas ausführlicher darüber sprechen.
- Rekursiver Server. Du wirst diese Server auch als „Resolving Name Server“ bezeichnen. Sie sind Teil des DNS-Lookup-Prozesses und dafür zuständig, Server nach dem Domain-Namen zu einer IP-Adresse abzufragen.
Im Großen und Ganzen macht ein DNS das Abrufen eines Domain-Namens für den Endnutzer einfach. Es ist ein zentraler Bestandteil des Internets und hat als solcher viele bewegliche Teile.
Wir werden uns als Nächstes den Suchvorgang selbst ansehen, obwohl du schon sehen kannst, dass das DNS eine wichtige Aufgabe zu erfüllen hat.
Der Prozess eines DNS-Lookups
Bitte habe etwas Geduld mit uns, während wir eine abstrakte Analogie verwenden.
Bei Aktivitäten, die Menschen an entlegene Orte führen, wie Bergsteigen oder Segeln, besteht eine besondere Gefahr: sich zu verlaufen und nicht rechtzeitig gefunden zu werden. Um gestrandete Menschen zu finden, werden traditionell Koordinaten verwendet. Sie sind eindeutig und bieten punktgenaue Genauigkeit.
Dieses Verfahren hat jedoch auch Nachteile. Erstens musst du wissen, wie du deine Koordinaten für jeden Ort berechnen kannst – schwierig, wenn du dich in einem abgelegenen Teil der Welt befindest. Zweitens musst du diese Koordinaten dem Rettungsteam mitteilen. Eine falsche Zahl und die Folgen sind fatal.
Die what3words-App macht aus dem komplexen Prozess der Koordinatenberechnung und -weitergabe eine Zusammenfassung deines Standorts in drei Wörtern. Nehmen wir zum Beispiel den Hauptsitz von Automattic:
Die Koordinaten des Ortes sind 37.744159, -122.421555. Wenn du kein Experte in Sachen Navigation bist, wirst du das aber wahrscheinlich nicht wissen. Und selbst wenn du es wüsstest, ist es sehr unwahrscheinlich, dass du sie in die Hände von jemandem bekommst, der dir helfen kann.
In aller Kürze: what3words übersetzt einen abstrakten Satz von Koordinaten in drei einprägsame Wörter. Im Fall der Automattic-Büros heißt es decent.transfers.sleeps:
Damit kann fast jeder, der Zugang zu der App hat, eine komplexe globale Positionsbestimmung durchführen. Es hat schon vielen Zivilisten das Leben gerettet.
Dies ist mit einer DNS-Abfrage vergleichbar, denn der Prozess ist ähnlich. Im Fall von what3words fragt der Retter die App nach den Koordinaten einer Wortfolge. Die Anfrage wird über die Server geschickt, um die Koordinaten zu suchen und an den Endnutzer zurückzugeben, wenn sie gefunden wurden.
Ein DNS-Lookup hat einen ähnlichen Ablauf:
- Dein Browser fordert die IP-Adresse für einen Domain-Namen an.
- Dein Betriebssystem (OS) bittet den rekursiven Server, den Domain-Namen zu finden und beginnt einen Durchlauf durch seine Sammlung von Servern.
- Wenn es den Domain-Namen findet, wird er an den Browser zurückgegeben.
Einer der Nachteile von what3words ist, dass eine Wortkette nicht so genau ist wie eine Reihe von Koordinaten. Das bedeutet, dass du einen allgemeinen Standort schnell bestimmen kannst, aber möglicherweise länger brauchst, um die gestrandete Person zu finden.
Ein DNS-Lookup hat ebenfalls Nachteile, die böswillige Angreifer ausnutzen können. Bevor wir uns damit befassen, machen wir einen kurzen Abstecher zum Caching, um zu sehen, wie es die Suche beschleunigen kann.
DNS-Caching
Ähnlich wie beim Web-Caching kann das DNS-Caching dabei helfen, regelmäßige Abfragen an den Server zurückzurufen. Dadurch wird der Abruf einer IP-Adresse bei jedem neuen Besuch beschleunigt.
Kurz gesagt, der Cache befindet sich innerhalb des DNS-Serversystems und erspart den zusätzlichen Weg zum rekursiven Server. Das bedeutet, dass ein Browser eine IP-Adresse direkt vom DNS-Server abrufen und die GET-Anfrage in kürzerer Zeit abschließen kann.
Du findest DNS-Caches in deinem gesamten System. Dein Computer hat zum Beispiel einen DNS-Cache, genauso wie dein Router und dein Internetdienstanbieter (ISP). Oft ist dir gar nicht bewusst, wie sehr dein Surferlebnis vom DNS-Caching abhängt – bis du Opfer von DNS-Poisoning wirst.
Was DNS Poisoning ist
Nachdem du nun das Konzept des DNS-Lookups und den gesamten Prozess des Abrufs einer IP-Adresse verstanden hast, können wir sehen, wie es ausgenutzt werden kann.
Oft wird DNS Poisoning auch als „Spoofing“ bezeichnet, weil eine betrügerisch aussehende Webseite in der Kette Teil des Angriffs ist.
Wir werden noch ausführlicher auf all diese Aspekte eingehen, aber du solltest wissen, dass DNS Poisoning oder Spoofing ein schädlicher Angriff ist, der psychische, monetäre und ressourcenbezogene Probleme für die Nutzer und das Internet verursachen kann.
Doch zuerst wollen wir uns mit dem Cache Poisoning befassen.
Wie DNS-Spoofing und Cache Poisoning funktionieren
Da der gesamte Prozess des Manipulierens komplex ist, haben die Angreifer viele verschiedene Möglichkeiten entwickelt, um ihr Ziel zu erreichen:
- Machine-in-the-Middle. Dabei schaltet sich ein Angreifer zwischen den Browser und den DNS-Server, vergiftet beide und leitet einen Nutzer auf eine betrügerische Webseite auf seinem eigenen Server um.
- Server-Hijacking. Wenn ein Angreifer in den DNS-Server eindringt, kann er ihn so umkonfigurieren, dass er alle Anfragen an deine Webseite weiterleitet.
- Poisoning durch Spam. Im Gegensatz zum Server-Hijacking wird bei diesem Ansatz die Client-Seite (d.h. der Browser) vergiftet. Der Zugang wird oft über Spam-Links, E-Mails und betrügerische Anzeigen gewährt.
- „Geburtstagsangriffe“. Dies ist ein komplexer kryptografischer Angriff, der einige weitere Erklärungen erfordert.
Ein Geburtstagsangriff basiert auf dem „Geburtstagsproblem„. Dabei handelt es sich um ein Wahrscheinlichkeitsszenario, das (in aller Kürze) besagt: Wenn sich 23 Personen in einem Raum befinden, besteht eine 50%ige Chance, dass zwei von ihnen denselben Geburtstag haben. Wenn mehr Leute im Raum sind, steigt die Wahrscheinlichkeit.
Das bedeutet DNS-Poisoning auf der Grundlage der Kennung, die die DNS-Abfrage mit der GET-Antwort verbindet. Wenn der Angreifer eine bestimmte Anzahl von zufälligen Anfragen und Antworten sendet, ist die Wahrscheinlichkeit hoch, dass eine Übereinstimmung zu einem erfolgreichen Vergiftungsversuch führt. Ab etwa 450 Anfragen liegt die Wahrscheinlichkeit bei 75 %, und bei 700 Anfragen ist es fast garantiert, dass ein Angreifer den Server knackt.
Kurz gesagt, Angriffe auf den DNS-Server finden in den meisten Fällen statt, weil ein böswilliger Nutzer dadurch mehr Möglichkeiten hat, deine Webseite und deine Nutzerdaten zu manipulieren. Außerdem gibt es keine Überprüfung der DNS-Daten, weil die Anfragen und Antworten nicht über das Transmission Control Protocol (TCP) laufen.
Die Schwachstelle in der Kette ist der DNS-Cache, da dieser als Speicher für DNS-Einträge dient. Wenn ein Angreifer gefälschte Einträge in den Cache einspeisen kann, findet sich jeder Nutzer, der darauf zugreift, auf einer betrügerischen Webseite wieder, bis der Cache abläuft.
Angreifer suchen oft nach einigen Signalen, Schwachstellen und Datenpunkten, die sie ins Visier nehmen können. Sie suchen nach DNS-Anfragen, die noch nicht zwischengespeichert wurden, weil der rekursive Server die Anfrage irgendwann ausführen muss. Außerdem wird ein Angreifer nach dem Nameserver suchen, an den eine Anfrage geht. Sobald er diesen kennt, sind der Port, den der Resolver verwendet, und die Request-ID-Nummer entscheidend.
Es ist zwar nicht notwendig, alle diese Anforderungen zu erfüllen – schließlich kann ein Angreifer über zahlreiche Methoden auf Server zugreifen – aber wenn er diese Kästchen abhakt, macht er sich die Arbeit leichter.
Beispiele für DNS Poisoning in der Praxis
Im Laufe der Jahre gab es einige aufsehenerregende Beispiele für DNS Poisoning. In einigen Fällen ist es eine vorsätzliche Handlung. China betreibt zum Beispiel eine massive Firewall (die sogenannte „Great Firewall of China“), um die Informationen zu kontrollieren, die Internetnutzer erhalten.
In aller Kürze: Sie vergiften ihre eigenen Server, indem sie Besucher auf staatlich nicht genehmigte Webseiten wie Twitter und Facebook umleiten. In einem Fall haben die chinesischen Beschränkungen sogar den Weg in das Ökosystem der westlichen Welt gefunden.
Ein Netzwerkfehler eines schwedischen Internetanbieters lieferte Root-DNS-Informationen von chinesischen Servern. Dies führte dazu, dass Nutzer/innen in Chile und den USA beim Zugriff auf einige Webseiten sozialer Medien woanders hingelenkt wurden.
Ein weiteres Beispiel: Hacker aus Bangladesch, die gegen Misshandlungen in Malaysia protestierten, vergifteten viele Domains von Microsoft, Google, YouTube und anderen bekannten Webseiten. Dies scheint eher ein Fall von Server-Hijacking als ein clientseitiges Problem oder Spam gewesen zu sein.
Auch WikiLeaks ist nicht immun gegen DNS-Vergiftungsangriffe. Ein möglicher Server-Hijack vor ein paar Jahren führte dazu, dass Besucher der Webseite auf eine Seite umgeleitet wurden, die den Hackern gewidmet war.
DNS-Vergiftung muss kein komplizierter Prozess sein. Sogenannte „ethische Hacker“ – also diejenigen, die eher Sicherheitslücken aufdecken als Schaden anrichten wollen – haben einfache Methoden, um Spoofing auf ihren eigenen Computern zu testen.
Abgesehen von der Umleitung scheint DNS Poisoning auf den ersten Blick keine langfristigen Auswirkungen zu haben. Tatsächlich gibt es welche – und über die sprechen wir als Nächstes.
Warum DNS-Vergiftung und Manipulation so schädlich sind
Es gibt drei Hauptziele eines Angreifers, der DNS Poisoning auf einem Server durchführen will:
- Um Malware zu verbreiten.
- Dich auf eine andere Webseite umzuleiten, die ihnen in irgendeiner Weise nützt.
- Informationen zu stehlen, entweder von dir oder einem anderen Unternehmen.
Natürlich ist es nicht schwer zu verstehen, warum DNS Poisoning oder Spoofing ein Problem für ISPs, Serverbetreiber und Endnutzer ist.
Wie wir bereits erwähnt haben, ist Spoofing ein massives Problem für ISPs, und zwar so sehr, dass es Tools wie den CAIDA Spoofer gibt, die dabei helfen.
Vor ein paar Jahren zeigte die Statistik, dass es jeden Tag etwa 30.000 Angriffe gab. Diese Zahl hat sich seit der Veröffentlichung des Berichts mit Sicherheit erhöht. Wie in dem Beispiel aus dem vorigen Abschnitt stellt die Bereitstellung manipulierter Webseiten in einem Netzwerk das Vertrauen der Nutzer/innen in Frage und wirft Fragen zum Datenschutz auf.
Unabhängig davon, wer du bist, gibt es ein paar Risiken, wenn du Opfer von Vergiftungen und Manipulationen wirst:
- Wie bei der Großen Chinesischen Firewall könntest du der Zensur ausgesetzt sein. Das bedeutet, dass die Informationen, die du erhältst, nicht korrekt sind, was sich auf viele soziale und politische Bereiche auswirkt.
- Datendiebstahl ist ein großes Problem, und es ist ein lukratives Geschäft für diejenigen, die an die Bankdaten der Nutzer/innen und andere sensible Daten gelangen wollen.
- Du könntest anfällig für verschiedene Arten von Malware und andere Trojaner auf deinem System sein. Ein Angreifer könnte zum Beispiel über eine manipulierte Webseite einen Keylogger oder andere Spionageprogramme auf dein System schleusen.
Es gibt auch noch andere Auswirkungen der DNS-Vergiftung. Zum Beispiel kannst du möglicherweise keine Sicherheitsupdates auf dein System aufspielen, während der Wiederherstellungsprozess in vollem Gange ist. Dadurch bleibt dein Computer länger verwundbar.
Bedenke auch die Kosten und die Komplexität dieses Bereinigungsprozesses, da er alle Beteiligten betrifft. Höhere Preise für alle damit verbundenen Dienste sind nur einer der negativen Aspekte.
Der Aufwand für die Beseitigung von DNS-Poisoning ist immens. Da Manipulationen sowohl auf der Client- als auch auf der Serverseite vorkommen, bedeutet die Beseitigung einer der beiden Seiten noch lange nicht, dass es auch auf allen anderen verschwunden ist.
Wie du DNS Poisoning verhinderst
Es gibt zwei Bereiche, die von DNS Poisoning betroffen sind – die Client- und die Serverseite. Wir schauen uns an, was du tun kannst, um diesen schädlichen Angriff auf beiden Seiten der Medaille zu verhindern.
Beginnen wir damit, was das Internet als Ganzes auf der Serverseite tut.
Wie das Internet versucht, DNS Poisoning und Spoofing serverseitig zu verhindern
Obwohl wir in diesem Artikel viel über DNS gesprochen haben, haben wir nicht erwähnt, wie veraltet die Technologie ist. Kurz gesagt: DNS ist aus mehreren Gründen nicht die beste Lösung für ein modernes Surferlebnis. Zunächst einmal ist es unverschlüsselt, und ohne einige wichtige Überlegungen zur Validierung würden viele DNS-Vergiftungsangriffe gar nicht erst stattfinden.
Eine schnelle Möglichkeit, um zu verhindern, dass Angriffe stärker werden, ist eine einfache Protokollierungsstrategie. Dabei wird ein einfacher Vergleich zwischen der Anfrage und der Antwort durchgeführt, um zu sehen, ob sie übereinstimmen.
Die langfristige Antwort (nach Meinung der Experten) ist jedoch die Verwendung von Domain Name System Security Extensions (DNSSEC). Dabei handelt es sich um eine Technologie zur Bekämpfung von DNS-Poisoning, die, einfach ausgedrückt, verschiedene Überprüfungsstufen vorsieht.
DNSSEC verwendet zur Verifizierung die „Public-Key-Kryptografie“. Damit werden die Daten als echt und vertrauenswürdig eingestuft. Es wird zusammen mit deinen anderen DNS-Informationen gespeichert und der rekursive Server nutzt es, um zu überprüfen, dass keine der empfangenen Informationen verändert wurde.
Im Vergleich zu anderen Internetprotokollen und -technologien ist DNSSEC noch relativ jung – aber es ist so ausgereift, dass es bereits in der Root-Ebene des Internets implementiert ist, auch wenn es noch nicht zum Mainstream gehört. Googles Public DNS ist ein Dienst, der DNSSEC vollständig unterstützt, und es kommen ständig weitere hinzu.
Trotzdem hat DNSSEC noch einige Nachteile, die es zu beachten gilt:
- Das Protokoll verschlüsselt die Antworten nicht. Das bedeutet, dass Angreifer den Traffic immer noch „abhören“ können, auch wenn die Angriffe ausgefeilter sein müssen, um DNSSEC zu umgehen.
- Da DNSSEC zusätzliche Datensätze verwendet, um DNS-Daten zu sammeln, gibt es eine weitere Schwachstelle, die „Zone Enumeration“. Dabei wird ein Datensatz verwendet, um alle DNS-Datensätze innerhalb einer bestimmten „Zone“ zu sammeln. Einige Versionen dieses Datensatzes verschlüsseln die Daten, andere hingegen noch nicht.
- DNSSEC ist ein komplexes Protokoll, und weil es noch neu ist, kann es manchmal falsch konfiguriert werden. Das kann natürlich die Vorteile des Protokolls zunichte machen und später zu weiteren Problemen führen.
Trotzdem ist DNSSEC die Zukunft, zumindest auf der Serverseite. Für dich als Endnutzer gibt es aber auch einige vorbeugende Maßnahmen, die du ergreifen kannst.
Wie du DNS Poisoning auf der Client-Seite verhindern kannst
Es gibt noch weitere Möglichkeiten, DNS Poisoning auf der Client-Seite zu verhindern, aber keine davon ist so robust wie DNSSEC auf der Server-Seite, das von einem Experten implementiert wird. Dennoch gibt es einige einfache Punkte, die du als Betreiber deiner Webseite abhaken kannst:
- Verwende eine Ende-zu-Ende-Verschlüsselung für alle Anfragen und Antworten. Secure Sockets Layers (SSL)-Zertifikate leisten hier gute Dienste.
- Setze Tools zur Erkennung von Spoofing ein. Diese können empfangene Datenpakete scannen, bevor sie versendet werden. So werden böswillige Datenübertragungen entschärft.
- Erhöhe die TTL-Werte (Time-To-Live) für deinen DNS-Cache, um böswillige Einträge zu leeren, bevor sie die Endnutzer/innen erreichen können.
- Du solltest über eine gute DNS-, DHCP- und IPAM-Strategie (DDI) verfügen. Diese besteht aus deiner DNS-Strategie, dem Dynamic Host Configuration Protocol und der IP-Adressverwaltung. Es ist ein komplexer, aber notwendiger Prozess, der von Sysadmins und Server-Sicherheitsexperten durchgeführt wird.
Als Endnutzer kannst du noch ein paar Dinge tun, um Poisoning und Spoofing zu verhindern:
- Nutze ein virtuelles privates Netzwerk (VPN), da deine Daten von Anfang bis Ende verschlüsselt werden. Außerdem kannst du private DNS-Server nutzen, ebenfalls mit End-to-End-Verschlüsselung.
- Ergreife einfache Vorsichtsmaßnahmen wie das Anklicken unbekannter Links und führe regelmäßige Sicherheitsscans durch.
- Wenn du deinen DNS-Cache regelmäßig leerst, werden auch bösartige Daten aus deinem System entfernt. Es dauert nur wenige Sekunden und ist einfach durchzuführen.
Du kannst DNS-Poisoning zwar nicht vollständig ausschalten, aber du kannst das Schlimmste verhindern. Als Endnutzer hast du keine große Kontrolle darüber, wie der Server mit Angriffen umgeht. Genauso wenig können Sysadmins kontrollieren, was im Browser passiert. Es ist also eine Teamleistung, um zu verhindern, dass diese schädlichen Angriffe die gesamte Kette in Mitleidenschaft ziehen.
Zusammenfassung
Angriffe aus dem Internet sind alltäglich. DNS-Poisoning (oder Spoofing) ist ein weit verbreiteter Angriff, der Millionen von Nutzern betreffen kann, wenn er unkontrolliert bleibt. Das liegt daran, dass das DNS-Protokoll veraltet und für das moderne Surfen im Internet ungeeignet ist – auch wenn neuere Technologien am Horizont zu sehen sind.
Kurz gesagt, DNS Poisoning leitet einen Endnutzer auf eine betrügerische Version einer bestehenden Webseite um. Es ist eine Möglichkeit, Daten zu stehlen und Systeme mit Malware zu infizieren. Es gibt keine narrensichere Methode, um es ganz zu verhindern, aber du kannst es mit einigen einfachen Maßnahmen eindämmen.
Warst du schon einmal Opfer von DNS Poisoning oder Spoofing und wenn ja, was war die Ursache? Bitte teile deine Erfahrungen mit uns in den Kommentaren unten!
Schreibe einen Kommentar