Im Rahmen unserer Quick Check Tests haben wir uns in der Vergangenheit immer wieder Gadgets und Lösungen angesehen, die eher im Niedrigpreissegment angesiedelt waren und somit auch eher kleine Sicherheitsbudgets vermuten ließen. Erwartungsgemäß wurden wir hier oft fündig, wenn es um die Identifikation von mitunter schwerwiegenden Sicherheitslücken ging. In Zukunft planen wir wieder vermehrt in diesem Bereich zu testen, um im Kontrast zu den in unseren Zertifizierungstests untersuchten, sicherheitstechnisch hochwertigen Produkten auch den Blick auf die vermeintlich „dunklere“ Seite des Internet of Things nicht zu verlieren und so einen repräsentativeren Eindruck der Gesamtlage zu behalten.
Als einen der ersten Kandidaten haben wir die Nooie Cam 360 vom chinesischen Hersteller Shenzhen Apeman Innovation Science & Technology gewählt – eine beliebte, oft verkaufte IP-Kamera mit vergleichsweise geringem Preis und großer Verbreitung. Ob sie unsere Erwartungen in negativer Hinsicht bestätigt oder uns sogar positiv überraschen konnte, klärt der folgende Testbericht.
Merkmale
Ausstattungstechnisch bietet die Nooie Cam 360 alles was man in dieser Kategorie und zu dem aufgeforderten Preis von unter 50€ erwarten kann: Die Videoaufnahme geschieht in 1080P und dies mithilfe der verbauten 940nm Infrarot LEDs sogar in völliger Dunkelheit bis zu 10m weit. Dazu besitzt die Kamera 2-Wege-Audio, Bewegungs- und Geräuschdetektion und kann fast vollständig um 355° horizontal und 94° vertikal rotiert bzw. geneigt werden. Die Einrichtung, Verwaltung und Steuerung der Kamera erfolgt, wie üblich, über eine mobile Applikation für Android und iOS („Nooie“; com.nooie.home). Außerdem kann das Statuslicht, das eine aktive Aufnahme anzeigt, optional abgeschaltet werden (wozu man das wollen würde, sei mal dahingestellt).
Mobile Applikationen
Die zum Gerät gehörigen Applikationen (in den getesteten Versionen 2.2.1 für Android und 2.3.0 für iOS) wurden, wie bei unseren Tests üblich, im ersten Schritt durch eine statische Analyse geschickt und wiesen dabei erst einmal keine gravierenden Probleme auf. Erwartungsgemäß des Funktionsumfangs der Kamera fordert die Android-Applikation alles an Berechtigungen ein (37 insgesamt), was für Lokalisierung, Audio, Bluetooth usw. notwendig ist – daneben aber auch Berechtigungen zum Ändern von Systemeinstellungen oder dem Download von Zusatzfunktionen ohne die Benachrichtigung des Nutzers. Das allein lässt schon relativ sicher auf eine recht umfangreiche Datensammlung unabhängig von der eigentlich zur Verfügung gestellten Funktionalität schließen. Auf diesen Punkt kommen wir später noch zurück.
Ein weiteres Indiz für eine mögliche Schwachstelle bezüglich ungesicherter Speicherung von persönlichen Daten lokal, ist die Berechtigung auf den externen Speicher, d.h. die SD-Karte, zugreifen zu dürfen. Wenn dort tatsächlich auch Daten abgelegt werden, können diese auch von allen anderen auf dem Smartphone installierten Apps eingesehen werden. Im praktischen Test ergab sich hierbei aber keine wirkliche Gefahr. Zwar legt die App die vom Kamera-Stream erstellten Screenshots auf der SD-Karte ab, aber das würde die Screenshot-Funktion von Android selbst auch nicht anders lösen. Kritische Daten, wie Zugangsdaten, Schlüssel oder ähnliches ließen sich hingegen nur im geschützten App-Bereich finden, auf den nur die Nooie-App selbst exklusiven Zugriff besitzt – zumindest auf non-rooted Smartphones.
Die Analyse des Android-Manifests weist im Prinzip nur Standardprobleme auf: Eine Vielzahl von Services, Receivern und Activities sind potentiell anfällig, auch für andere Applikationen zugänglich zu sein, was zum ungewollten Abfließen von Daten führen könnte. Zudem ist die Applikation so konfiguriert, dass standardmäßig unverschlüsselte Kommunikationen zugelassen wird – Kein sicherer Beweis für ein Sicherheitsproblem, aber zumindest schon einmal ein Indiz.
Außerdem lassen sich mehrere Tracker und Analyse-Module im App-Code identifizieren. Darunter Google Firebase, Firebase Analytics, Firebase Data Transport und Google Mobile Services. Eine recht umfangreiche Erfassung und Auswertung von Daten ist somit in jedem Fall möglich.
Bei der iOS-Applikation sieht es dann recht ähnlich aus, wenn auch aufgrund der restriktiveren Natur von iOS mit weniger Berechtigungen und ohne eine Datensammlung über Google-Dienste. Hier fällt aber vor allem auch eine Konfiguration auf, die grundsätzlich eine unverschlüsselte Kommunikation über das Internet zulässt.
Lokale und Online-Kommunikation
Die statische Analyse wies, wie im vorherigen Abschnitt bereits erwähnt, auf einige mögliche Schwachstellen in diesem Bereich hin. Durch die praktische Analyse der konkreten, beobachtbaren Kommunikation von Gerät und mobiler Applikation sollte dies nun weiter untersucht werden.
Grundsätzlich ist die Kommunikation hier aufgebaut, wie bei vielen anderen Vertretern der Produktkategorie ebenfalls: Die Authentifizierung und Accountverwaltung wird über eine TLS-Verbindung durchgeführt, um dann Steuerung und Kamera-Stream über verbindungsloses UDP laufen zu lassen. Im Grunde gibt es konzeptionell damit auch kein Problem, solange die TLS-Verbindung adäquat implementiert und abgesichert ist und der Payload, d.h. die tatsächlich übertragenden Bild- und Audiodaten des UDP-Streams, zusätzlich verschlüsselt wird. Das UDP-Protokoll bietet diese Option standardmäßig nicht an, hier muss der Hersteller also selbst noch einen Verschlüsselungslayer einziehen. Wie gesagt, kein Problem mit dieser Umsetzung, wenn diese Punkte berücksichtigt werden – Im Falle der Nooie Cam 360, allerdings ein „wenn“ mit Fragezeichen.
Dabei sieht der Kamera-Stream an sich erst einmal abgesichert aus. Wir konnten zwar auch hier und da Teile in Klartext identifizieren, aber dabei handelte es sich um eher unkritische Informationen, die man zwar ebenfalls absichern könnte, aber im Grunde keine Anfälligkeit herbeibeschwören. Auch eine im Rahmen des Quick Checks umfänglich begrenzte Code-Analyse ließ hier auf eine recht solide Umsetzung und eine Payload-Verschlüsselung mit AES schließen (mit Hilfe des relativ häufig integrierten SDK des chinesischen IoT-Herstellers Tuya in Version 3.34.5).
Das eigentliche Problem stellt dann aber tatsächlich die eigentlich mit TLS 1.2 verschlüsselte Kommunikation zur Authentifizierung und Verwaltung dar, die durch ihre Umsetzung ultimativ auch die Absicherung des Kamera-Streams vollständig aushebelt. So konnten wir eine klassische Schwachstelle in Form von unzureichender Zertifikatsvalidierung auf Applikationsseite feststellen. Ein simpler Man-in-the-Middle-Angriff auf die Verbindungen der Applikationen erlaubt es so, Account-Details, Zugangsdaten und ähnliches mitzulesen und auf diese Weise ganze Accounts zu übernehmen. Das Account-Passwort an sich wird dann als MD5 übertragen und lässt sich daher auch relativ sicher rekonstruieren, vor allem wenn es sich um ein natürlichsprachliches Passwort handelt. Einer Verwendung der mobilen Applikation in einem öffentlichen, möglicherweise nicht vertrauenswürdigen WLAN wäre demnach äußerst risikoreich, da der WLAN-Betreiber ohne großen Aufwand die Möglichkeit hätte, alle verschlüsselten Verbindungen aufzubrechen und kritische Informationen abzugreifen.
Was außerdem durch das Mitlesen der Kommunikation auffällt, ist die große Menge an Daten, die das Kamerasystem über Nutzer und Nutzertelefon sammelt und überträgt. Auf diesen Punkt werden wir im nächsten Abschnitt noch einmal zurückkommen.
Weiterhin haben wir, wie üblich, auch die Serverseite der Lösung einem schnellen Sicherheitsscan unterzogen und konnten dabei keine wirklich super kritischen Probleme feststellen. Lediglich ein kleines Update der Serverkonfigurationen würden wir hier vorschlagen – Unterstützung der lange veralteten TLS-Protokollversionen 1.0 und 1.1 lassen einige theoretische Einfallstore zu und sollten umgehend deaktiviert werden. In der aktuellen Implementation der Applikationen spielt dieser Punkt aber fast keine Rolle mehr, da hier auch die Verbindungen in der aktuelleren TLS Version 1.2 anfällig gegen eine Reihe von Angriffen sind.
Datenschutz und Privatsphäre
Für diesen Testbereich haben wir uns, wie immer, die Datenschutzerklärung angesehen und auf Informationen zur Datenerfassung, -sammlung und -speicherung durchsucht. Besonders interessant sind hier Unstimmigkeiten zwischen gegebenen Informationen und tatsächlich beobachtetem Produktverhalten. Diese Unstimmigkeiten können unerwähnte Datensammlung, enthaltene Tracker oder Features mit Implikationen für die Privatsphäre und den Datenschutz sein.
Die Datenschutzerklärung (Stand 8. April 2021) der Nooie Lösung ist an sich recht ausführlich. Wir waren zwar nicht in der Lage eine Version für deutschsprachige (oder gar „nicht englischsprachige“) Nutzer ausfindig zu machen, aber davon abgesehen war der Detailgrad und die zur Verfügung gestellten Informationen darin schon recht umfangreich – wenn auch nicht vollumfänglich.
Aber erst einmal zur wichtigsten Frage: Welche Daten werden denn erfasst? Kurze Antwort: Alle. Lange Antwort: Im Prinzip alles, was die Kombination aus Applikation und Kamera aus dem Verwendungskontext ziehen kann, wird auch gesammelt. Das umfasst alle Informationen zum verwendeten Smartphone, inklusive Modell, Unique Device Identifier, International Mobile Device ID (IMEI), Lokalisierungsdaten über Nutzung von GPS, WiFi und Bluetooth, installierte Applikationen, MAC-Adresse, Telefonnummer usw. Darüber hinaus werden aber vor allem auch Daten, die sich aus den Kameraaufnahmen selbst ziehen lassen erfasst. Dazu zählen laut Datenschutzerklärung z.B. Raumaufteilung am Aufstellungsort, Informationen zu Gegenständen und deren Verteilung, anwesenden Personen und Haustieren(!?), Informationen aus Bewegungs- und Geräuscherkennung, bei anwesenden Personen dementsprechend auch Gesichts- und Stimminformationen. Wir haben uns im Rahmen des Quick Checks nicht jede einzelne Kommunikation und die dabei übertragenen Daten angesehen, aber die bloße Menge der übertragenen Daten, abseits vom eigentlichen Kamera-Stream war natürlich auffällig.
Grundsätzlich ist dabei die schiere Menge an gesammelten Informationen aber nichts, was man hier ankreiden könnte, solange darüber ausführlich informiert wird. Was der Nutzer selbst dann für sich und seine Daten entscheidet, bleibt ihm überlassen. Erwähnen möchten wir es trotzdem, weil es unserer Meinung nach ganz offensichtlich das Maß überschreitet, was für die reine Funktionalität des Kamerasystems notwendig wäre.
Abgesehen davon gibt es noch ein paar klassische Tracking-Module, die nicht explizit namentlich in der Datenschutzerklärung erwähnt werden, aber in der Applikation enthalten und nach unserer Beobachtung auch während des Betriebs aktiv sind. Dabei handelt es sich, wie zuvor schon erwähnt, um die heutzutage oft anzutreffenden Firebase-Module von Google, in diesem speziellen Fall Firebase, Firebase Analytics und Firebase Data Transport.
In der Datenschutzerklärung wird nicht explizit auf diese Module und die Daten, die durch sie erfasst werden eingegangen, auch wenn das meiste schon in die oben bereits genannten Kategorien fallen dürfte. Für eine wirklich vollumfängliche Transparenz würden wir uns hier allerdings eine explizite Erwähnung wünschen.
Fazit
Im Grunde ist die Nooie Cam 360 durchaus eine brauchbare Kameralösung. Tatsächlich hatten wir im Vorfeld schlimmeres erwartet. Natürlich müssen wir auch vermerken, dass es sich hierbei lediglich um unseren Quick Check handelte – in die tiefsten Tiefen der Lösung sind wir demnach nicht eingetaucht und können folglich auch weitere Abgründe nicht völlig ausschließen. Das was wir aber gesehen haben, ließe sich mit ein paar überschaubaren Updates und Fixes in eine sicherheitstechnisch recht solide Lösung verwandeln. Die gravierende Sicherheitslücke in der Online-Kommunikation sowie die weit ab von perfekte Umsetzung von Datenschutz und Privatsphäre lassen im derzeitigen Zustand aber nicht mehr als 1 von 3 Sternen als Bewertung zu – zugegeben aber 1 Stern mehr als wir anfangs befürchtet hatten.