Hardware und Firmware im Fokus:
Sicherheitsanalyse einer Heimüberwachungskamera (1/3)
Im Zuge eines internen Research Projektes im Bereich Hardware Security, wurde eine internetbasierte Webcam untersucht.
Die Kamera wird als Überwachungslösung für den Innenbereich beworben – unter anderem zur Sicherheitsüberwachung zu Hause, zur Beobachtung von Babys und älteren Menschen, sowie als Haustierkamera. Sie verfügt über eine Bewegungserkennung, die Personen und Tiere identifiziert und bei Ereignissen sofort eine Benachrichtigung an die Smartphone-App sendet.
Zur Speicherung unterstützt die Kamera sowohl lokale Aufnahmen auf einer SD-Karte als auch einen optionalen Cloud-Speicher mit 7-tägiger Wiedergabefunktion (der Cloud-Dienst erfordert ein kostenpflichtiges Abonnement).
Analyse der Hardware
Im ersten Schritt widmen wir uns der Identifikation der verbauten Hardwarekomponenten. Besonders im Fokus stehen dabei Speicherbausteine wie ROM oder Flash, der eingesetzte Mikrocontroller, Kommunikationsmodule (z. B. Bluetooth oder WLAN) sowie mögliche Debugging-Schnittstellen wie UART oder JTAG.
Nach dem Öffnen des Kameragehäuses lassen sich diese Komponenten visuell erfassen und näher untersuchen. Für unsere Analyse sind insbesondere folgende Bauteile von Interesse:
WLAN-Modul (AIC8800D40L)
SD-Karten-Slot (zur offline-Speicherung aufgezeichneter Videos und Bilder)
Ein unbekannter Mikrokontroller
3-Pin-Header (vermutlich UART-Schnittstelle)
Auf der Platinenunterseite befindet sich ein Baustein mit der Bezeichnung FM25Q128A:
Eine Suche nach dieser ID liefert einen Link zum Datasheet des Bausteins (https://mt-system.ru/upload/9.pdf), wodurch bestätigt werden kann, dass es sich dabei um einen Serial Flash-Speicher handelt.
Ein solcher Speicher enthält üblicherweise die Firmware des Geräts – also die Betriebssoftware, die zum Laden des Kernels sowie zur Kommunikation mit der Geräteperipherie erforderlich ist.
Die Firmware ist ein lohnendes Ziel für Angreifer, da Schwachstellen in diesem Bereich zu einer dauerhaften Kompromittierung des Gerätes führen können. Durch Zugriff auf das Dateisystem können oft Zugangsdaten, Konfigurationsdateien, kryptografische Schlüssel oder versteckte/undokumentierte Funktionen identifiziert werden.
Firmware Dumping
Um die Firmware aus dem Chip auszulesen, kann zum Beispiel ein sogenannter In-Circuit Programmer (ICP) genutzt werden. Der Vorteil eines solchen Geräts ist, dass der Speicherchip nicht von der Platine entlötet werden muss, um diesen auszulesen oder neu zu programmieren. Stattdessen erfolgt die Interaktion mit dem Chip über eine Schnittstelle (z. B. JTAG, SWD, ISP, SPI).
Zum Auslesen der Firmware nutzen wir den XGecu T48 Programmer (http://www.xgecu.com/EN/TL866_main.html) in Kombination mit einem SOIC-Clip.
Über die grafische Benutzeroberfläche (GUI) des XGecu-Tools kann die ID des Speicherchips überprüft werden, bevor die Firmware aus dem Baustein extrahiert wird. Eine Verifizierung des Dumps stellt sicher, dass der Auslesevorgang fehlerfrei durchgeführt wurde.
Zur Analyse des extrahierten Firmware Dumps kann nun das Tool binwalk (https://github.com/ReFirmLabs/binwalk) eingesetzt werden. Binwalk analysiert den Dump und sucht anhand von Signaturen nach Dateisystemen, Firmware Images und Dateien.
Der Firmware Dump der WiFi-Kamera enthält die U-Boot-Binärdatei, das Kernel-Image, sowie verschiedene SquashFS- und JFFS2-Dateisysteme.
Bei U-Boot (https://www.u-boot.org/) handelt es sich um einen Bootloader, der recht häufig im IoT-Umfeld eingesetzt wird. Gelingt ein Zugriff auf eine unzureichend abgesicherte serielle Schnittstelle, wie zum Beispiel UART, so kann mit dem Bootloader interagiert oder sogar der gesamte Bootprozess unterbrochen werden.
In der entpackten Firmware kann nun gezielt nach sensiblen Dateien gesucht werden. Der Passwort-Hash des Root-Benutzers befindet sich im ersten SquashFS-Dateisystem, beginnend ab Offset 0x230000 im Dump.
Zum Hashen des Passworts wurde der veraltete Algorithmus md5crypt eingesetzt. Versuche, das Passwort innerhalb eines angemessenen Zeitraums zu knacken, blieben jedoch erfolglos. Dies deutet darauf hin, dass das Passwort eine ausreichende Komplexität aufweist und mindestens acht Zeichen lang ist.
In einem weiteren Blogbeitrag zeigen wir, welche Informationen sich aus dem Dateisystem auslesen lassen, um letztlich Root-Rechte auf dem laufenden System zu erlangen.
Autor
Jan Rude ist seit zehn Jahren als Penetrationstester tätig. Bereits während seines Studiums der Technischen Informatik hatte er Kontakt mit Hardware und IT-Sicherheit – Themen, die ihn seither begleiten.
Seit 2018 ist er bei mgm tätig und verantwortet dort unter anderem die Durchführung von Infrastruktur und IoT-Pentests.
Weitere Informationen dazu
Sie haben Fragen, oder wollen sich unverbindlich beraten lassen?
Nehmen Sie Kontakt per E-Mail auf, rufen Sie uns an oder nutzen Sie unser Kontaktformular.
Ihr Ansprechpartner
Thomas Schönrich
Nehmen Sie Kontakt per E-Mail auf, rufen Sie uns an oder nutzen Sie unser Kontaktformular.

DOWNLOAD