IoT | Avast | Hacking | Chytrá domácnost | Únik dat

Odposlouchávali jsme děravou domácnost: Katka z Brightonu právě sedí doma, zatímco její manžel hraje asi golf

  • Na internetu jsou tisíce nezabezpečených chytrých domácností
  • Podívali jsme se na jednu z britského Brightonu
  • Útočník sestaví kompletní socioekonomický profil rodiny

Nedělní večer čas od času patří našemu seriálu Pojďme programovat elektroniku, ve kterém s pomocí arduin, nejrůznějších Wi-Fi čipů a dalších součástek a s několika málo desítkami řádků kódu stavíme nejrůznější senzory, roboty a další elektroniku.

Dnes se ale na tento svět chytrých domácností podíváme z poněkud odlišného úhlu. A docela hrozivého, Martin Hron z Avastu se totiž před pár dny na podnikovém blogu pochlubil zjištěním analytického týmu, které popisuje velké mezery v zabezpečení chytrých domácností.

Není to zdaleka poprvé. Na seznamy veřejně dostupných soukromých wekamer z nejrůznějších provozů, ale i ložnic jsme si už tak nějak zvykli, přičemž mnohé z těch motorizovaných můžeme i snadno ovládat přímo z prohlížeče.

fa1a4e16-eb62-4b2b-b32e-79885dec725d
Lucku vůbec netěší, že bude opět vařit guláš. Lukáš je naopak nadšený. Aneb ze života špatně zabezpečených kamer v nejrůznějších provozech.

Stejně tak už dnes nikoho nepřekvapí špatně zabezpečené dětské chůvičky, a tak se na YouTube čas od času objeví nové video, kdy se z některé z nich uprostřed noci namísto dětského pláče potomka ozve hysterický smích hackera, který se baví pohledem na šokovaný pár v posteli, neboť stejně tak získal přístup k bezpečnostním kamerám v domě s nočním viděním.

Zatímco nebohý pár v takových případech potřebuje dobrého ajťáka, hacker experta na lidskou duši.

Ahoj, já jsem teploměr a skrze MQTT ti řeknu, kolik je venku stupňů

Ale zpět do Avastu. Bezpečnostní inženýři si tentokrát vzali na paškál síťový protokol MQTT (Message Queuing Telemetry Transport), který je už podle svého plného názvu určený pro výměnu stručných zpráv a nejrůznější krabičky internetu věcí jej používají jako základní komunikační protokol s centrálou. Mimo jiné i proto, že se jedná o principiálně univerzální protokol, kterým může protéci v podstatě jakákoliv jednoduchá stavová zpráva – ať už údaj o teplotě na zahradě, nebo stav domácího alarmu.

ee5dbe69-4011-4ea6-9abb-5077a53561b4
Základní princip komunikace v MQTT. Publisher (třeba chytrý teploměr) publikuje data do Brokeru (MQTT server), ze kterého je pak čtou Subscribeři (další systémy chytré domácnosti, mobilní aplikace apod., které se registrují k odběru těchto zpráv) Zdroj: Morpheus Labs

Každá zpráva v MQTT je identifikovaná svoji hierarchickou strukturou (Topic), která připomíná třeba tu adresářovou na vašem úložišti a už z ní se toho dá mnoho vyčíst o charakteru samotných dat.

83de7343-369c-4882-a654-2312d5b705e4
Obvyklá hierarchická struktura zpráv v systému MQTT. Zde se tedy zjevně jedná o údaje z teplotního čidla a vlhkoměru. Zdroj: Morpheus Labs

Desítky tisíc nešifrovaných a zcela veřejných MQTT serverů

Protokol má za sebou už bezmála dvacetiletý vývoj a sám o sobě odvádí práci poměrně dobře, jak si však všimli experti z Avastu nebo třeba loni Victor Pasknel z Morpheus Lab, veškerá snaha přijde vniveč, pokud se zapomene na základní bezpečnostní poučky. Klíčovým bodem protokolu MQTT je totiž broker – server, který se stará o to, aby se zprávy z chytrých krabiček dostaly ke koncovým odběratelům a případně i naopak.

838c7d68-929d-437a-9d90-82774addfa40
Skoro padesát tisíc MQTT serverů je dostupných skrze veřejný internet a přes třicet tisíc z nich není chráněno ani základním heslem (Zdroj: Avast/Shodan)

Ačkoliv tato komunikace může být šifrovaná a práva ke zprávám chráněná autorizací, až příliš často tomu tak není a mnoho podobných brokerů tak zcela veřejně vysílá na internetu. Stačí jen zjistit IP adresu špatně zabezpečené domácnosti a podobnému brokeru přikázat: „Ahoj, pošli mi seznam všech zpráv.“

