Originalbeitrag von Veo Zhang, Mobile Threats Analyst
Insgesamt 6,1 Millionen Geräte, wie Smartphones, Routers und smarte Fernseher sind derzeit in Gefahr. Angreifer könnten aufgrund von bereits 2012 geschlossenen Sicherheitslücken aus der Ferne beliebigen Code ausführen. Die Lücken existieren im Portable SDK for UPnP™ Devices, auch libupnp genannt. Diese Bibliothek wird dafür verwendet, um Media Playback (DLNA) oder NAT Traversal (UPnP IGD) zu implementieren. Apps auf einem Smartphone können diese Fähigkeiten dazu nutzen, um Mediendateien abzuspielen oder sich im Heimnetzwerk eines Nutzers mit anderen Geräten zu verbinden.
Die Sicherheitslücken wurden bereits im Dezember 2012 geschlossen, doch viele Apps nutzen die ältere, angreifbare Version des SDKs. Die Sicherheitsforscher fanden 547 Apps mit den älteren Versionen von libupnp, von denen 326 in Google Play verfügbar sind, einschließlich solch weit verbreiteter wie Tencent QQMusic. Damit sind Millionen Nutzer in Gefahr, abgesehen von den Mobilgeräten, Routers und Smart TVs.
Bild 1. Angreifbarer Smart TV
Funktionsweise
Die Sicherheitslücke liegt in der Art, wie libupnp mit den Simple Service Discovery Protocol (SSDP)-Paketen umgeht. Diese Protokoll ist Teil des Universal Plug N’ Play (UPnP)-Standards. Während dieses Prozesses kommt es zu einem Stack Overflow. Der UDP Port 1900 muss offen sein:
Bild 2. Port Scan des betroffenen Systems zeigt den offenen Port
Ein speziell dafür erstelltes Paket kann die Buffer Overflows verursachen. Das Code-Beispiel zeigt, dass der TempBuf-Buffer zum Überlaufen gebracht werden kann und somit einen Absturz verursacht wird.
Bild 3. Code zeigt den Buffer, der zum Überlaufen gebracht werden kann
Auch könnte ein Exploit genutzt werden, um nicht nur einen Absturz zu verursachen, sondern auch um beliebigen Code auf dem betroffenen Gerät auszuführen. Damit erhielte der Angreifer die Möglichkeit, die Kontrolle über das Gerät, wie auf einem PC, zu übernehmen. Es gab schon Exploits, die Geräte ins Visier nahmen, die keine entsprechenden Schutzmaßnahmen wie Stack Canaries, DEP (Data Execution Prevention) oder ASLR (Address Space Layout Randomization) hatten. Für Systeme, die gut geschützt sind, ist es nicht sicher, ob die Exploits in der Lage sind, aus der Ferne Code auszuführen.
Die Sicherheitsforscher konnten bestätigen, dass bei mindestens 20 Apps die angreifbare libupnp-Bibliothek aktiviert werden kann:
Allgemeiner Name | Paketname |
AirSmartPlayer | com.gk.airsmart.main |
Big2Small | com.alitech.dvbtoip |
CameraAccess plus | jp.co.pixela.cameraaccessplus |
G-MScreen | mktvsmart.screen |
HexLink Remote (TV client) | hihex.sbrc.services |
HexLink-SmartTV remote control | com.hihex.hexlink |
Hisense Android TV Remote | com.hisense.commonremote |
Netflix | com.netflix.mediaclient |
nScreen Mirroring for Samsung | com.ht.nscreen.mirroring |
Ooredoo TV Oman | com.ooredootv.ooredoo |
PictPrint – WiFi Print App – | jp.co.tandem.pictprint |
qa.MozaicGO.Android | Mozaic GO |
QQMusic | com.tencent.qqmusic |
QQ音乐HD | com.tencent.qqmusicpad |
Smart TV Remote | com.hisense.common |
Wifi Entertainment | com.infogo.entertainment.wifi |
モバイルTV(StationTV) | jp.pixela.px01.stationtv.localtuner.full.app |
에브리온TV (무료 실시간 TV) | com.everyontv |
多屏看看 | com.letv.smartControl |
海信分享 | com.hisense.hishare.hall |
Tabelle 1. Einige betroffene Apps
Einzelheiten zu zwei Beispielen aus der Liste, nämlich die QQMusic- und Netflix-App gibt es im Originalbeitrag.
SDKs können auch auf anderen SDKs aufbauen. Das Linphone SDK liefert Voice-over-IP (VoIP)-Services für verschiedene Anwendungen. Das libupnp SDK ist eine von mehreren Optionen für das Linphone SDK, um NAT Traversal über UpnP zu liefern. Wird diese Option gewählt, so wird der angreifbare Service aktiviert.
Bild 4. Linphone stürzt ab, weil es libupnp nutzt
Trend Micro hat Linphone und Tencent (Entwickler der QQMusic-App) über das Problem in ihren Apps informiert, und beide erklärten, einen Fix veröffentlichen zu wollen.
- 14. November — Problem an Linphone und Tencent gemeldet.
- 16. November — Tencent bestätigt die Sicherheitslücke.
- 18. November — Linphone a bestätigt die Sicherheitslücke.
- 23. November – Tencent veröffentlicht ein Update für ihre Android–App (Version 5.7.1.5).
- 25. November – Linphone veröffentlicht einen Fix für dies Problem.