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í.

Ú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.

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.


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.

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.

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.

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ě.