Skip to content

UPnP - Ein Protokoll, sie alle zu knechten?

Millionen Geräte im Internet sind über UPnP angreifbar. Was ist da los?

Universal Plug and Play im Überblick

Das Universal Plug and Play (UPnP) Protokoll dient dazu, in lokalen Netzen nach Netzwerkgeräten zu suchen und diese zu konfigurieren. Zum Beispiel verwendet Windows UPnP, um neue Geräte im Netz wie Scanner oder Drucker zu erkennen und zu steuern.

Das Protokoll besteht aus zwei Diensten: Dem auf UDP-Port 1900 lauschenden Simple Service Discovery Protocol (SSDP), zuständig für die Ankündigung verfügbarer Dienste und das Antworten auf Discovery-Requests, und dem HTTP-Service, über den die Beschreibung des Geräts ("Device Description") als XML-Datei bereitgestellt wird. Der dafür verwendete TCP-Port wird vom SSDP bekanntgegeben. Der HTTP-Server hostet außerdem das Simple Object Access Protocol (SOAP) Interface, über das bestimmte Funktionen abgerufen werden können.

Ein System, das ein UPnP-fähiges Gerät verwenden will, sendet zuerst einen SSDP M-SEARCH Request als Broadcast ins lokale Netz oder durchsuchen den lokalen Cache nach bereits bekannten Geräten. Die Antwort auf den M-SEARCH Request enthält die HTTP-Location der Device Description XML-Datei. Nachdem die Gerätebeschreibung geholt und ausgewertet worden ist, wird die Service Description XML-Datei angefordert. Die enthält Informationen über die verfügbaren Aktionen, ihre Parameter und das Format der Antwort. Letztendlich kann ein SOAP-Request zum Auslösen einer SOAP-Aktion gesendet werden. Das Gerät führt die Aktion aus und sendet die Response als weitere XML-Datei zurück.

UPnP im Internet

Eigentlich hat UPnP im Internet nichts zu suchen und funktioniert dort mangels Broadcast-Requests auch nicht. Das man statt dessen aber auch einen gezielten M-SEARCH Request an eine bestimmte IP-Adresse senden kann, haben manche Entwickler wohl übersehen und darum UPnP in Richtung Internet nicht ausgeschaltet.

Forscher von Rapid7 unter der Leitung von HD Moore, dem Chefentwickler des Exploit-Frameworks Metasploit, haben ein Whitepaper zu Schwachstellen in Universal Plug and Play (UPnP) veröffentlicht: Bei einem IP-Scan aller möglichen IPv4-Adressen wurden 40 bis 50 Millionen aus dem Internet erreichbare Netzwerkgeräte entdeckt, die alle mindestens eine von drei bekannten Schwachstellen enthalten und mit einem einzigen Datenpaket kompromittiert werden können.

Zwischen dem 1. Juni und 17. November 2012 wurde durchschnittlich einmal wöchentlich an jede routbare IPv4-Adresse ein UPnP-Discovery-Request gesendet. Damit wurden über 81 Millionen eindeutige IP-Adressen identifiziert, die auf diesen Request antworteten. Ungefähr 17 Mill. davon waren auch über das UPnP Simple Object Access Protocol (SOAP) erreichbar. Über 23 Mill. enthielten eine während der Untersuchungen entdeckte Remote Code Execution Schwachstelle.

Monokulturen sind schlecht

73% der entdeckten Geräte verwendeten eins von vier UPnP-Entwicklerkits: Das "Portable SDK for UPnP Devices" (libupnp), MiniUPnP, einen vermutlich von Broadcom entwickelten kommerziellen UPnP-Stack und einen weiteren kommerziellen Kit, dessen Entwickler nicht ermittelt werden konnte. Die Schwachstellen in diesen Kits betreffen also extrem viele Geräte. Hinzu kommt, dass die Geräte meist nicht die aktuellen Versionen enthalten (was kein Wunder ist, denn für die meisten Geräte gibt es gar keine Updates, und wenn es sie gibt, werden sie nur selten installiert - wann haben Sie denn das letzte Mal die Firmware eines Geräts aktualisiert?).

Bei der Analyse der libupnp wurden in der verbreitetsten Version acht Schwachstellen gefunden. Zwei der Schwachstellen wurden erst in der aktuellen Version 1.6.18, die am 29.1. veröffentlicht wurde, behoben. Die Schwachstellen können über ein einzelnes UDP-Paket ausgenutzt werden, um Code einzuschleusen und auszuführen.

