Videoaufnahmen liefert die D-Link in einer maximalen HD-Auflösung von bis zu 1280 × 800 Pixeln. Die Bewegungserkennung funktioniert über einen passiven Infrarotsensor, und per Infrarot-LED-Beleuchtung filmt die Kamera auch in der Dunkelheit. Ein eingebautes Mikrofon sowie ein Lautsprecher ermöglichen die Zwei-Wege-Kommunikation. Allerdings stehen diese Funktionen potentiell auch Angreifern zur Verfügung, wie unser Test zeigt.

Grobe Mängel im Testpunkt Verschlüsselung

Bei Einrichtung der Kamera ist ein Passwort anzugeben, welches fortan für den lokalen Administrator-Zugang dient. Dieses ist unabhängig vom Cloud-Benutzer-Zugang und dessen Passwort. Jedoch läuft der lokale Zugang standardmäßig über eine unverschlüsselte Verbindung und nur optional kann eine verschlüsselte Verbindung für den Zugriff per Browser verwendet werden. Das Passwort für den lokalen Zugang und somit der lokale Zugang selbst sind folglich mehr als dürftig abgesichert. Bei Betrachtung der Online-Verbindungen von App und Kamera mit Wireshark sind zunächst hauptsächlich verschlüsselte Verbindungen mit guter oder zumindest passabler Verschlüsselung erkennbar. Der erste gute Eindruck trügt jedoch und sobald diese SSL-Verbindungen auf Absicherung überprüft werden, wird eines schnell klar: Solche Verbindungen können mit wenig Aufwand abgehört werden. So ist beispielsweise der User-Login als Man-in-the-Middle abhörbar und gibt einem potentiellen Angreifer Zugriff auf Mail-Adresse und Passwort-Hash des Nutzers. Die folgende Abbildung zeigt dies anhand eines mitmproxy Mitschnitts.

Nach dem eigentlichen Login findet dann noch ein Austausch von Geräteinformationen statt. Dabei wird neben Geräte-ID, Modell und ähnlichen Informationen überraschenderweise auch das Administrator-Passwort für den lokalen Zugang übertragen – ebenfalls unzureichend gesichert und abfangbar. Die folgende Abbildung zeigt einen Beispiel-POST für diesen Vorgang.

Des Weiteren überträgt die D-Link-Kamera verschiedene Informationen über unverschlüsselte Verbindungen via Internet, darunter etwa die Firmware-Version, aber auch die interne und externe IP-Adresse.  Die Daten werden dabei lediglich unter Verwendung von Base64 codiert und die binären Daten so als Text übertragen. Den Entwicklern der Kamera-Software war wohl bewusst, dass dies Angreifer nicht abhält, und so nutzen sie eine Art XOR-Stream, also einen Bitstrom, der mit den eigentlichen Nutzdaten durch ein Exklusiv-Oder verknüpft wird und dadurch den Datenstrom verschleiern soll. Das alles hilft aber nichts, denn sobald der dazugehörige Algorithmus bekannt ist, können die Klartextdaten problemlos ermittelt werden – Security by Obscurity in Reinform.

Ein Blick in den Programmcode der App zeigt, dass zwar weite Bereiche mit einer Code Obfuscation verschleiert sind, um eine Analyse und den Zugriff auf sicherheitsrelevante Funktionen zu erschweren. Allerdings hebelt die App diesen Sicherheitsmechanismus selbst aus und speichert beispielsweise erstellte Screenshots unverschlüsselt auf der SD-Karte. Angreifern (und potentiell jeder beliebigen App auf dem Smartphone) ist es so ein Leichtes, an diese Bilder zu gelangen, etwa über eine Malware-App, mit der das Smartphone des Nutzers infiziert wird.

Unverschlüsselter Video-Stream

Zusätzlich zu den bereits erwähnten HTTP-Verbindungen gibt es noch weitere ungesicherte Verbindungen. Über diese streamt die Kamera die aufgezeichneten Videodaten. Die D-Link lädt die Daten per HTTP-POST-Anfrage in zumeist 4 MiB-Blöcken auf den Server, während die zugehörige App alles in einem Download ohne definiertes Ende herunterlädt. Die Daten selbst sind in 1 KiB-Blöcke unterteilt, die wie in der oben dargestellten Abbildung aufgebaut sind: Eine fast immer gleiche Zahl leitet einen 16 Byte großen Anfang ein. Es folgt die ID des Streams und den Abschluss bildet die Größe der in diesem 1 KiB-Block übertragenen Daten. Sind es weniger als 0x3F0 beziehungsweise 1.008 Byte, ist der Block nicht komplett ausgefüllt und wird am Ende auf die feste Länge aufgefüllt (Padding).

Mithilfe dieses bekannten Datenschemas ließen sich Bilder aus abgefangenen Streams Richtung App über ein selbstgeschriebenes Skript rekonstruieren und anzeigen. Der Stream konnte also erfolgreich belauscht werden. Das bedeutet, dass potentiell jede Person, die es darauf anlegt, Bild- und Videodaten mitlesen kann, die von der Kamera zum Server und vom Server zur App laufen. Wer sich also unterwegs mal eben in ein WLAN einloggt, gibt damit dem WLAN-Betreiber und potentiell auch anderen WLAN-Nutzern die Möglichkeit, den Stream mitzuschauen.

Fazit

In der Zusammenfassung zeigt die Kamera im Sicherheitstest wenig Positives. Ein Großteil der Kommunikation zwischen Kamera und App, darunter der Video-Stream, läuft über unverschlüsselte Verbindungen, die sogar auf Seiten des Smartphones abgegriffen werden können. Wir müssen davon abraten, die Kamera per Fernzugriff zu verwenden.