Sonoff S26 Wi-Fi
Jak je to z bezpečností drobných domácích IoT zařízení? Je jejich bezpečnost stále na špatné úrovni? Špehují výrobci své uživatele? Otestovali jsme pro vás chytrou zásvuku Sonoff S26 Wi-Fi, která je populární i na českých e-shopech.
Společnost ITEAD z čínského Shenzenu nabízí řadu chytrých domácích zařízení založených na modulu ESP8266 pod značkou Sonoff, který se v komunitě domácích kutilů těší rostoucí popularitě. ESP8266 je programovatelný SoC s WiFi, UART a SPI rozhraním. Existuje pro něj celá řada custom firmwarů a je proto vhodný pro mnoho projektů. Pro náš test jsme použili chytrou zásuvku Sonoff S26 Wi-Fi s originálním firmwarem, která je cenově dostupná a velice rozšířená v českých eshopech. K zásuvce je přidružena také mobilní aplikace eWeLink pro iOS (v3.5.12) a Android (v3.6.1), která je určena k jejímu ovládání.
![1.png 1.png](/media/images/1_8TJwMsJ.original.png)
Úvodní nastavení
Pro prvotní nastavení musí být stisknuto tlačítko párování po dobu 5 sekund. Poté zásuvka vytvoří svou vlastní WiFi síť, do které se mobilní telefon připojí a provede konfiguraci zásuvky. Konfigurací se rozumí převážně zaslání přihlašovacích údajů do domácí Wi-Fi sítě, na kterou se má po dokončení nastavení zásuvka připojit. Poté se zásuvka zobrazí v mobilní aplikaci a je možno ji ovládat. Za problém považujeme, že přístupový bod, který zásuvka při párování vytvoří, je chráněn veřejně známým heslem 12345678, tedy kdokoliv se k ní v tu chvíli může připojit a pokusit se zásuvku nakonfigurovat podle sebe. Dále heslo k domácí Wi-Fi síti, které aplikace zásuvce v průběhu konfigurace zasílá, je přenášeno nešifrovaně pomocí jednoduchého HTTP požadavku.
![2.jpg 2.jpg](/media/images/2_C5zqzkx.original.jpg)
Online komunikace
Kromě nastavení neexistuje mezi aplikací a Sonoff zásuvkou žádná přímá komunikace, všechny spínací příkazy jsou směrovány přes cloud Amazon AWS. Spojení mezi zásuvkou a cloudem výrobce je šifrováno TLS 1.2. Aplikace komunikuje identicky šifrovaně s cloudovými servery, ale pokud je ukončena, vytváří několik nešifrovaných spojení k odesílání telemetrie na servery společnosti Xiaomi a Tencent – toto se týká pouze verze aplikace pro Android. Dále je nutno podotknout, že aplikace v době testu komunikovala s desítkami různých (převážně čínských) serverů. U některé komunikace se objevila také zvláštnost, že byla šifrována i těla jednotlivých HTTP požadavků a ty tak byly nečitelné, což může vzbuzovat podezření, jaká byla povaha takto zasílaných dat.
![Odesílaná telemetrie Odesílaná telemetrie](/media/images/3.original.png)
![Odesílaná šifrovaná data Odesílaná šifrovaná data](/media/images/4.original.png)
Mobilní aplikace
Po prvním přihlášení uživatele do aplikace se pokaždé při jejím dalším spuštění již uživatel přihlásí automaticky, což může být bezpečnostní riziko - pokud bude mobilní telefon odcizen, útočník bude mít přístup i k celé aplikaci bez nutnosti přihlášení. Základní úroveň ochrany zde poskytuje volitelné zabezpečení pomocí gesta.
Po dekompilaci aplikace jsme našli několik dobře obfuskovaných tříd. Z důvodu absence certificate pinningu většiny serverů, se kterými aplikace komunikuje, jsou šifrované části webových požadavků chráněny pouze před jednoduchými útoky typu Man-in-the-Middle (MitM). Na druhou stranu, úspěšný útok typu MitM by vyžadoval, aby útočník nainstaloval svůj certifikát na mobilní telefon uživatele.
Citlivá data, která si zaslouží velmi dobře zabezpečit, například Wi-Fi heslo k domácí síti, gesto pro odemčení aplikace, či přihlašovací token, jsou uložena v datové složce aplikace ve formátu prostého textu. Aplikace dále vytváří několik log souborů - opět v čitelné podobě. Ty obsahují opět Wi-Fi hesla či API klíče včetně přihlašovací tokenu, který lze zneužít pro převzetí kontroly nad uživatelským účtem.
Pravděpodobnost odcizení těchto dat je nízká (ovšem ne nemožná), protože k tomu, aby se útočník do aplikačního adresáře získal přístup, musel by být na mobilním telefonu proveden root/jailbreak. Tato data může odcizit ale i jiná nainstalovaná škodlivá aplikace, která dokáže zneužít slabiny v operačním systému.
![Log mobilní aplikace Log mobilní aplikace](/media/images/5.original.png)
Aktualizace firmwaru a hardware
Firmware lze aktualizovat prostřednictvím mobilní aplikace. Dříve bylo této možnosti hojně využíváno také k možnosti instalovat vlastní upravený firmware. V současnosti je proces aktualizace firmwaru změněn a firmware třetích stran byl z OTA aktualizací vyloučen. Bohužel firmware je při aktualizaci stahován ze serveru výrobce nešifrovanou komunikací. Existuje tedy teoretická možnost provedení útoku MitM a firmware do zařízení podvrhnout. Další možností je flash firmwaru přímo pomocí testovacích pinů, nicméně na desce Sonoff S26 se žádné nenachází, což značí, že se může jednat o ESP8266 modul upravený výrobcem.
![Rozebraná zásuvka Rozebraná zásuvka](/media/images/6.original.jpg)
Soukromí uživatele
Po prvotních pochybách, kdy aplikace nezabezpečeně komunikuje s několika různými servery, na které zasílá zašifrovaná data, je také k dispozici krátký popis požadovaných, nicméně četných oprávnění aplikace pro Android. Ty přesahují nezbytný funkční rozsah aplikace, která v nás zanechá předsudek, že by čínské společnosti mohly shromažďovat a analyzovat naše osobní údaje.
![Oprávnění mobilní aplikace Oprávnění mobilní aplikace](/media/images/7.original.png)
Závěr
Čistá funkčnost aplikace a bezdrátová zásuvka Sonoff S26 Wi-Fi je chráněna před jednoduchými útoky. Celkový dojem je však silně zastíněn nešifrovanou komunikací do čínských analytických služeb, mnoha oprávněními aplikace pro Android a citlivými údaji uloženými v čitelné podobě.