Was ist eigentlich (Anti-)DNS-Pinning ?

10 06 2007 20:05
Seltsamerweise findet man keine deutschsprachigen Artikel über (Anti-)DNS Pinning. Zumindest habe ich keine gefunden, so dass ich hier auf deutsch einmal versuche darzustellen, um was es sich dabei überhaupt handelt und wo die Probleme liegen.
Erfolgreich d-box 2 ausgelesen

Was ist überhaupt DNS Pinning ?

DNS Pinning ist eine Sicherheitstechnik in heutigen Webbrowsern, die DNS-Auflösungen in einem eigenen Cache halten, welcher erst mit Beendigung des Browsers (Session) gelöscht wird. Sollte man OS-Bordmittel verwenden um DNS-Änderungen durchzuführen (z.B. Flushing), so bleiben diese in Bezug auf das Verhalten des Browsers ohne Einfluss (ausgenommen der hosts-Datei).

Was ist dann Anti-DNS Pinning ?

Anti-DNS Pinning ist eine Angriffsmöglichkeit um gegen DNS-Pinning vorzugehen. Die Reihe der Gegenmaßnahmen und der darauf gefundenen neuen Angriffsmöglichkeiten setzt sich schon eine Weile fort. Anti-Anti-Anti-DNS Pinning ist auch nichts besonderes mehr.

Bevor ich Anti-DNS Pinning genau erkläre, was unter Umständen den ein oder anderen Leser im Detail vielleicht gar nicht interessiert, zeige ich hier zunächst die davon ausgehenden Gefahren einmal auf.

Es ist aus guten Gründen nicht erlaubt Daten über Domaingrenzen hinweg auszulesen (Wikipedia: Same origin policy) oder zu anderweitig zu beeinflussen. (Diese Option kennt vielleicht der ein oder andere "Internet Explorer"-Benutzer. Jedoch lässt sich im IE diese sinnvolle Regelung abschalten.) Gleiches gilt auch für das Nachladen von "Objekten" mittels AJAX.

Anti-DNS Pinning versetzt aber einen Angreifer in die Lage, dass er aus dem Browser heraus über Domaingrenzen hinweg auf den Inhalt anderer Webseiten in jeglicher Form zugreifen kann. Diese Technik birgt aber nicht nur eine Gefahr für Webseiten im Internet, sondern auch für Webseiten in Intranets, die sonst vom Internet abgeschottet sind.
Bislang gilt dies für Webserver, Router, etc.

Da das Feststellen der privaten IP-Adresse dank JavaScript (es wird nicht einmal ein Java-Applet benötigt) kein Problem ist, lässt sich ein Portscan des Intranets problemlos ausführen ohne sich auf die üblicherweise vergebenen IP-Adressen verlassen zu müssen, die einen u.U. längere Zeit im Regen stehen lassen. Port-Scanning lässt sich mit Fingerprinting verbinden. So lässt sich auf einfache Art und Weise die interne Infrastruktur (IP-Adressen, Webserver, Web-Proxy, Web-Applikationen) aus dem Internet - an Sicherheitsvorkehrungen vorbei - auslesen und dies nur mit einem Browser, welcher dafür kein ActiveX oder gar Administrator-Rechte benötigt.

Nun zu den spannenden Details der Technik dahinter.

Eine theoretischer Angriff auf Browser ohne DNS-Pinning könnte ungefähr wie folgt aussehen (alle IP-Adressen und Domainnamen frei erfunden): Angriff auf www.example.com (IP: 012.012.012.012)

  1. Der Browser des Benutzers ruft (aus irgendeinem Grund (E-Mail, XSS, etc.)) die Domain www.attacker.com auf und bekommt als IP-Adresse 123.123.123.123 genannt mit einem DNS Time-to-live (TTL) Timeout von einer Sekunde.
  2. Die eben geladene Seite enthält einen Aufruf zum Refresh mittels des META-Tags, JavaScript oder AJAX nach einem längeren Zeitraum als einer Sekunde - bspw. also zwei Sekunden.
  3. Weil der DNS-Eintrag auf Grund der TTL von einer Sekunde nicht mehr gültig ist, muss erneut angefragt werden wie die IP-Adresse zur Domain lautet. Der DNS-Server von www.attacker.com kann jetzt seine IP-Adresse beliebig ändern (hier auf 012.012.012.012 von www.example.com) und liefert diese IP-Adresse zurück.
  4. Der Browser ruft nun www.example.com auf, wobei er glaubt, dass er sich auf www.attacker.com (123.123.123.123) befindet.

