Flashing IoT firmware – odstrihnutie zariadenia od Cloudu

Tento článok je ďalším článkom zo série Reverse Engineering IoT zariadení. Nebudeme v ňom tentokrát detailne analyzovať zariadenie ale ukážeme si spôsob akým môžeme nahrať vlastný firmware a tým sa odstrihnúť od Cloudového riešenie výrobcu.

Naším dnešným hosťom (IoT zariadením) bude robotický vysávač Roborock S5 Max. Tento domáci pomocník dokáže jak zametať, tak i umývať podlahu. Ovládanie je jednoduché, stačí si nainštalovať na mobilný telefón aplikáciu, pripojiť vysávač k domácej WiFi sieti a môžete ho ovládať kdekoľvek zo sveta. Kľudne môže upratovať zakiaľ čo vy ste v práci. Niektoré novšie modely majú dokonca aj kameru, ktorá zlepšuje efektivitu upratovania.

Picture2
Picture3

Zariadenie nám síce uľahčuje život ale teraz sa skúsme pozrieť na problém z pohľadu IT Security človeka. Zasa raz si púšťame do bytu neznámeho človeka. Dobre, možno to nie je priamo človek, je to zariadenie, ktoré je nonstop pripojené do Cloudu. Z tohto Cloudu získava inštrukcie čo a kedy má spraviť. Tentokrát už nejde ani o statický predmet v jednej izbe ale o pohyblivé zariadenie, ktoré v kombinácii s kamerou (vyššia verzia) už naozaj predstavuje špióna u vás doma. Obrázok nižšie zobrazuje obecný pohľad na komunikáciu rôznych zariadení v rámci jedného ekosystému.

Picture4

Komunikácia s Cloudom je zobrazená na obrázku nižšie a veľmi pripomína komunikáciu IoT zariadenia z predošlého článku.

Picture5

Neuškodí trochu zdravej paranoje a môžeme si klásť otázky, prečo zariadenie nie je možné ovládať lokálne? Prečo zariadenie musí posielať o nás informácie, ktoré naozaj nepotrebuje ku svojej funkcionalite? Ako je zabezpečený samotný Cloud a môže kompromitáciou dôjsť ku kompromitácii nášho zariadenia? Kto všetko má prístup k našim údajom? Mohli by sme sa pýtať ďalej no už toto nás môže dostatočne motivovať na to, oslobodiť sa od tohto riešenia a mať zariadenie pod vlastnou kontrolou.

Našťastie pre nás existuje cesta ako zariadenie odtrhnúť od Cloudu. V dobe písania článku to ale bola cesta skrz fyzické rozobratie zariadenie a flash pamäte na základnej doske. Začneme teda z rozoberaním. Obrázok nižšie zobrazuje odstránenie horného krytu.

Picture6

Následne je nutné zariadenie prevrátiť a odskrutkovať skrutky zo spodnej strany.

Picture7

Po odobratí spodného krytu sa nám ukážu vnútornosti zariadenia.

Picture8

Bohužiaľ, potrebujeme sa dostať k základnej doske z druhej strany a teda sme so skrutkovaním ešte neskončili. Po odskrutkovaní posledných skrutiek a vybratí základnej dosky sa môžeme na ňu pozrieť z druhej strany.

Picture9

Toto je práve tá strana, na ktorej máme prístup k UART rozhraniu. Stačí na internete nájsť to správne miesto a prispájkovať kontakty.

Picture10

Tak ako v minulom článku budeme potrebovať USB – UART prevodník. Celé zapojenie je zobrazené na nasledujúcom obrázku. Pre prevodník nám stačilo prispájkovať iba Rx a Tx kontakty. Dosku napájame z baterky vysávača a pre Gnd je využitý ďalší USB kábel (na obrázku je to biely kábel napravo). Komunikácia prebieha skrz šedý USB kábel.

Picture11

Teraz stačí zvoliť správne parametre pre komunikáciu, držať si palce a ak sme úspešní tak sa nám zobrazí obmedzený príkazový riadok.

Picture12a
Picture12b

V tomto kroku nám stačí využiť to, čo nadšenci pred nami už vymysleli – prepísať originálny firmware upraveným, ktorý ma povolenú SSH službu a zablokovanú komunikáciu s Cloudom.

Picture13

Po úspešnom flashnutí zariadenia sa naňho môžeme pripojiť pomocou SSH.

Picture14

Zariadenie teraz môžeme ovládať buď pomocou knižnice miio pre python alebo pomocou web prehliadača a nástroja Valetudo. Oba tieto nástroje sú open-source a každý môže nahliadnuť do ich útrob a fungovania.

Picture16
Picture15

Záver

IoT zariadenia sú súčasťou dnešného sveta a mnohých domácností. Nemôžeme ale zabúdať na bezpečnostné riziko spojené s použitím týchto zariadení i v domácnosti. Okrem očividného rizika spojeného so súkromím vo vlastnom dome je na mieste myslieť aj na to komu dávame prístup k našej domácej sieti a zariadeniam v nej. Ako príklad môžeme uviesť, že dnes sa môže i bežný človek stať terčom hackerov, ktorí mu zašifrujú celoživotné fotky na domácom NAS úložisku. A to len preto, že jeho vysávač/chladnička/lampa bola zraniteľná a umožnila hackerom získať prístup do domácej siete. Je preto na mieste mať prehľad, ktoré zariadenie sa kam pripája a ideálne nedôverovať v bezpečnosť tretích strán o ktorých nič nevieme.

Referencie

Tento článok by neexistoval nebyť ľudí, ktorí sa spoločne podieľali na tom aby IoT zariadenia mohli byť slobodné.