Überprüft

Universal Plug and Play

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

Universal Plug and Play(UPnP) dient zur herstellerübergreifenden Ansteuerung von Geräten (Audio-Geräte,Router,Drucker,Haussteuerungen) über einIP-basiertes Netzwerk, mit oder ohne zentrale Kontrolle durch einResidential Gateway.Es basiert auf einer Reihe von standardisiertenNetzwerkprotokollenund Datenformaten.

UPnP wurde ursprünglich von dem UnternehmenMicrosofteingeführt. 1999 übernahm dasUPnP-Forumdie Weiterentwicklung des UPnP-Standard und das UPnP-Zertifizierungsprogramm. Im Januar 2016 übergab das UPnP-Forum seine Aufgaben an dieOpen Connectivity Foundation(OCF).[1]

UPnP zeichnet sich insbesondere durch folgende Merkmale aus:

  • Ein Kontrollpunkt (z. B.Handheld) kann die Geräte (z. B. Stereoanlage) ohne Interaktion des Benutzers finden.
  • Alle Transportmedien, die IP-Kommunikation unterstützen, können verwendet werden, z. B.Ethernet,Funk (Bluetooth,Wireless LAN),FireWire(IEEE 1394).
  • Es werden standardisierte Protokolle und Verfahren wieIP,UDP,Multicast,TCP,HTTP,XML,SOAPetc. verwendet.
  • Ein UPnP-Gerät oder -Kontrollpunkt kann auf jedem IP-fähigenBetriebssystemmit diversen Programmiersprachen realisiert werden.
  • UPnP bietet Möglichkeiten für herstellerspezifische Erweiterungen.

Ablauf (UPnP Networking)

[Bearbeiten|Quelltext bearbeiten]
In UPnP verwendete Protokolle und darüber laufende Dienste

Adressierung (Addressing)

[Bearbeiten|Quelltext bearbeiten]

Da die Basis von UPnP ein IP-Netzwerk ist, muss ein Gerät oder Kontrollpunkt zuerst eine gültigeIP-Adressehaben. Auf welchem Wege diese IP-Adresse erhalten wurde (z. B.DHCP,Zeroconf,manuelle IP-Konfiguration), spielt dabei keine Rolle.

Lokalisierung (Discovery)

[Bearbeiten|Quelltext bearbeiten]

Sobald ein UPnP-Gerät eine IP-Adresse hat, muss es seine Existenz im Netzwerk an die Kontrollpunkte melden. Das erfolgt viaUDPüber dieMulticast-Adresse 239.255.255.250:1900 (im Falle von IPv4) bzw. FF0x::C (für IPv6) auf der Basis desSimple Service Discovery Protocol(SSDP). Ebenso können Kontrollpunkte nach UPnP-Geräten im Netzwerk suchen. In beiden Fällen enthält die „discovery message “nur die wichtigsten Angaben über das Gerät und seine Dienste, wie z. B. den Gerätenamen, Gerätetyp und eine URL zur genauen Beschreibung des Gerätes.

Beschreibung (Description)

[Bearbeiten|Quelltext bearbeiten]

Nachdem ein Kontrollpunkt ein Gerät gefunden hat, holt er sich per HTTP über TCP/IP die Beschreibung des Gerätes von derURL,welche ihm bei der Lokalisierung mitgeteilt wurde. Diese stellt das Gerät in Form einesXML-Dokumentes zur Verfügung. Die Beschreibung beinhaltet Informationen über den Hersteller, die Seriennummer, URL-Adressen für die Steuerung, Ereignisse und die Präsentation. Für jeden Dienst, den ein Gerät anbietet, werden Kommandos und Aktionen sowie Datentypen und Datenbereiche spezifiziert. Die Beschreibung beinhaltet neben den Diensten, die es anbietet, auch alle eingebetteten Geräte und deren Dienste.

Steuerung (Control)

[Bearbeiten|Quelltext bearbeiten]

Anhand der Informationen, die der Kontrollpunkt aus dem Beschreibungsdokument des Gerätes erhalten hat, kann er nunSOAP-Mitteilungen an die Steuerungs-URL des Gerätes schicken, um dieses zu steuern.

Ereignismeldungen (Event Notification)

[Bearbeiten|Quelltext bearbeiten]

Damit ein Gerät nicht dauernd den Zustand eines Dienstes bzw. einer Statusvariablen abfragen muss (enthalten im Beschreibungsdokument des Gerätes), nutzt UPnP dieXML-basierteGeneral Event Notification Architecture(GENA). Mit GENA können Kontrollpunkte Informationen zum Gerätestatus abonnieren; somit werden sie bei jeder Änderung einer Statusvariablen automatisch informiert. Dazu werden „event messages “verschickt, die den Zustand der abonnierten Variablen enthalten, die sich geändert haben.

