Xiong-wer?! Warum Sicherheitslücken eines chinesischen Herstellers die ganze Welt betreffen
Hangzhou Xiongmai Technology Co., Ltd ist einer der weltweit größten Hersteller in der Videoüberwachungsbranche (Überwachungskameras, digitale Videorekorder (DVR) und Netzwerk-Videorekorder (NVR)). Als Privatanwender haben Sie den Namen vermutlich noch nie gehört, zumal sich das Unternehmen auf die Herstellung von OEM-Geräten konzentriert und seinen Standort in China hat.
Erst 2016 hat Xiongmai im Zusammenhang mit dem Mirai-Botnet für Aufsehen gesorgt. Damals nutzten Mirai und Varianten von Mirai kritische Schwachstellen in Xiongmai-Geräten aus, die hoch-privilegierten Shell-Zugriff über TCP-Ports 23 (Telnet) und 9527 (eine Telnet-ähnliche Konsolenschnittstelle) mit vorprogrammierten Anmeldeinformationen ermöglichten. Hunderttausende von Xiongmai-Geräten wurden infiziert und als Teil eines der größten DDoS-Angriffe (Distributed Denial of Service) eingesetzt.
Vielleicht erinnern Sie sich an die DDoS-Attacken gegen Dyn, die Ausfälle für Netflix, Twitter, GitHub, Spotify, Airbnb, also im Grunde für einen Großteil des Internets? Oder die Angriffe auf den „Krebs on Security„-Blog, der Akamai veranlasst hat, seinen Anti-DDoS-Schutzdienst für den Blog zu stoppen? Große Teile dieser DDoS-Feuerkraft stammten von gehackten Xiongmai-Geräten des Botnetzwerks.
Was ist seitdem passiert?
Die Menschen hinter Mirai wurden mittlerweile festgenommen und verurteilt und Xiongmai beseitigte in neuen Produkten schließlich die Sicherheitslücken. Motivierte IoT-Botnet-Akteure suchen immer noch nach anfälligen Xiongmai-Geräten, von denen viele in einem „Anti-Botnet-Botnet“ namens Brickerbot schützend „eingemauert“ wurden.
Wieso beschäftigt sich das SEC Consult Vulnerability Lab damit?
Die automatisierte Firmware-Sicherheitsanalyse-Plattform IoT Inspector erkennt zuverlässig genau jene Art von Schwachstellen, die Mirai und andere IoT-Botnets gerne ausnutzen. Die Analyse funktioniert für alle IoT-Geräte, einschließlich derer von Xiongmai. Einer der Beweggründe für die kontinuierliche Forschung im Bereich des Internet of Things ist es, die Ergebnisse in eine Verbesserung der Analysemöglichkeiten von IoT Inspector einfließen zu lassen.
XMEye P2P Cloud
Eine bewährte Richtlinie für IT-Systeme lautet: „Gebt den Geräten keinen Internetzugang“. Im Fall Mirai hat das für alle Geräte gut funktioniert, bis auf Xiongmai. Deren offene TCP-Ports 23 oder 9527 war aber leider nicht die einzige Schwachstelle der Videoüberwachungsprodukte des Herstellers. Ein in der Branche durchaus übliches Feature zur Fernüberwachung (beworben als „P2P“, „Cloud, „remote Überwachung“ oder einfach nur „Zugriff per Android und iOS-App, egal wo Sie gerade sind“) wie man sie auch in anderen Geräten wie z. B. Gwelltimes/FREDI, MiSafes findet.
Die Funktion „XMEye P2P Cloud“ ist bei Xiongmai-Geräten standardmäßig aktiviert und nutzt ein proprietäres Protokoll, mit dem Benutzer aus der Ferne auf ihre IP-Kameras oder Netzwerkvideorekorder/DVRs zugreifen können. Alle Verbindungen der XMEye Apps (Android und iOS), der Desktop-Anwendung „VMS“ und auch des SDK für Entwickler nutzen dabei die Cloud-Server-Infrastruktur von Xiongmai selbst.
Aus Benutzersicht ist ein solches Feature natürlich wunderbar, weil es den Zugriff und die Interaktion möglich macht, selbst wenn man sich nicht im gleichen Netzwerk (sondern z. B. einem anderen WLAN) befindet. Auch braucht es keine extra Firewall- oder Portforwarding-Einstellungen oder ein DDNS-Setup am Router, was die Nutzung für weniger technikaffine Benutzer erst möglich macht.
Leider hat diese vermeintliche Benutzerfreundlichkeit einen hohen Preis: die Sicherheit.
- Alle Daten werden über Cloud-Server übertragen und der Cloud-Provider erhält Zugriff auf diese (z. B. auch die Video-Streams). Dies wirft einige Datenschutz-kritische Fragen auf:
- Wer betreibt diese Server?
- Wer hat Zugriff auf die Daten?
- Wo befinden sich diese Server?
- Wie wird eine Erfüllung lokaler (d.h. dem Betriebsort entsprechenden) rechtlicher Anforderungen sichergestellt? Ist das Service z. B. auch datenschutzkonform im Sinne der DSGVO?
- Sofern die Daten nicht ausreichend verschlüsselt übertragen werden (und das werden sie leider nicht, wir haben es geprüft…), kann jeder „Man-in-the-middle“ Angreifer die Verbindung mitlauschen und alle übertragenen Daten abgreifen.
- Das Feature der „P2P Cloud“ ermöglicht es eine etwaige Firewall zu umgehen und auf einfache Weise eine Verbindung in private Netzwerke herzustellen. Das kann sich das natürlich auch ein Angreifer zu Nutze machen, wenn er Zugriff auf Geräte hat, die beabsichtigt oder unbeabsichtigt im Internet stehen (klassisches “Shodan hacking” oder auch die „Mirai“-Botnet-Vorgehensweise), wie es bei der „P2P Cloud“ für extrem viele Geräte der Fall ist.
Vorhersagbare XMEye Cloud-IDs
Wie funktioniert nun diese „XMeye P2P Cloud“ im Detail? Jedes Gerät hat eine eindeutige ID, Cloud ID oder UID. Zum Beispiel: 68ab8124db83c8db. Mithilfe dieser ID kann der Benutzer über eine der unterstützten Apps eine Verbindung zum Gerät herstellen. Man würde annehmen, dass die Cloud-ID ausreichend zufällig und komplex ist, um korrekte Cloud-IDs schwer zu erraten. Nun, so ist es leider nicht!
Wir haben Teile der Xiongmai-Firmware reverse-engineered und festgestellt, dass die Cloud-ID von der MAC-Adresse des Geräts abgeleitet ist. Die MAC-Adresse ist aufgrund der klaren Struktur keine solide Basis für einen Zufallswert: Sie besteht aus einer 3-Byte-OUI (organisatorisch eindeutige Kennung des Herstellers) + 3-Byte-NIC-ID (Interface-ID). Xiongmai verwendet einige verschiedene OUIs und weist Interface-IDs in aufsteigender Reihenfolge zu. Dieser Umstand macht es Angreifern leicht, potentielle MACs / Cloud-IDs aufzuzählen und gültige IDs zu finden. Zum Beispiel indem Sie einfach die Cloud-ID für MAC 001210FF0000, 001210FF0001, 001210FF0002 etc. ausprobieren.
Cloud ID Scans
Basierend auf den Erkenntnissen des proprietären, reverse-engineerten, P2P-Protokolls entstand ein Scanner, der die Xiongmai-Cloud-Infrastruktur nach gültigen Cloud-IDs durchsucht und zurückliefert, ob das jeweilige Gerät online ist und welche IP-Adresse der geographisch nächstgelegenste „Cloud-Hop“-Server hat. Diese Anfrage bedarf nur eines einzigen UDP-Pakets.
Im März dieses Jahres scannten wir stichprobenartig 0.02% der Geräte in jedem OUI-Bereich (es existieren etwa 16 Millionen Geräte je Bereich). Eine kurze Hochrechnung ergab, dass zu diesem Zeitpunkt mindestens 9 Millionen Geräte in den angegebenen OUI-Bereichen online waren. Dabei werden die Cloud-IDs nicht zufällig über die OUI-Bereiche verteilt: es gibt in jedem OUI-Bereich eine Chance von 15%, eine gültige Cloud-ID zu finden (andere Bereiche haben eine wesentlich geringere Wahrscheinlichkeit).
Basierend auf der Information der „Cloud-Hop“-Server konnten wir die geographische Verteilung der Geräte schätzen:
- Hop-Server Standort China: 5 438 000 Geräte online
- Hop-Server Standort Deutschland: 1 319 000 Geräte online
- Hop-Server Standort USA: 742 000 Geräte online
- Hop-Server Standort Singapur: 697 000 Geräte online
- Hop-Server Standort Japan: 577 000 Geräte online
- Hop-Server Standort Türkei: 189 000 Geräte online
In den meisten Fällen beobachteten wir, dass Hop-Server auf demselben Kontinent verwendet werden. Der Hop-Server für eine IP-Kamera in Europa, z. B. Großbritannien, wird dem Hop-Server in Deutschland zugeordnet.
Die meisten Hop-Server werden auf Amazon Web Services (Deutschland, USA, Singapur, Japan), Radore (Türkei) und Alibaba, Kingsoft oder CloudVSP in China gehostet. Während unserer Scans stießen wir auf mehr als 30 verschiedene Hop-Server-IPs. All dies legt nahe, dass Xiongmai erhebliche Anstrengungen zum Aufbau und Betrieb seiner Cloud-Infrastruktur unternommen hat.
Wir haben bewusst nicht versucht, die Scanaktivität zu verstecken. Obwohl wir mehr als 33.000 Anfragen von einer einzigen IP-Adresse gesendet haben, wurden wir nicht aus der Cloud-Infrastruktur geworfen. Dies ist ein Indiz dafür, dass aktuell kein Brute-Force-Schutz vorhanden ist.
Exkurs: Wie Sie mit MAC-Adressen bares Geld sparen
MAC OUIs werden von der IEEE zugewiesen. Die Registrierung eine OUI-Nummer kostet aktuell 2 820 US$. Interessanterweise besitzt Xiongmai keine einzige OUI, sondern nutzt die OUIs anderer Unternehmen. Die folgenden OUIs werden von Xiongmai-Geräten verwendet (alle OUIs basieren auf unseren Internet-Recherchen und -Scans, die Firmennamen stammen aus dem IEEE-Register):
001210 WideRay Corp
001211 Protechna Herbst GmbH & Co. KG
001212 PLUS Corporation
001213 Metrohm AG
001214 Koenig & Bauer AG
001215 iStor Networks, Inc.
001216 ICP Internet Communication Payment AG
001217 Cisco-Linksys, LLC
001218 ARUZE Corporation
003E0B Not assigned
Standardpasswörter
Wie bereits gezeigt, ist es möglich sich über die XMEye-Cloud mit Millionen von Xiongmai-Geräten zu verbinden. Zum Herstellen einer Verbindung zu einem Gerät sind gültige Anmeldeinformationen erforderlich. Das Standardpasswort des Admin-Benutzers (Benutzername „admin“) ist leer. Benutzer werden im Zuge der Inbetriebnahme leider nicht aufgefordert, ein Kennwort festzulegen. Daher ist es wahrscheinlich, dass eine große Anzahl von Geräten weiterhin über diese Standardanmeldeinformationen erreichbar ist. Der Admin-Benutzer kann Videostreams anzeigen, die Gerätekonfiguration ändern und auch Firmware-Updates durchführen.
Neben dem Administrator gibt es standardmäßig einen nicht dokumentierten Benutzer mit dem Namen „default“. Das Passwort dieses Benutzers ist „tluafed“ (default in umgekehrter Zeichenfolge). Wir haben festgestellt, dass dieser Benutzer dazu verwendet werden kann, sich über die XMEye-Cloud bei einem Gerät anzumelden (getestet über einen benutzerdefinierten Client mit dem Xiongmai NetSDK). Dieser Benutzer scheint ebenfalls Zugriffsberechtigungen auf Videostreams zu haben.
Hinweis: Der Passwort-Hash des „default“-Benutzers ist „OxhlwSG8“ (gespeichert in /mtd/Config/Account1). Der zugrunde liegende Hash-Algorithmus wurde bereits reverse-engineered und ist auf GitHub verfügbar.
Im Prinzip handelt es sich dabei um eine Mischung aus MD5(password) und weiterer Komprimierung. Bei komplexeren Passwörtern ist es oft einfacher, eine sogenannte „Hash Collision“ zu finden, statt das Passwort auf traditionelle Weise zu knacken. Spannenderweise wird derselbe Hash-Algorithmus auch in Produkten von Dahua Technology verwendet. Vielleicht hat sich Xiongmai davon inspirieren lassen oder der Algorithmus ist Teil des Huawei HiSilicon SoC SDK und bei beiden Herstellern in Verwendung?
Unabhängig davon, ob das Gerät durch ein sicheres Administrator-Passwort geschützt wurde, kann über die XMEye-Cloud und den „default“-Benutzer ggf. unauthorisiert darauf zugegriffen werden.
Code Execution über das Firmware Update
Wie bereits gezeigt, ist es möglich sich mit Millionen von Xiongmai-Geräten über die XMEye Cloud zu verbinden und mit vorgegebenen Zugangsdaten einzuloggen. Der nächste logische Schritt aus der Sicht eines Angreifers wäre der Versuch, eigenen Code auf dem Gerät auszuführen.
Da die Firmware-Updates nicht signiert sind, ist es möglich, ein solches auf Dateisystemebene zu verändern und bösartigen Code zu ergänzen. Alternativ könnte man auch die „InstallDesc“-Textdatei im Firmware-Update modifizieren, welche Kommandos beinhaltet, die während des Updates ausgeführt werden.
Die schadhaften Firmware-Updates können sodann über die XMEye-Cloud verbreitet werden. Dafür muss sich ein Angreifer lediglich über einen Eintrag in den DNS-Einstellungen des Geräts als Cloud-Update Server namens „upgrade.secu100.net“ ausgeben (ebenfalls Teil der XMEye API). Da eine auf diese Weise eingespielte Malware im Flash-Speicher des Gerätes abgelegt wird, kann sie selbst durch einen Neustart des Gerätes nicht mehr entfernt werden (im Gegensatz zu Mirai).
Was bedeutet das für die Allgemeinheit?
Es ergeben sich drei mögliche Angriffsszenarien:
- „Der Spanner„: Die vorhandenen Schwachstellen ermöglichen es, sich in die Videoüberwachung einzuklinken und die Benutzer zu beobachten. Geräte mit einer bidirektionalen Gegensprechfunktion können von einem Angreifer außerdem dazu missbraucht werden, mit den Opfern direkt zu kommunizieren.
- „Der zielgerichtete Angreifer„: Hardware aus der Xiongmai-Produktpalette sind in vielen „interessanten“ Unternehmen auf der ganzen Welt im Einsatz. Ein Angreifer kann sich über die Schwachstellen zunächst Zugriff auf das lokale Netzwerk verschaffen, und von dort aus andere Systeme (auf lateraler Ebene) hacken.
- „Der Botnet-Sammler„: Dank der vorhandenen Schwachstellen könnten Millionen von Geräten im Stil des Mirai-Botnets infiziert werden und in diesem Fall das womöglich größte Botnetzwerk in der IT-Geschichte bilden.
Wer ist betroffen?
Jeder, der ein Xiongmai-Gerät im Einsatz hat, ist betroffen. Leider ist diese Information alleine nicht ausreichend, denn die meisten Geräte werden unter einen anderen Markennamen geführt. „Xiongmai“ ist weder im Handbuch, oder auf der Verpackung noch im Web- bzw. DVR/NVR-Interface irgendwo ersichtlich. So wie es für OEM-Hersteller eben üblich ist. Unzählige Hersteller verkaufen individuell gebrandete Geräte mit Hardware und Firmware aus dem Hause Xiongmai. Wie viele das genau sind, konnten wir selbst nach intensiven Recherchen nicht exakt feststellen. Es sind jedenfalls mehr als 100:
9Trading, Abowone, AHWVSE, ANRAN, ASECAM, Autoeye, AZISHN, A-ZONE, BESDER/BESDERSEC, BESSKY, Bestmo, BFMore, BOAVISION, BULWARK, CANAVIS, CWH, DAGRO, datocctv, DEFEWAY, digoo, DiySecurityCameraWorld, DONPHIA, ENKLOV, ESAMACT, ESCAM, EVTEVISION, Fayele, FLOUREON , Funi, GADINAN, GARUNK, HAMROL, HAMROLTE, Highfly, Hiseeu, HISVISION, HMQC, IHOMEGUARD, ISSEUSEE, iTooner, JENNOV, Jooan, Jshida, JUESENWDM, JUFENG, JZTEK, KERUI, KKMOON, KONLEN, Kopda, Lenyes, LESHP, LEVCOECAM, LINGSEE, LOOSAFE, MIEBUL, MISECU, Nextrend, OEM, OLOEY, OUERTECH, QNTSQ, SACAM, SANNCE, SANSCO, SecTec, Shell film, Sifvision / sifsecurityvision, smar, SMTSEC, SSICON, SUNBA, Sunivision, Susikum, TECBOX, Techage, Techege, TianAnXun, TMEZON, TVPSii, Unique Vision, unitoptek, USAFEQLO, VOLDRELI, Westmile, Westshine, Wistino, Witrue, WNK Security Technology, WOFEA, WOSHIJIA, WUSONLUSAN, XIAO MA, XinAnX, xloongx, YiiSPO, YUCHENG, YUNSYE, zclever, zilnk, ZJUXIN, zmodo, ZRHUNTER