Die Leute von gnucitizen.org haben ein paar Artikel veröffentlicht, wie Angreifer ohne weiteres mit Hilfe präparierter Javaskripte oder Flash-Objekte eure Router umkonfigurieren können. Z.B. könnte ein Angreifer auf diese Art und Weise zusätzliche Portforwarding-Regeln einrichten und damit Dienste aus dem LAN nach außen zugänglich machen, oder gleich den DNS-Eintrag verbiegen um mit Hilfe eines eigenen DNS-Servers das Opfer auf manipulierte Webseiten umzuleiten. (Z.B. Phishing selbst wenn man die URL der Bank von Hand eingibt.)
Die Schwachstelle, die ausgenutzt wird, heißt Universal Plug and Play (UPnP). Entgegen dem, was in dem Wikipedia-Artikel steht, muss allerdings der PC nicht zuerst mit Schadsoftware infiziert werden, um dem Angreifer die Möglichkeit zur Routerumkonfiguration zu eröffnen. (Außer man sieht das Flash-Plugin an sich schon als Schadprogramm an. 😉 )
UPnP ist ein Protokoll, dass keinerlei Authentifizierung benutzt und quasi jedem Benutzer eines LANs erlaubt, ohne Passwort den Router umzukonfigurieren. Diese Sicherheitslücke ist also kein Bug in einem bestimmten Router, der gefixt werden kann, sondern eine prinzipiell vorhandene Lücke in einem unsicheren Protokoll by design. (Dreimal dürft ihr raten, welcher Softwaremonopolist dieses Protokoll erfunden hat. 😉 ) Die einzige Möglichkeit dem zu entgehen, ist UPnP auf dem Router zu deaktivieren. Dann funktionieren vielleicht ein paar P2P-, IM- oder VoiP-Programme nicht mehr richtig, weil sie ihr Portforwarding nicht mehr einrichten können, aber das ist eben der Preis der Paranoia.
Die anonyme Natur von UPnP bietet an sich schon große Risiken. Wer gerade nichts zu tun hat, kann sich ja mal in seiner Gegend umsehen und testen, bei wie vielen öffentlichen Hotspots er den Router manipulieren könnte. (Bitte nicht wirklich machen - ihr macht euch dadurch strafbar.) Die Artikel von Gnucitizen beschreiben jetzt, wie man das auch von außen ausnutzen kann, indem man einfach einen Benutzer dazu bringt, in seinem Browser ein völlig unverfängliches Objekt auszuführen.
Zum einen funktioniert das mit JavaScript, aber weil die dafür notwendige XmlHttpRequest-Routine Verbindungen nur zum selben Server aufbaut, von dem die Webseite stammt, benötigt der Angreifer eine Cross-Site Scripting-Lücke in der Weboberfläche des Routers. Solche Lücken sind gar nicht mal so selten, und vor allem: Wer patcht schon regelmäßig seinen DSL-Router, wenn ein Firmwareupdate rauskommt? Allerdings müsste der Angreifer dafür wohl wissen, welchen Router das Opfer verwendet. (Auch nicht so ein großes Problem, wenn man z.B. den mitgelieferten Router des Providers verwendet.)
Noch universeller ausnutzbar ist die Lücke durch Flash. Die navigateToURL- und URLRequest-Funktionen besitzen nicht dieselbe Einschränkung auf den Serverhost, wie XmlHttpRequest in JavaScript. Das einzige was der Angreifer wissen/erraten muss, ist die interne IP-Adresse des Routers und im Falle von Port-Forwarding die interne IP des Rechners, auf den der Port umgeleitet werden soll.
Betroffen sind übrigens nicht nur Router, sondern auch Kameras, Drucker, Mobiltelefone, Multimediageräte, etc. mit UPnP-Unterstützung, obwohl es da wahrscheinlich etwas mehr Phantasie braucht, um einen Anwendungszweck zu finden.
http://www.gnucitizen.org/blog/hacking-with-upnp-universal-plug-and-play
http://www.gnucitizen.org/blog/bt-home-flub-pwnin-the-bt-home-hub-5
http://www.gnucitizen.org/blog/hacking-the-interwebs
http://www.gnucitizen.org/blog/flash-upnp-attack-faq