Präsentation (Presentation)

[Bearbeiten|Quelltext bearbeiten]

Präsentation ist eine Alternative zur Steuerung und den Ereignismeldungen. Über die Presentation-URL, welche bei der Beschreibung (Description) bekanntgegeben wird, kann mittelsWebbrowserauf das Gerät zugegriffen werden. Das gibt dem Hersteller die Möglichkeit, neben dem standardisierten Zugriff via UPnP eine alternative Benutzeroberfläche zur Verfügung zu stellen.

Praktischer Einsatz

[Bearbeiten|Quelltext bearbeiten]

UPnP bietet mit demIGD-Protokoll(Internet Gateway Device) eine Möglichkeit, auf eine für den Benutzer einfache WeiseRouteranzuweisen,Portszu öffnen und entsprechende Anfragen aus dem Internet an einen Rechner weiterzuleiten, der viaNATan das Internet angebunden ist. Derartige Weiterleitungen sind beispielsweise fürFilesharing,Dateitransfers inInstant-Messaging-ProgrammenundVideokonferenzennotwendig. Während man bei einigen Programmen fixe Eingangs-Ports einstellen kann, für welche dann am NAT-Router manuelle, dauerhafte Weiterleitungsregeln erstellt werden (bei mehreren Arbeitsplatzrechnern bei jedem ein eigener Port mit einer eigenen Regel), sind andere Programme mit variablen Eingangs-Ports auf UPnP angewiesen, besonders wenn mehrere Arbeitsplatzrechner diese Dienste verwenden und nicht alle potentiell verwendeten Ports an einen einzelnen Arbeitsplatzrechner weitergeleitet werden können. So ist beispielsweise derWindows Live Messengerdarauf angewiesen. Anwenden können es auch Programme wie beispielsweise inµTorrent,Pidgin2, AppleiChat,eMule,Miranda IM,Miranda NG,Transmission,VuzeundANts P2P.

Der Bequemlichkeit der automatischen Portkonfiguration gegenüber steht ein Verlust an Sicherheit, denn dieFirewalleines UPnP-fähigen Routers kann dadurch von einem eventuell auf den Computer gelangtenSchadprogrammunwirksam gemacht werden. Dieser Verlust entsteht aber erst, nachdem ein PC im lokalen Netz mit einer Schadsoftware infiziert ist. Ohne Zugriff auf das LAN ist IGD kein Verlust an Sicherheit. Zu bedenken ist allerdings, dass seit Januar 2008 Schadsoftware bekannt ist, die sich z. B. inAdobe FlashoderJavaScriptversteckt und ohne Nutzer-Interaktion auch beim bloßen Besuchen von Webseiten mit einem aktuellen Webbrowser auf dem Rechner ausgeführt werden kann und somit ungebetenen Gästen das Eindringen ins lokale Netzwerk ermöglicht.[2]

Aufgrund der unterschiedlichen Interpretationen der sehr umfangreichen eigentlich abwärtskompatiblen IGDv1- und IGDv2-Spezifikationen gibt es zahlreiche Kompatibilitätsprobleme. Eines davon ist der UPnP IGD-Client, in aktuellen Microsoft Windows- und Xbox-Systemen mit zertifizierten IGDv2-Routern. Das Kompatibilitätsproblem besteht noch immer seit der Einführung des IGDv1-Clients in Windows XP im Jahr 2001, und einem IGDv2-Router ohne einem Workaround das Router-Portweiterleitungen unmöglich macht.[3]

Wenn UPnP nur zur Steuerung von Router-Portweiterleitungen und Pinholes verwendet wird, gibt es alternative, neuere viel einfachere und leichtgewichtige Protokolle wie dasPCPund dasNAT-PMP,die beide von der IETF als RFCs standardisiert wurden. Bei diesen Alternativen sind bisher keine Kompatibilitätsprobleme zwischen verschiedenen Clients und Servern bekannt, aber die Verbreitung ist noch gering. Bei Routern für Endverbraucher ist derzeit nur vonAVMund den Open-Source-Router-SoftwareprojektenOpenWrt,OPNsenseundpfSensebekannt, dass siePCPals Alternative zu UPnP unterstützen. DieAVMFritz!BoxUPnP IGDv2 und PCP Implementierung ist seit ihrer Einführung sehr fehlerhaft. In vielen Fällen funktioniert sie nicht.[4][5][6][7][8]Die Open-Source-Router-Softwareprojekte verwenden den MiniUPnPd[9]Server, der alle drei Protokolle unterstützt.

Ein weiteres verbreitetes Einsatzfeld ist die Verteilung von Multimediainhalten im lokalen Netzwerk. Dabei werden auf einem PC oderNASDateien mittels eines UPnP-MediaServers bereitgestellt. Entsprechende Endgeräte (UPnP-MediaRenderer) können die Inhalte des Servers durchsuchen, filtern, sortieren und natürlich wiedergeben. Welche Formate wiedergegeben werden, hängt dabei vom Endgerät ab. UPnP-MediaRenderer werden bereits seit einigen Jahren von diversen Herstellern angeboten.

