DNS Rebinding
Ja, ich greife mal das leidige Thema
dns Rebinding auf, weil die eigentlich sehr simple aber auch sehr
wirkungsvoll sind.
Die Idee dahinter ist wenn eine Anfrage nach foo.com gestellt wird,
zunächst ein JavaScript auszuliefern, das dann weitere Anfragen
nach foo.com stellt, in der Zwischenzeit wurde aber der DNS Record
umgestellt wurde und somit auf eine völlig andere Seite zeigt die
man damit ausspionieren kann. Mann kommt somit an Webseiten heran
an die man sonst nicht hinkommt in dem man die IP Adresse dann
einfach auf den Zielhost umsetzt, z.bsp. 192.168.1.1 o.ä.
Das ganze ist ja noch relativ unspektakulär weil man nur an
Webseiten herankommt (was für Spionage meistens reicht), und nicht
an irgenwelche Datenbaken o.ä., dazu benötigt man Socket zugriff
was man mit JavaScript ja nicht hat. Naja, aber es gibt ja Browser
Plugins, und manche Browser Plugins erlauben auch Netzwerkzugriffe,
z.Bsp. Flash und Java. Und mit diesen Plugins ist es möglich
beliebige Sockets zu öffnen. Dadurch kann man dann wunderbar auf
Datenbanken/Veraltete Dienste o.ä. zugreifen und angreifen. Aber
man kann das ganze auch zu positiven Zwecken einsetzen, ala Offene
Proxies, Tor Nodes, o.ä. Da man Sockets hat (bei java auch udp)
sind der eigenen Kreativität keine Grenzen gesetzt, ala VoIP
Spamming, File sharing, freie DNS Server..
So, und jetzt ist die Frage wie kann man sich dagegen schützen:
- Das einfachste ist man surft ohne Javascript und zieht es
konsequent durch und benutzt keine Plugins o.ä. sprich
Youtube/Google Maps... ade -> nicht praktikabel
- Um zu verhindern das auf Interne Dienste die im LAN stehen
zugegriffen werden kann reicht es DNS Antworten zu verwerfen die
auf eine Interne IP zeigen. Dafür gibt es dnswall. Das ganze
schützt aber nur die Internen Dienste und nicht das man mit seinem
Browser plötzlich in einem BotNetz aktiv ist.
- Der Browser läuft unter anderen Benutzerrechten und darf nur
auf Port 80/443 zugreifen, bzw. man setzt diese Policy mit selinux
oder grsecurity durch, und darf nicht aufs Interne Netz zugreifen,
sondern dies geschieht mit einem anderen Browser (wenn man
selinux/grsecurity einsetzt) oder läuft mit den normalen
Benutzerrechten, wodurch er auf das interne Netz zugreifen
darf.
- Es gibt eine Firefox Extension
das JavaScript beobachtet und Zugriff auf die Internen IPs
verhindert.
So, und fuer alle die jetzt in Panik verfallen sind unter
crypto.stanford.edu/dns/ gibt
es weitere Informationen.