Najväčšia zraniteľnosť vašich IoT zariadení vznikla už v prvom šprinte

Ondrej Kostolnak
Ondrej Kostolnak
Dizajn a vývoj
Biely 3D bezpečnostný štít chrániaci moduly prepojených zariadení.

Mnohé produktové tímy vnímajú registráciu zariadení len ako úvodné nastavenie. Položku, ktorú stačí odškrtnúť. Zariadenie dostane prístupové údaje, spojí sa s platformou a tím sa pustí do tvorby dashboardu.

To je chyba. Nenápadne narastá, až kým v teréne nespravujete 10 000 zariadení s bezpečnostným modelom, ktorý sa nedá zmeniť bez stiahnutia hardvéru.

Problém prístupu „hlavne to pripojme“

Typický priebeh: tím tvorí IoT platformu a potrebuje komunikáciu zariadení. Vygeneruje API kľúč, napevno ho vloží do firmvéru a odošle produkt. Funguje to. Zariadenia sa pripájajú, dáta prúdia, zainteresovaní sú spokojní.

Potom sa niekto opýta: čo sa stane, ak kľúč unikne?

V mnohých začínajúcich IoT platformách je odpoveď nepríjemná. Jeden kompromitovaný kľúč ohrozí všetky zariadenia, ktoré ho používajú. Prístup jedného kusu nemožno odvolať bez vplyvu na ostatné. Chýba auditná stopa, ktoré zariadenie poslalo ktorú správu. A náprava vyžaduje aktualizáciu firmvéru na hardvéri, ktorý nemusí byť dostupný.

Takto sa vypomstí, keď pripájanie zariadení beriete len ako technický detail.

Čo všetko závisí od registrácie zariadenia

Registračný postup určuje bezpečnostné nastavenie každého nasadeného zariadenia na celú životnosť. Ak ho navrhnete správne včas, neskôr máte možnosti. Ak nie, len zmierňujete škody.

Dobre navrhnutý proces odpovedá na niekoľko otázok, ktoré tímy často preskočia príliš rýchlo.

Kto vytvára identitu zariadenia? Registrácia má prebehnúť pri výrobe alebo príprave, nie pri prvom pripojení zariadenia. Platforma vytvára identitu pomocou prihlasovacích údajov výrobcu, nie zariadenia. Toto oddelenie je dôležité. Subjekt registrujúci zariadenia nie je samotné zariadenie a tieto roly potrebujú odlišné oprávnenia.

Čo zariadenie skutočne dostane? Každé zariadenie dostane globálne jedinečný identifikátor a vlastný token. Token sa uloží do zabezpečeného úložiska a je jediným dokladom identity zariadenia. Jedno zariadenie, jeden token, jedna identita. Pri úniku tokenu odvoláte prístup jednému zariadeniu. Zvyšok flotily zostáva nedotknutý.

Kedy považujete zariadenie za pripojené? V návrhu často chýba jeden dôležitý krok. Zo stavu „vyrobené“ by malo zariadenie prejsť do stavu „registrované“ až po prvej platnej komunikácii s platformou. Dovtedy síce v systéme existuje, no ešte nepreukázalo, že sa dokáže pripojiť. Pri monitorovaní je podstatný rozdiel medzi zariadením, ktoré sa za pol roka nikdy nepripojilo, a tým, ktoré včera komunikovalo a dnes sa odmlčalo.

Overovanie každého zariadenia ovplyvňuje celú architektúru

Keď má každé zariadenie vlastnú identitu a token, dôsledky sú výrazné.

Oprávnenia nastavujete pre každé zariadenie. Zariadenie môže publikovať len vo vlastnom mennom priestore tém. Nemôže sa vydávať za iné ani pristupovať k dátam mimo svojho rozsahu. Pri MQTT to znamená publikovanie do devices/{deviceUid} a nikam inam. Pri HTTPS sa bearer token mapuje presne na jednu identitu zariadenia.