Verwundbarkeiten, die 2013 entdeckt wurden

[Bearbeiten|Quelltext bearbeiten]

UPnP sollte nur auf Netzwerkschnittstellen für das lokale Netzwerk freigeschaltet und aus dem Internet nicht erreichbar sein. Im Januar 2013 verkündete die Sicherheitsfirma Rapid7 aus Boston, dass sie in einem sechsmonatigen Projekt nach UPnP-Geräten im Internet gesucht habe.[10]Dabei fanden sie 6.900 Produkte von 1.500 Herstellern unter 81 Millionen IP-Adressen, die auf UPnP-Anfragen aus dem Internet antworteten. 80 % der Geräte sind Heim-Router für den Internetzugang, andere Geräte sind Drucker, Webcams und Überwachungskameras. Mit Hilfe des UPnP-Protokolls lassen sich diese Geräte ansprechen bzw. manipulieren.

Darauf antwortete im Februar 2013 das UPnP-Forum mit einer Pressemitteilung[11]und empfahl neuere Versionen der verwendeten UPnP-Stacks; außerdem sollten die Zertifizierungsprogramme dererlei Probleme besser prüfen.

Im Oktober 2016 empfahl dasBundesamt für Sicherheit in der Informationstechnik,die UPnP-Funktion bei Routern zu deaktivieren, um zu verhindern, dass Geräte aus demInternet der Dingeim Rahmen vonBotnetsfürDenial-of-Service-Angriffe missbraucht werden können.[12]

2020: Sicherheitslücke CallStranger und UPnP Device Architecture 2.0

[Bearbeiten|Quelltext bearbeiten]

Am 8. Juni 2020 machte der türkische Sicherheitsexperte Yunus Çadırcı die von ihm entdeckte Sicherheitslücke CallStranger (CVE-2020-12695[13]) bekannt[14].CallStranger steckt in der Subscribe-Funktion, über die UPnP-Geräte Statusänderungen bei anderen UPnP-Geräten abonnieren können. Hierbei geben sie im Feld Callback eine Zieladresse in Form einer URL an. Ist ein UPnP-Gerät aus dem Internet erreichbar, lässt sich dies fürDDoS-Angriffenutzen, indem der Angreifer bei möglichst vielen Geräten die Adresse seines Opfers hinterlegt, das in der Folge mit Statusmeldungen überschüttet wird. Weiterhin lassen sich Schutzmaßnahmen wieData Leakage Prevention(DLP) umgehen, um Daten aus dem lokalen Netz zu stehlen. Auch die Suche nach offenen Ports ist möglich. Çadırcı erreichte bei der OCF eine Klärung der Protokollspezifikationen, die seit dem 17. April 2020 in Form der UPnP Device Architecture 2.0[15]vorliegt.

  1. https://openconnectivity.org/developer/specifications/upnp-resources/upnp(Abgerufen am 22. April 2018)
  2. Heise: Ungewollte Fernkonfiguration für Heim-Router
  3. MiniUPnPd's workaround: Detect FDSSDP as a microsoft client
  4. 12 Fehler in der AVM UPnP IGD- und PCP-Implementation (aller FritzBoxen)
  5. UPnP not working with my FRITX!Box
  6. UPNP_GetValidIGD returns Temporary IPv6 Address, causing UPNP_AddPinHole to fail with 606 #600
  7. upnpc shows wrong duration for port forward longer than 120 seconds #222
  8. Setting up portforward doesn't work
  9. MiniUPnP ist ein freier, leichtgewichtiger Open-Source-Client/Server und eine C-Bibliothek mit Unterstützung für UPnP IGD und zusätzlich PCP/PMP als Server
  10. Whitepaper: Security Flaws in Universal Plug and Play: Unplug, Don’t Play.Abgerufen am 9. Februar 2013.
  11. UPnP Forum Responds to Recently Identified LibUPnP/MiniUPnP Security Flaw.Abgerufen am 9. Februar 2013.
  12. Der Bot im Babyfon,Bundesamt für Sicherheit in der Informationstechnik vom 24. Oktober 2016, abgerufen am 27. Oktober 2016
  13. CVE-2020-12695,cve.mitre.org
  14. Data Exfiltration & Reflected Amplified TCP DDOS & Port Scan via UPnP SUBSCRIBE Callback(MementodesOriginalsvom 16. Juni 2020 imInternet Archive)Info:Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäßAnleitungund entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/callstranger.com,callstranger.com
  15. UPnP Device Architecture 2.0, PDF-Dokument,openconnectivity.org