Dieser Angriff funktioniert dank DNS-Pinning nicht, weil der Browser die Zuordnung IP-Adresse zu Hostname pro Session selbst in einem Cache hält. Problemlos ablaufen würde dieser Angriff dennoch nicht, weil der Header eine falsche Domain beinhalten würde. Aber mit etwas Arbeit lässt sich das beheben.

Jedoch gibt es auch Anti-DNS-Pinning, was DNS-Pinning entgegen wirkt:

  1. Der Browser des Benutzers ruft (aus irgendeinem Grund) die Domain www.attacker.com auf und bekommt als IP-Adresse 123.123.123.123 genannt mit einem DNS TTL von einer Sekunde.
  2. Die eben geladene Seite sorgt per Refresh für ein erneutes Laden ihrer selbst nach z.B. wieder zwei Sekunden.
  3. www.attacker.com hat sich aber z.B. per Firewall abgeschottet und beantwortet die Anfrage dadurch nicht.
  4. Der Browser ist jetzt gezwungen den betreffenden Eintrag aus seinem eigenen Cache zu werfen und beim DNS-Server von www.attacker.com erneut nachzufragen.
  5. Der DNS-Server von www.attacker.com kann jetzt seine IP-Adresse beliebig ändern (hier auf 012.012.012.012 = www.example.com) und liefert die neue IP-Adresse aus.
  6. Der Browser ruft nun www.example.com auf, wobei er glaubt, dass er sich auf www.attacker.com (123.123.123.123) befindet.

So kann man natürlich auch, wie eingangs schon erwähnt, auch interne IP-Adressen abfragen und so Inhalte auf Webservern, Routern, etc. auslesen.

Wer sich davon einmal selbst überzeugen möchte, der klickt am besten die Anti-DNS Pinning Demo an. (Klappt leider nicht jedes Mal auf Anhieb.)

Das Spiel lässt sich beliebig fortsetzen: Anti-Anti-DNS-Pinning ist wieder eine Schutzmaßnahme. Anti-Anti-Anti-DNS-Pinning wieder ein Angriff, usw.


Bookmark Was ist eigentlich (Anti-)DNS-Pinning ?  at del.icio.us Digg Was ist eigentlich (Anti-)DNS-Pinning ? Mixx Was ist eigentlich (Anti-)DNS-Pinning ? Bloglines Was ist eigentlich (Anti-)DNS-Pinning ? Technorati Was ist eigentlich (Anti-)DNS-Pinning ? Fark this: Was ist eigentlich (Anti-)DNS-Pinning ? Bookmark Was ist eigentlich (Anti-)DNS-Pinning ?  at YahooMyWeb Bookmark Was ist eigentlich (Anti-)DNS-Pinning ?  at Furl.net Bookmark Was ist eigentlich (Anti-)DNS-Pinning ?  at reddit.com Bookmark Was ist eigentlich (Anti-)DNS-Pinning ?  at blinklist.com Bookmark Was ist eigentlich (Anti-)DNS-Pinning ?  at Spurl.net Bookmark Was ist eigentlich (Anti-)DNS-Pinning ?  at NewsVine Bookmark Was ist eigentlich (Anti-)DNS-Pinning ?  at Simpy.com Bookmark Was ist eigentlich (Anti-)DNS-Pinning ?  at blogmarks Bookmark Was ist eigentlich (Anti-)DNS-Pinning ?  with wists Bookmark Was ist eigentlich (Anti-)DNS-Pinning ?  at Ma.gnolia.com wong it! Bookmark using any bookmark manager! Stumble It!

Trackbacks


Keine Trackbacks

Kommentare

Ansicht der Kommentare: (Linear | Verschachtelt)
Noch keine Kommentare

Kommentar schreiben

*

*


Umschließende Sterne heben ein Wort hervor (*wort*), per _wort_ kann ein Wort unterstrichen werden.
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.



Kommentare werden erst nach redaktioneller Prüfung freigeschaltet!