Situace se zabezpečením „chytrých“ krabiček připojených k internetu se nelepší. Právě naopak. Podle studie SEC Consult se problémy naopak prohlubují, protože přibývá přístrojů, které výrobci na lince vybavili jednotným firmware včetně sdíleného privátního klíče.
Společnost sleduje přibližně 70 různých výrobců a stav bezpečnosti asi 4000 zařízení. Zhruba 900 zařízení od 50 výrobců přitom trpí zásadní bezpečnostním nedostatkem. Bohužel se ukázalo, že od předchozí studie z listopadu 2015 výrazně přibylo přístrojů sdílejících privátní klíč – dokonce o 40 %. Zatímco před devíti měsíci to bylo 3,2 milionu, dnes je to už 4,5 milionu. Jde přitom o různé routery, modemy, IP kamery, telefony a podobná zařízení.
Kde se klíče berou?
Podrobnosti o jednotlivých zařízeních je možné získat například pomocí služby Censys.io, která sbírá informace vhodné k podobným průzkumům. Lze tu dohledat, ve kterých zemích se zařízení se známým klíčem nachází i které sítě jsou jich plné.
Nejčastěji jde o klíče používané při HTTPS spojení (X.509) nebo SSH. Celkem bylo takto odhaleno 580 privátních klíčů, z nichž nejméně 230 je opravdu aktivně používáno na internetu. To pokrývá přes 10 % HTTPS serverů, které jsou vystaveny do internetu. Obvykle se přitom jedná o webové rozhraní pro správu těchto zařízení.
Takto sdílený klíč stačí vytáhnout z jediného zařízení a šifrování všech jeho sourozenců je prolomeno. Klíč je totiž součástí firmware, který výrobce vypálí do všech krabiček, které projdou jeho linkou. Pokud je veřejně znám privátní klíč k takovému zařízení, je možné dešifrovat komunikaci mezi správcem a spravovaným přístrojem. Technicky vzato v tom nebrání vůbec nic. Certifikáty i klíče ke stovkám zařízení jsou třeba vystavené na GitHubu.
Některé klíče byly navíc nalezeny v různých zařízeních jednoho výrobce nebo dokonce ve výrobcích různých firem. Firmware se často prodává/krade a některé firmy jsou schopné ho zjevně použít bez větších úprav včetně jednou vygenerovaných klíčů. V takovém případě je bezpečnost zařízení rozbitá vlastně už od výroby.
Například certifikát vydaný na jméno „Daniel“ a e-mail kiding@broadcom.com najdete ve firmware značek Actiontec, Aztech, Comtrend, Innatech, Linksys, Smart RG, Zhone a ZyXEL. Důvod? Certifikát je součástí Broadcom SDK, které zmínění výrobci používají k tvorbě vlastního firmware. Tento certifikát (samozřejmě včetně klíčů) pak najdeme v 480 000 zařízeních po celém světě.
Podobně certifikát vystavený na indický Multitech naleznete v 280 000 zařízení otevřených do internetu. Opět jde o certifikát z SDK, tentokrát od Texas Instruments pro ADSL2+ routery, které můžete koupit pod značkami Aztech, Bewan, Observa Telecom, NetComm Wireless, Zhone, ZTE a ZyXEL. Ze stejného zdroje pak pochází SSH klíč, který je opět nahraný ve stejných výrobcích.
Proč do internetu?
Problém je ještě zveličen faktem, že jsou takto mizerně zabezpečená zařízení vůbec vystavena do internetu. Velkou měrou se na tom podílí i samotní výrobci, kteří ve výchozím stavu často otevírají dveře a nechají rozhraní poslouchat i na veřejné části sítě – typické je to například u zařízení Ubiquiti.
Dalším příkladem může být síťový disk Seagate GoFlex, který ve výchozím stavu nabízí přístup přes HTTPS i SSH a umí požádat o přesměrování portů pomocí UPnP. Takto je do internetu vystaveno přes 80 000 těchto zařízení a uživatelé o tom pravděpodobně ani neví.
Za problém mohou často ale i samotní poskytovatelé připojení, kteří svým uživatelům dodávají vlastní zařízení (routery, modemy) s nebezpečným firmware, a přitom je nechají volně otevřené do internetu. Je možné takto odhalit obrovské sítě plné různých krabiček, které mají stejnou konfiguraci, stejné privátní klíče a často i stejná hesla.
Situace se zhoršuje
Přestože se o podobných problémech hovoří už léta, studie SEC Consult ukazují, že se situace spíše zhoršuje. Faktorů je samozřejmě několik. Výrobci nemění své chování, nedbají na bezpečnost svých zařízení a stále sdílí firmware s jednou vygenerovaným klíčem. Zároveň nejsou schopni dodávat aktualizace, které by se o bezpečnost postaraly alespoň průběžně.
Uživatelé mohou také přispět, pokud budou pravidelně aktualizovat (když bude co) a používat firewall (pokud vědí jak). Problém sdílených klíčů to ale řeší jen částečně – i když není zařízení běžně viditelné na internetu, přesto jej občas uživatel chce spravovat na dálku a doufá, že spojení je zabezpečeno (vždyť je tam HTTPS!). Kvůli uniklému klíči je ale takové spojení nebezpečné.
Teoretickým řešením je výměna uniklých klíčů za vlastní, což ale zase naráží na to, že ne každé zařízení takovou výměnu vůbec dovolí. Často jsou klíče součástí uživatelsky nepřepisovatelné paměti (čili pevnou součástí firmware) a neexistuje jednoduchý způsob, jak je vyměnit. Případně uživatel nemá do zařízení vůbec přístup, což se týká právě nejrůznějších modemů dodaných poskytovateli – jejich role v bezpečnosti sítě je přitom kritická.
Co s tím?
Výrobci zařízení by měli do každého přístroje vkládat náhodný privátní klíč. To se dá zařídit buď v továrně nebo při prvním startu zařízení. Bohužel podobné krabičky obvykle trpí nedostatkem entropie po startu, takže pokud bychom chtěli generovat až u zákazníka, vyžadovalo by to hardwarový generátor v procesoru.
Poskytovatelé připojení by měli s dodavateli komunikovat a starat se společně o bezpečnost uživatelů. Také by neměli dovolit, aby bylo rozhraní otevřené do internetu. Pokud jej poskytovatel potřebuje, měl by jej oddělit do samostatné sítě nebo zabezpečit firewallem.
Uživatel může zkusit vyměnit klíče a nastavit firewall, ale jak už bylo řečeno – často má svázané ruce a není mu to umožněno. Navíc to vyžaduje netriviální znalosti a schopnost vůbec odhalit potřebu takového zásahu.