Jahr für Jahr werden mehr IoT-Geräte entdeckt, die eine P2P-Cloud-Verbindung nutzen. Der Defcon-Talk von Paul Marrapese letztes Jahr und die letzte Entdeckung von Mandiant beschreiben nur einen Auszug dessen, was sich in diesem Bereich der IT-Security abgespielt hat. Im Rahmen dieses Blogposts möchten wir Ihnen aktuelle Informationen zur zugrundeliegenden IoT-Sicherheitsproblematik anhand eines konkreten Gerätes vorstellen: die HiKam S6.
Die Kamera wird als einfache Überwachungskamera für den Heimgebrauch beworben. Sie wird auf mehreren Websites online sowie durch eine große deutsche Supermarktkette im Einzelhandel vertrieben. Zu den Funktionen gehören Nachtsicht, Zwei-Wege-Audio und ein Alarmsystem, das den Benutzer benachrichtigt, sobald die Kamera eine Bewegung erkennt. Sobald ein entsprechendes Benutzerkonto in der zugehörigen HiKam-App erstellt wurde, kann die Kamera über das Smartphone gesteuert werden. Von der App sind zwei verschiedene Versionen im App-Store erhältlich: HiKam und HiKam Pro. Auf den ersten Blick bieten beide Apps die gleichen Funktionen, lediglich das Design ist unterschiedlich. Tatsächlich gibt es einige Änderungen im Protokoll der HiKam Pro Version. Da beide Protokolle sowohl von der Kamera als auch dem Backbone der HiKam-Infrastruktur unterstützt werden, hat dies jedoch keinen Einfluss auf die Ergebnisse des vorliegenden Researchprojekts.
Für den direkten Austausch der Daten zwischen Kamera und Smartphone verbindet sich die App mit dem Telefon über ein P2P-Protokoll. Dadurch sollten alle Daten direkt zwischen Kamera und Smartphone ausgetauscht werden. Tatsächlich nutzt das Protokoll einen P2P-Cloud-Server, um die Firewall zu umgehen und die direkte Verbindung aufzubauen. In den Debug-Meldungen wurden mehrere Funktionsnamen gefunden, die auf das CS2 P2P SDK hinweisen.
Die Kamera ist mit dem relativ weit verbreiteten Hi3518 SoC von HiSilicon ausgestattet. Neben dem SoC befinden sich drei Messpunkte, die mit dem UART des Geräts verbunden sind (siehe Abbildung 1). Auf diese Weise ist binnen weniger Minuten ein Shell-Zugriff auf das Gerät möglich, was die Identifizierung von möglichen Sicherheitsproblemen erheblich erleichtert.
Es konnten zahlreiche kritische Schwachstellen des Geräts sowie seiner Architektur bzw. seinem Protokoll gefunden werden. Im Rahmen eines Responsible Disclosure Prozesses wurde der Hersteller im März 2021 vom SEC Consult Vulnerability Lab kontaktiert. Während das technisches Security Advisory auch eine detaillierte Beschreibung der Schwachstellen enthält, konzentriert sich dieser Blogeintrag darauf, wie einfach HiKam-Geräte aus der Ferne übernommen werden können und wie viele Nutzer potentiell von den Schwachstellen betroffen sind.
Remote-Angriff auf Geräte im lokalen Netzwerk
Auf den ersten Blick könnte man meinen, dass diese Kameras nur für Angriffe aus dem lokalen Netzwerk anfällig sind, was eine begrenzte Angriffsfläche bieten würde. Der P2P-Mechanismus ermöglicht jedoch auch Zugriff auf Kameras, die eigentlich hinter Routern und Firewalls versteckt wären. Das Flussdiagramm in Abbildung 2.1 zeigt, wie die Verbindung zwischen der Kamera und der Smartphone-App hergestellt wird.
Der Anwender kennt nur die kurze UID der Kamera im Format Axxxxxx, wobei x eine Zahl ist. Daher können gültige UIDs leicht identifiziert werden. UUIDs hingegen sind längere IDs, die im Format FFFF-123456-ABCDE dargestellt werden. FFFF ist dabei das Präfix der UUID, das bei den getesteten HiKam-Kameras auf EUA gesetzt ist. Paul Marrapese hat mehrere andere Präfixe veröffentlicht, auf die er gestoßen ist.
Wie in Abbildung 2.1 und 2.2. zu sehen ist, wird die direkte Verbindung durch eine Methode namens "Hole-Punching" hergestellt, die es jedem mit einer passenden UID ermöglicht, sich mit der Kamera zu verbinden. Die größte Schwachstelle ergibt sich daraus, dass der HiKam-Server leicht zu erratende UIDs in UUIDs übersetzt. Dadurch erhalten wir die einzig notwendige Information, um unseren Computer in der P2P-Cloud als Kamera zu registrieren.
Die Ablaufdiagramme in Abbildung 3.1 und 3.2 zeigen den Angriffsvektor:
Sowohl das Angreiferprogramm als auch die Kamera versuchen, sich mit derselben Kamera-ID in der P2P-Cloud zu registrieren. Während die Kamera nur etwa alle 60 Sekunden eine Registrierungsanfrage sendet, wiederholt der Angreifer seine Anfrage im Sekundentakt und gewinnt damit eine mögliche Race Condition.
In weiterer Folge wird die falsche IP an die mobile App zurückgegeben und die gesamte Kommunikation nun an den Angreifer statt an die Kamera gesendet. Da die meisten Funktionen eine Authentifizierung erfordern, enthält die App den MD5-Hash des Kamerapassworts. Dieser Hash kann nun leicht vom Angreifer geknackt werden.
Schlimmer noch: Werden mehrere Schwachstellen miteinander verkettet, kann um das Passwort auf ein vom Angreifer beliebig gewähltes Passwort gesetzt werden. Der empfangene Hash wird dazu in einem Relay-Angriff verwendet, um beliebige Nachrichten gegenüber der realen Kamera zu authentifizieren. Somit ist es möglich, die volle Kontrolle über die Kamera zu übernehmen. Mit dem WiGLE-Projekt kann die Kamera dann anhand der WLAN-Signale in der Umgebung gefunden werden.
Weitere Einblicke in alle Schwachstellen und ihre technischen Details, wie z. B. zur XOR-CBC-Verschlüsselung der P2P-Cloud Login-Nachricht, finden Sie im technischen technischen Advisory.
P2P Cloud SDKs – eine unendliche Geschichte
Dies ist nicht das erste Projekt von SEC Consult, das sich der Analyse von Geräten im Zusammenhang mit P2P-Cloud SDKs widmet. Erwähnenswert ist an dieser Stelle ein Blogbeitrag aus dem Jahr 2018 zu Xmeye oder auch dieser Artikel über die Gwelltimes P2P-Cloud. Auch andere Security Experten weltweit haben bereits Probleme mit der P2P-Cloud aufgezeigt. Bereits 2016 wurde dieser Blogbeitrag über ein ähnliches Modell desselben Herstellers veröffentlicht, der große Teile des Sicherheitsmodells und der genutzten Nachrichten dokumentiert. Obwohl der Hersteller bereits vor 5 Jahren auf diese Schwachstellen hingewiesen wurde, hat sich offenbar bis heute nichts geändert!
Die Sicherheit von IoT-Geräten, wie z.B. Überwachungskameras, sollte viel mehr im Fokus von Herstellern und Nutzern liegen. Schließlich gewähren wir ihnen oft unbemerkt sehr intime Einblicke in unser Leben. In der Realität ist dies leider zu oft für keinen von beiden der Fall – zumindest solange nicht, bis jemand die schwerwiegenden Sicherheitslücken in den Geräten aufdeckt. Daher spielt die unermüdliche Arbeit von engagierten Security Experten eine entscheidende Rolle bei der Verbesserung der Sicherheit existierender und zukünftiger Geräte.
Zum technischen Security-Advisory: Critical vulnerabilities in HiKam
Dieser Research wurde von Steffen Robertz und Gerhard Hechenberger im Auftrag des SEC Consult Vulnerability Lab durchgeführt.
SEC Consult ist immer auf der Suche nach talentierten Sicherheitsexperten, die unser Team verstärken möchten. Weitere Informationen finden Sie unter: https://www.sec-consult.com