In MiniUPnP wurden zwei Schwachstellen gefunden, die zwar in Version 1.4 behoben wurden, aber ohne auf die Sicherheitsrelevanz hinzuweisen. Im Allgemeinen lassen sich darüber nur DoS-Angriffe realisieren, unter bestimmten Umständen kann aber auch Code ausgeführt werden.

Für die weiteren Statistiken verweise ich nur auf das Whitepaper, es ist sehr interessant!

Und nun?

Mit dem Rapid7 UPnP Check können Sie online prüfen, ob von Ihrer IP-Adresse, d.h. Ihrem Router, UPnP im Internet angeboten wird. Generell sollte UPnP nicht aus dem Internet erreichbar sein. Ist es das doch, können Sie es mit etwas Glück ausschalten. Wenn nicht, brauchen Sie ein Firmware-Update für Ihren Router oder ein neues Gerät ohne UPnP-Unterstützung fürs Internet.

Prinzipiell sind aus dem Internet erreichbare UPnP-fähige Geräte, im Allgemeinen also der Router, am gefährdetsten. Aber auch im lokalen Netz droht Gefahr, sofern dort Schadcode eingeschleust wird oder ein Benutzer bösartig ist. Ob ein Angriff via Webbrowser möglich ist, wäre noch zu prüfen. Per se ausschließen würde ich es nicht.

Rapid7 stellt mit ScanNow UPnP ein Windows-Tools zur Suche nach UPnP-Endpunkten im lokalen Netz bereit, das angreifbare Geräte markiert. Mac- und Linux-User können für den gleichen Zweck das "UPnP SSDP M-SEARCH Information Discovery"-Modul ("ssdp_msearch") des Metasploit-Frameworks verwenden. In der Konsole rufen Sie das folgendermaßen auf:

$ msfconsole
msf > use auxiliary/scanner/upnp/ssdp_msearch
msf  auxiliary(ssdp_msearch) > set RHOSTS 192.168.0.0/24
msf  auxiliary(ssdp_msearch) > run

Daraufhin werden alle UPnP-fähigen Geräte im gewählten Adressbereich angezeigt, ggf. zusätzlich die CVE-IDs der Schwachstellen, die sie enthalten. Zum Beispiel so:

[*] 192.168.0.9:1900 SSDP Net-OS 5.xx UPnP/1.0 ¦ http://192.168.0.9:3278/etc/linuxigd/gatedesc.xml
[+] 192.168.0.254:1900 SSDP miniupnpd/1.0 UPnP/1.0 ¦ vulns:2 (CVE-2013-0229, CVE-2013-0230)

Wenn Sie angreifbare Geräte finden, sollten Sie überlegen, ob Sie auf UPnP verzichten können. Wenn nicht, wird es schwierig. Die Firmware angreifbarer Geräte sollten Sie dann am Besten aktualisieren, was in den meisten Fällen nicht möglich sein wird. Theoretisch wäre die einzig richtige Lösung, diese Geräte zu entsorgen. Fragt sich nur, wo man sicheren Ersatz her bekommt. Die Hersteller sind beim Verwenden aktueller Software für ihre Geräte nicht gerade die schnellsten und ich bezweifle, das viele der aktuell auf dem Markt erhältlichen Geräte sicherer sind als die, die Sie bereits zu Hause haben.

Carsten Eilers

Trackbacks

Dipl.-Inform. Carsten Eilers am : Mal wieder nichts Gutes zu Routern...

Vorschau anzeigen
Es gibt mal wieder einige Neuigkeiten zu Routern, und wie üblich keine guten. Ein DoS-Botnet, aufgebaut aus Routern Ein DoS-Botnet namens Lizard Stresser war für die DoS-Angriffe auf die Spiele-Netzwerke von Sony und Microsoft z

Dipl.-Inform. Carsten Eilers am : Filet-o-Firewall - ein neuer browserbasierter Angriff auf die Firewall

Vorschau anzeigen
Jetzt habe ich gestern doch glatt vergessen, den Text online zu stellen. Also mit kurzer Verzögerung: Wie angekündigt geht es ab dieser Folge erst mal wieder um aktuellere Themen. Den Anfang machen Schwachstellen in und Angriffe au

Dipl.-Inform. Carsten Eilers am : Die IoT Top 10, #3: Unsichere Netzwerk-Dienste

Vorschau anzeigen
Bei der Beschreibung der gefährlichsten Schwachstellen in den Geräten des IoT gemäß den Top IoT Vulnerabilities von OWASP sind wir bei Punkt 3 angekommen: "Insecure Network Services". Oder auf deutsch: Unsichere Netzwerk