HiKam - "Hi – Ich bin (nicht) deine Kamera"

Die Sicherheit von IoT-Geräten, wie z.B. Überwachungskameras, sollte viel mehr im Fokus von Herstellern und Nutzern liegen. In der Realität ist dies leider nicht der Fall.

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.

Bild zeigt HiKam S6 UART Pinbelegung
Abbildung 1: HiKam S6 UART pins

Übersicht der entdeckten Schwachstellen

  • Fehlerhafte Authentifizierung in der Weboberfläche: Anmeldung wird durch das Setzen eines Cookies umgangen.

  • Auflistung aller Kundengeräte in der Cloud und LAN/WAN-IPs: Alle aktiven Kameras können ermittelt werden.

  • Zurücksetzung des Kommunikationsprotokolls: Das Kommunikationsprotokoll kann auf eine frühere Version zurückgesetzt werden, die weniger Sicherheitschecks beinhaltet.

  • Unzureichende Verwendung von Kryptografie: Es werden MD5-Hashes als Kennwörter genutzt, sowie eine eigens programmierte XOR-CBC-Verschlüsselung.

  • Unzureichende Überprüfungen des Kommunikationsprotokolls: Gesendeten Nachrichten werden unzureichend überprüft. Dadurch kann bei Bekanntwerden eines einzelnen Hashes mittels Hash-Relaying auf alle Kamerafunktionen zugegriffen werden.

  • Geräte Spoofing: Geräte-IDs können ermittelt werden und sind die einzige erforderliche Information, um sich als eine bestimmte Kamera auszugeben.

  • Veraltete Softwarekomponenten: Es wurden mehrere veraltete Softwarekomponenten im Betriebssystem gefunden.

  • Schwache Standard-Anmeldeinformationen für Gwelltimes P2P-Konten: HiKam registriert für jeden App-Benutzer ein Benutzerkonto für die Gwelltimes P2P-Cloud mit einem Standardpasswort. Das Konto wird von der HiKam S6 zwar nicht verwendet, aber es ist sehr wahrscheinlich, dass ältere Kameramodelle mit diesen Standard-Anmeldeinformationen zugänglich sind

  • Offenlegung der SMTP-Zugangsdaten von HiKam: Die Kamera sendet Alarmmeldungen per E-Mail. Das Kennwort für den SMTP-Server des Unternehmens ist in den Debug-Nachrichten enthalten

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.

Ablaufdiagramm der HiKam Kamera
Abbildung 2.1: Ablaufdiagramm des Kamerabetriebs   
Ablaufdiagramm der HiKam Kamera
Abbildung 2.2: Ablaufdiagramm des Kamerabetriebs

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:

Ablaufdiagramm der HiKam Spoofing-Attacke
Abbildung 3.1: Ablaufdiagramm der Spoofing-Attacke 
Ablaufdiagramm der HiKam Spoofing-Attacke
Abbildung 3.2: Ablaufdiagramm der Spoofing-Attacke

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.

Tortendiagramm zeigt Verteilung der HiKam Nutzung in verschiedenen Ländern
Abbildung 4: Verteilung der HiKam Nutzung in verschiedenen Ländern

Gefährdete Geräte weltweit

Oben genanntes Prozedere kann dazu genutzt werden, auch die internen und externen IP-Adressen der Kameras herauszufinden, anhand derer sich die Geräte grob lokalisieren lassen. Bei unseren Recherchen haben wir auf diese Weise rund 26.000 Online-Geräte (Stand Februar 2021) im Internet identifiziert. Das Tortendiagramm in Abbildung 4 zeigt die Standortverteilung weltweit. Wie man sieht, befinden sich mehr als 80 % dieser Geräte in Deutschland, einige davon in Österreich und den USA.

Heatmap der betroffenen HiKam Geräte auf einer Weltkarte
Figure 5: Heatmap der betroffenen HiKam Geräte auf einer Weltkarte [1]
Heatmap der betroffenen HiKam Geräte auf einer Weltkarte
Figure 6: Heatmap der betroffenen Geräte in den USA [1]
Heatmap der betroffenen HiKam Geräte auf einer Weltkarte
Figure 7: Heatmap der betroffenen Geräte in Europa [1]

Abbildungen 5,6 und 7 zeigen die weltweite Nutzung der HiKam Kameras, darunter auch Orte, die man nicht erwartet hätte. Grob lassen sich zwei interessante Regionen bilden: Europa und die USA. Ein genauerer Blick auf die Daten aus den USA ermöglicht es, kleinere Flecken bestimmten Städten zuzuordnen.

Europa entpuppt sich als besonders interessant: Die Kamera scheinen in ganz Deutschland und Teilen Österreichs sehr beliebt zu sein. Womöglich ist es darauf zurückzuführen, dass das HiKam S6 Kameramodell im Sommer 2020 bei einem deutschen Discounter verkauft wurde.

[1] Basiskarte und Daten von OpenStreetMap und OpenStreetMap Foundation, © OpenStreetMap-Mitwirkende. Die Karte beinhaltet Daten von GeoLite2, erstellt von MaxMind, verfügbar über https://www.maxmind.com

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