UPnP-Implementierungen mit Schwächen (Update)

Die Universal-Plug-and-Play-Implementierungen einiger Hersteller enthalten Schwachstellen, durch die Anwender aus dem lokalen Netz beispielsweise Umleitungen auf externe Rechner einrichten oder auf einigen Routern Shell-Befehle ausführen könnten.

In Pocket speichern vorlesen Druckansicht 38 Kommentare lesen
Lesezeit: 3 Min.
Von

Armijn Hemel, Informatikstudent an der Universität Utrecht, hat in seinem Vortrag auf der Konferenz SANE 2006 Schwachstellen in den UPnP-Implementierungen einiger Hersteller erläutert. Demnach könnten Angreifer etwa auf Broadcom-basierten Routerdesigns von Rechnern aus dem lokalen Netz – beispielsweise mit einem dort installierten Trojaner – beliebige Umleitungen von externen Anfragen auch auf externe Rechner einrichten. So ließe sich der Router als Proxy oder Relay missbrauchen. Weitere Lücken finden sich in den UPnP-Servern der Router Sitecom WL-153 und Edimax BR-6104K, die sich Shell-Befehle in den UPnP-Anforderungen unterjubeln lassen.

Universal Plug and Play wurde von Microsoft entwickelt und dient zur einfachen und automatischen Konfiguration von Portforwards, um Anfragen von außen an bestimmte Ports eines Routers auf interne Rechner weiterzuleiten; so lassen sich beispielsweise Webserver oder Voice-over-IP-Produkte mit UPnP-Unterstützung ohne manuelle Konfiguration hinter einem Router betreiben. Üblicherweise läuft in den meisten DSL-Routern ein einfacher UPnP-Dienst. Er lauscht auf UDP-Broadcasts auf Port 1900 an der administrativen Multicast-Adresse 239.255.255.255. Dahin schicken die Clients ihre Anwesenheitsmeldung. Anschließend können die so angemeldeten Geräte Konfigurationsanfragen untereinander versenden. Ein Ausschnitt aus der SOAP-Anfrage für ein Port-Mapping könnte beispielsweise folgendermaßen aussehen:

soapaction2="urn:schemas-upnp-org:service:WANPPPConnection:1#AddPortMapping"
server._sa(soapaction2).AddPortMapping(NewRemoteHost="",
NewExternalPort=8080,
NewProtocol="TCP",
NewInternalPort=80,
NewInternalClient="192.168.1.5",
NewEnabled=1,
NewPortMappingDescription="Interner Webserver",
NewLeaseDuration=0)

Die von Hemel entdeckten Schwachstellen basieren auf einer fehlenden Überprüfung des NewInternalClient-Parameters. Ein Client aus dem LAN könnte bei der Broadcom-Implementierung des UPnP-Services hier eine beliebige Adresse eintragen, auch von Rechnern im Internet. Betroffen sind davon unter anderem die Router der Linksys-Reihe WRT54G(S), das ZyXEL P-335WT sowie diverse auf dem Broadcom-Design basierende Router. Weiterhin überprüfen die UPnP-Clients des Sitecom WL-153 und des Edimax BR-6104K den Parameter nicht, sodass Angreifer darüber Shell-Befehle einschleusen könnten.

Sicherheitsexperten ist das UPnP-Protokoll schon seit seiner Einführung ein Dorn im Auge, erlaubt es doch auch Schädlingen wie Viren, Würmern und Trojanern, das Portmapping eines Routers beliebig umzukonfigurieren. Eine auf einigen Sicherheitsportalen erwähnte Authentifizierung sieht UPnP nicht vor. Aus dem Jahre 2003 gibt es jedoch eine Zusatzspezifikation, die Sicherheit durch Authentifizierung mittels Public-Key-Verfahren ermöglicht – es handelt sich dabei jedoch um ein optionales, zusätzliches UPnP-Profil.

Linksys hat inzwischen neue Firmware-Releases herausgegeben, die zumindest die beim Portmapping-Request übergebene Adresse daraufhin überprüfen, ob sie im LAN angesiedelt ist. Grundsätzlich sollten Anwender, die UPnP nicht einsetzen, die Unterstützung dafür auf ihrem Router deaktivieren.

Update:

Sitecom hat eine aktualisierte Firmware für den WL-153 herausgegeben, die die Shell-Injection-Schwachstelle ausbügelt. Sie steht auf der Homepage des Herstellers zum Download bereit.

Siehe dazu auch: (dmk)