A přesně před tím čerstvě varuje Avast, který si všiml, že přes vyhledávač internetu věcí Shodan lze dohledat IP adresy nejrůznějších domácností z celého světa, na kterých je dostupný MQTT broker. Broker, který odpovídá, můžete se k němu připojit a začít hltat informace.

Shodan svleče děravé domácnosti do naha

Příklad ze života je k nezaplacení, ve zbytku článku se tedy na jednu takovou IP adresu připojím. Jak jsem k ní přišel? Jednoduše jsem do vyhledávacího pole Shodanu zadal klíčové slovíčko mqtt a v prohlížeči se mi okamžitě zobrazil zástup IP adres, na kterých indexovací robot vyhledávače na standardním TCP portu 1883 objevil komunikující MQTT server.

ac0f08e1-a352-4816-ab65-a933ab3b59bd
Pro začátek stačí v Shodanu vyhledat magické slovíčko mqtt

Pak už jen stačí nainstalovat libovolný MQTT klient a začít experimentovat. Já si pro tyto potřeby upravil naprosto primitivní skript napsaný Victorem Pasknelem v Pythonu (viz jeho dříve citovaný článek), který se pokusí spojit s MQTT na zadané adrese a poté zkusí odebírat všechny dostupné zprávy.

Pokud se mu to podaří, v terminálu se začnou v nekonečné smyčce vypisovat všechny zprávy, které díky hierarchické struktuře svých názvů rychle napoví, co asi obsahují.

Pan Smith z Brightonu a jeho Kačka

Velmi brzy jsem v Shodanu narazil na MQTT broker běžící na jedné z brightonských IP adres Virgin Media, který už ve vyhledávači vypadal poměrně zajímavě – sliboval enormní množství zpráv.

ce0b31ef-8728-47e6-8762-ebf6515ab3a9
Cíl dnešního experimentu: Rodina z Brightonu, která má přípojku od Virgin Media a na veřejné IP adrese jejich routeru a TCP portu 1883 odpovídá populární MQTT server Mosquitto.

Během několika málo sekund jsem se dozvěděl prakticky vše ze života jednoho mladého britského páru, kterému budu nadále říkat pan Smith a jeho Kate, neboť ani chabé zabezpečení jejich domácnosti nemůže být důvodem k veřejnému lynči na hraně zákona.

Pan a paní Smithovi žijí v rodinném domě, díky hierarchické struktuře zpráv na mě totiž začaly okamžitě vyskakovat zprávy pojmenované jako smartthings/Dome Siren, smartthings/Front Door Sensor nebo třeba smartthings/Hall Motion Sensor. Zpráva smartthings/Boys Room Motion Sensor pak zase napovídá, že pár nejspíše nežije o samotě.

2cea5be1-4c85-4423-a058-0fabd82129f0
Spojení s MQTT serverem se podařilo a terminál mi zaplnila smršť zpráv. Podle jejich názvů lze velmi snadno rozklíčovat, že se bude nejspíše jednat o rodinný dům, protože těch chytrých čidel a krabiček je tam opravdu velmi mnoho.

Mimochodem, první identifikátor smartthings nejspíše patří systému Samsung SmartThings, který má nešťastná rodina propojený na nezabezpečený MQTT broker.

cc87b809-66af-46f4-99ea-2634a87a1350
Podle názvu zpráv se zdá, že dům pohání systém SmartThings od Samsungu, který je však kvůli publikaci ve špatně zabezpečeném MQTT kompletně dostupný z internetu

Brzy na mě vyskočilo plné jméno majitele

Z pohybových čidel, které má rodina umístěna jak v hlavní hale, tak v ložnici, lze snadno usoudit, zdali je někdo doma. Pokud bych byl zloděj, byl by to docela zajímavý údaj.

Na námitku, že přeci vůbec nemohu tušit, co je to za dům, mám docela stručnou odpověď. Pan Smith má v systému zaregistrovaný i svůj telefon s Androidem, takže chytrá domácnost ví, jestli je telefon v blízkosti (a pan Smith je doma).

Problém spočívá v tom, že topic této zprávy má plný název:

smartthings/John Smith's Android/presence/state

d378a53b-718b-4805-b0e2-00b5aa4c4c4c
Telefon hlavy rodiny je nepřítomen, ale už znám její celé jméno, které s dovolením v obrázku opět zneviditelním.

Zopakuji, že John Smith se ve skutečnosti jmenuje trošku jinak, jeho reálné jméno pochopitelně zveřejňovat nebudu, nicméně už z názvu zprávy jsem se dozvěděl, o koho se jedná.

cb515568-a82a-428b-badd-dd983ce15fed
Katčin telefon doma už ale je. Kate možná luxuje. To je však pouze hypotéza, chytrý vysavač jsem totiž ve výpisu neidentifikoval.