Každé zariadenie môžete spravovať samostatne. Vidíte, ktoré konkrétne zariadenie sa správa nesprávne, odvoláte mu prístup bez aktualizácie celej flotily, odošlete firmvér vybraným skupinám podľa typu a nastavíte správanie jednotlivo alebo pre celý typ.

Pri incidente viete zistiť, čo sa stalo. Keď sa niečo pokazí – a pri tisíckach zariadení v teréne sa niečo pokazí vždy – potrebujete odpovedať na otázku „ktoré zariadenie, kedy a čo poslalo?“. Samostatná identita zariadenia odpoveď dá. Zdieľané prístupové údaje nie.

Bezpečnosť aktualizácií firmvéru a konfigurácie závisí od vášho bezpečnostného modelu

Pri aktualizáciách sa ukáže, či ste registráciu a overovanie zariadení navrhli dobre.

Zariadenie má aktualizáciu firmvéru vyžiadať cez overený prístup k API. Platforma skontroluje priradený firmvér, poskytne URL na stiahnutie a zariadenie pred inštaláciou overí integritu. Po aktualizácii sa znova pripojí a nahlási nový stav.

Bez samostatného overovania zariadení nič z toho nefunguje bezpečne. Neoveríte, či o aktualizáciu žiada zamýšľané zariadenie. Nepotvrdíte, že správa po aktualizácii prišla z oprávneného zdroja. A nesledujete spoľahlivo, ktoré zariadenia sa aktualizovali a ktoré nie.

Konfigurácia funguje rovnako. Platforma uchováva požadovaný stav každého zariadenia – frekvenciu hlásení, limity senzorov, aktívny či pasívny režim – a zariadenie sa s ním synchronizuje. Nastavenie prepíšete pre jeden kus alebo určíte predvolené hodnoty podľa typu. Aj toto funguje len vtedy, keď má každé zariadenie vlastnú identitu a platforma ho dokáže osloviť samostatne.

Čo to znamená pre váš ďalší IoT projekt

Pri plánovaní IoT platformy láka najprv rozbehnúť dáta a bezpečnosť vyriešiť neskôr. Je to pochopiteľné, ale drahé.

Registračný model je rozhodnutie, ktoré sa po nasadení zariadení do terénu mení ťažko. Všetko ostatné – spracovanie správ, úložisko, dashboard – možno prepracovať. Identita zariadenia je však zabudovaná do hardvéru a firmvéru. Jej zmena znamená zásah do každého nasadeného kusu.

Tri veci, ktoré sa oplatí nastaviť správne od prvého dňa:

Oddeľte prístupové údaje výrobcu od údajov zariadení. Systém registrujúci zariadenia potrebuje iné oprávnenia než zariadenia samotné. Zmiešanie týchto rolí vytvára jedno miesto, ktorého narušenie ohrozí všetko.

Jedno zariadenie, jeden token, jedna identita. Žiadne spoločné kľúče ani údaje pre celú flotilu. Úsilie navyše pri príprave jednotlivých zariadení je zanedbateľné oproti cene incidentu, ktorý nedokážete ohraničiť.

Určite stavy zariadenia počas jeho životnosti. Vyrobené, registrované, aktívne, neaktívne, vyradené. Každý stav má iné dôsledky pre monitoring, upozornenia a riadenie prístupu. Ak platforma nerozozná „nikdy sa nepripojilo“ od „prestalo sa pripájať“, pracujete naslepo.

Základné rozhodnutia o registrácii určujú, či budete vedieť bezpečne spravovať aj 10 000 zariadení. Nemusia byť zložité, no treba ich premyslieť včas. Registrácia je súčasť architektúry, nie len úloha, ktorú treba uzavrieť do konca šprintu.

Zdieľať na

Spýtajte sa Outloud

Čo práve
riešite?

Preberme váš projekt, problém vo firme alebo niečo, čo by ste si radi uľahčili.

Odpovede pripravuje AI od OpenAI. Rozhovory môžeme poslať nášmu tímu e-mailom na kontrolu. Ochrana súkromia