Mimochodem, zatímco pan Smith v pátek odpoledne doma není, jeho žena Kate ano. I její telefon je totiž zaregistrovaný v systému a MQTT jasně hlásí: present (přítomen).

Krátce poté jsem se dozvěděl, kde pan Smith tráví odpoledne

No dobrá, ale sakra kde je tedy pan Smith? Jelikož tento článek píšu v pátek odpoledne, možná stejně jako já sedí kdesi v kanceláři. Soudě podle ohromného množství chytrých hraček, které má doma (Xiaomi, Sonoff) jen doufám, že jej neživí informační technologie. To by byla ostuda.

Kde tedy je?

Dost tajnůstek, v práci nebude a já tuším, kde se zpozdil. Tyto pikantní detaily znám jednoduše proto, že skrze MQTT broker rodiny Smithových létají zprávy ještě z jednoho zajímavého zdroje. Mimochodem, tady už opravdu přestává veškerá legrace, Kate totiž může sledovat polohu svého muže díky mobilní aplikaci OwnTracks pro Android a iOS. Na tom by nebylo nic zvláštního, ostatně sami v rodině používáme sdílení polohy od Googlu, nicméně OwnTracks pana Smithe údaje o aktuální GPS posílá i do domácího (a nezabezpečeného) systému MQTT!

dea9cff9-ba79-459e-8a68-98e86366a2c5
Údaje ze sdílení polohy OwnTracks na nezabezpečeném MQTT serveru. To je průšvih. Bohužel i podle zjištění expertů z Avastu nikterak ojedinělý.

A tak mohu doslova živě sledovat polohu telefonu, vidím že už by měl John pomalu hledat nabíječku (baterie na 58 %), vidím čas posledního změření polohy a také odchylku (16 metrů). V obrázku jsem polohu opět trošku zneviditelnil, nicméně systém hlásí, že je někde poblíž domova (inregions: home), ačkoliv přímo doma být nemá.

Může být tedy na zahradě, může venčit psa o pár bloků dál, anebo... Anebo hraje golf, přesná poloha totiž odpovídá jedné z jamek hřiště v sousedství.

Časovaná bomba?

Suma sumárum, pokud bych byl kybernetický útočník, během několika sekund si udělám v podstatě kompletní socioekonomický obrázek o jedné středostavovské rodině žijící na jihu Anglie. K pokročilejší analýze by stačilo sledovat polohu telefonů a další aktivity přímo v domě třeba několik dnů.

Nepotřeboval jsem k tomu žádné pokročilé technologie z hollywoodských filmů. Vystačil jsem si s veřejně dostupným a uživatelsky velmi jednoduchým vyhledávačem internetu věcí Shodan, běhovým prostředím Pythonu a jednou z jeho komunitních knihoven paho-mqtt pro komunikaci skrze protokol MQTT. A ano, ještě jsem potřeboval Google, skrze který jsem vyhledal stručný Pasknelův kód na několika málo řádcích, který vše za zlomek času zpracoval.

Ačkoliv se bezpečnostní experti o internet věcí zajímají stále více, i tento příklad ukazuje, že si s rostoucím počtem chytrých krabiček v síti zaděláváme na potenciálně ohromný problém. Ne snad, že by krabičky samotné byly špatné, ale buď mnohdy nesplňují základní bezpečnostní standardy, anebo tato pravidla může majitel domácnosti, třebas i z důvodu neznalosti, snadno deaktivovat, obejít nepovinným šifrováním a autentizací atp.

O to více bude zajímavější sledovat, jak na tuto výzvu zareagují právě antivirové společnosti, které se v minulých letech velkou měrou soustředily na segment chytrých telefonů, ačkoliv ochránit domácí síť je výhledově mnohem větší a snad i důležitější výzva.

Běžný antivir na to stačit nemusí, a tak i zmíněný Avast experimentuje s platformou Smart Life. Klasický antivirus na PC jednou doplní dedikovaná krabička připojená do domácí sítě, anebo běžný Wi-Fi router s vlastním speciálním antivirem, který bude od rána do noci sledovat tok v lokální síti a i pomocí prvků strojového učení hledat vzory špatného chování – třeba zrovna nezabezpečený MQTT broker


Upozornění pod čarou: Tímto experimentem v žádném případě nepropagujeme průniky do počítačových systémů na hraně i za hranou zákona, ale praktickou demonstrací upozorňujeme na současný stav a technickou jednoduchost takové operace, kterou s trochou píle zvládne každý školák s počítačem. Bez nadsázky.

Diskuze (31) Další článek: Samsung vyhlíží další hit, Huawei slaví druhé místo a Apple má žebříček na háku

Témata článku: , , , , , , , , , , , , , , , , , , , , , , , , ,