Esineiden internet lupaa avata yrityksille paljon uusia mahdollisuuksia uusien ja jännittävien palvelujen muodossa. Laitekirjon ja bisnessalaisuuksien liittyessä nettiin tarvitaan kuitenkin ankaraa ja luotettavaa tietoturvaa.
Artikkelin kirjoittaja Arlen Baker toimii Intelin omistaman Wind River Systemsin pääteknologikkona. Hän vastaa tietokoneiden ja verkkojärjestelmien turvallisuustuotteista. Baker on aiemmin työskennellyt Mykotronxilla ja General Dynamicsilla. Hän on valmistunut Nebraskan yliopistosta. |
Yksi pitkään käytössä ollut tietoturvamalli on CIA-malli. Tämän mallin (ks. kuva 1) keskeiset komponentit liittyvät luottamuksellisuuteen (confidentiality), eheyteen (integrity) ja saatavuuteen (availability).
IoT:n yhteydessä luottamuksellisuus viittaa IoT-laitteiden yksityisyyden suojaamiseen, eheys laitteessa säilytetyn datan varmistamiseen ja saatavuus siihen, miten laitteeseen päästään käsiksi (access). Tässä artikkelissa keskitytään datan eheyden säilyttämiseen.
Kuva 1. Luottamuksellisuus-, eheys- ja saatavuusmalli.
Kun ajattelemme IoT-laitteen dataa, meidän ei pitäisi ajatella vain laitteen generoimaa tai käyttämää dataa, vaan myös sen omaan ohjelmointidataa. Tämä kattaa kaikki ohjelmakoodin osat, konfigurointiparametrit ja käyttöjärjestelmän ohjelman. Eheysprosessin ohjaamista auttaa, jos ymmärtää datan kolme mahdollista tilaa: data liikkeessä, levossa ja prosessoitavana. Kuva 2 esittää eheyden periaatetta pilkottuna alaperiaatteisiin ja lopulta toteutuksiin, joita IoT-laitteessa voi olla datan eheyden suojaamiseksi.
Kuva 2. Datan eheys IoT-laitteessa.
Datan eheyden rikkoutuminen tarkoittaa, ettei IoT-laite voi toimia oikein, mutta se myös altistaa laitteen hyödynnettäväksi ja tekee laitteesta riskaabelin alustan, jolta muita hyökkäyksiä voidaan käynnistää.
Tavanomainen menetelmä datan eheyden varmistamiseksi on matemaattinen hajautuslgoritmi, joista turvattu SHA-algoritmi (secure hash algorithm) on suosituin.
Data-liikkeessä vaatii, että data suojataan muokkaamiselta sen matkalla anturista pilvisovellukseen. Vaikka käytettäisiin hash-tekniikkaa, hyökkääjä voi muuttaa viestiä ja uudelleenlaskea hajautusarvon. Vahvempi lähestymistapa on käyttää datan eheyden tarkistamiseen jaettua yksityistä avainta, kuten kuvassa 3 on esitetty. Tätä kutsutaan avaimelliseksi viestin hash-autentikointikoodiksi (HMAC, hash message authentication code), ja koska se vaatii jaetun yksityisen salausavaimen, pitää se suojata kuten mikä tahansa salausavain.
Kuva 3. HMAC-autentikointi.
Mitä tulee dataan-levossa, mahdollisuuksia on useita. Ensinnäkin tallennettu ohjelmakoodi pitää verifioida ja se tehdään käynnistysvaiheessa (ks. turvakäynnistys tämän artikkelin seuraavassa osiossa). Konfigurointidata ja kaikki muu tallennettu laitedata pitäisi aina verifioida ennen kuin IoT-laite prosessoi sitä. Ajastettuja eheystarkistuksia voidaan tehdä toiminnan aikana ja aina käynnistyksen ja sammuttamisen yhteydessä.
Eheystarkistuksia pitää tehdä myös prosessoitavalle datalle, jotta varmistutaan siitä, että dataan ja sen kulkuun voidaan luottaa. Käyttämällä ainutlaatuisia luetteloarvoja ohjelmiston läpi voidaan varmistaa, että rajapintoja kutsutaan vain ko. rajapintaan liittyvillä parametreilla.
Kuva 4. Käynnistys- eli boot-prosessi.
Käynnistysprosessivarmennus voidaan jakaa kahteen erilliseen osaan, kuten kuvassa 4 on esitetty. Ensiksi turvakäynnistys aloitetaan luotetulla alustalla ja se määrittelee alustavien kuvien luotettavuuden.
Verifiointi- tai varmennusprosessi toteutetaan parhaiten digitaalisten allekirjoitusten avulla. Digitaalisessa allekirjoituksessa yhdistetään hash-toiminto asymmetriseen yksityisen avaimen salaukseen tällä toiminnolla. Allekirjoitus verifioidaan laskemalla uudelleen viestikokonaisuus, puretaan tähän liittynyt digitaalinen allekirjoitus julkisella avaimella ja verrataan näitä viestejä. Mikäli viestit vastaavat, ohjelmiston eheys on varmennettu.
Toinen vaihe käynnistysprosessissa on luotettu käynnistys (trusted boot), jossa jäljellä olevat kuvat ja data verifioidaan aiemmin varmennetun ohjelmiston avulla. Parhaassa tapauksessa käynnistysprosessissa käytetään laitteistoa eheyden varmentamiseen, koska raudan muuttumattomat ominaisuudet (oli kyse sitten SoC-piiristä tai FPGA:sta) eliminoivat haitallisten muutosten riskin, mikä aiheuttaisi murtumisen verifioidussa käynnistysprosessissa. Prosessia, jossa yksi verifioitu kuva toimii toisen kuvan varmennuksen kontrollina, kutsutaan luottamuksen ketjuksi (ks. kuva 5). Tämä lähestymistapa varmistaa, että vain verifioituja ohjelmistoja voidaan ladata järjestelmään.
Kuva 5. Luottamuksen ketju.
Jos IoT-laitteella on luotettava, aina päällä oleva internet-liitäntä, voidaan käyttää etävarmennusta raportoimaan ja validoimaan käynnistyksen avainparametri turvakäynnistysten aikana fyysisesti erilliseltä palvelimelta. Näihin parametreihin kuuluu tyypillisesti käynnistysprosessin komponenttien (käynnistyslatain, sovellukset, jne.) hash-arvo. Palvelin vertaa näitä mittausarvoja ja määrittelee IoT-laitteen luotettavuuden. Mittausten siirto on salattu ja siihen täytyy sisältyä tieto IoT-laitteen identiteetistä.
Jokainen internetiin kytketty laite on riskin alainen, eivätkä IoT-laitteet muodosta mitään poikkeusta. Eheyden suojaaminen lisäkerros tulee ns. kolmen A:n kautta (AAA, authentication, authorization ja accounting). Sen tehtävä on määritellä minkä muiden verkossa olevien laitteiden kanssa IoT-laite voi viestiä ja mitä dataa niiden välillä voidaan siirtää. IoT-laitteen ja etälaitteen tai palvelimen välisen tietoliikenteen välille tarvitaan luotettu kumppani tai välittäjä. Tämä laitteiden välinen luottamus verkon yli voidaan muodostaa esimerkiksi hyvin vakiintunella Kerberos-protokollalla.
Autentikoinnin jälkeen seuraa auktorisointi, mikä tarkoittaa resurssille sallittua pääsytapaa (access) verkossa. Koko verkon laajuista turvakäytäntöä (policy) käytetään luetteloimaan resurssit, tietoliikenteen reitit resurssien välillä sekä mahdollisen pääsyn taso.
AAA:n viimeinen komponentti on selonteko eli IoT-laitteeseen liittyvien tietoturvatoimien tapahtumalokin generointi. Tapahtumalokit voidaan tallentaa IoT-laitteeseen tai – mikä on yleisempää – ulkoiselle palvelimelle. Tietoturvakäytäntö määrää, mitä tapahtumia pitää tallentaa. Lokia ja siihen liittyvää dataa tarkastelemalla voidaan päätellä, mikä johti hyökkäykseen, mistä se tuli ja mitä sen aikana tapahtui. Nämä tapahtumat on parasta tallentaa mahdollisimman reaaliaikaisesti, jotta minimoidaan hyökkäyksen mahdollisesti aiheuttama vahinko ja voidaan laatia tietoturvakäytöntöihin määriteltävä ensivastaus (front-line response).
Koska seurattavia IoT-laitteita ja lokitapahtumia on erittäin paljon, vaaditaan tallennukseen erikoispalvelin. Tämäntyyppistä laitetta kutsutaan SIEM-palvelimeksi eli turvainformaation ja tapahtumien hallinnan palvelimeksi (security information and event management server). SIEM-palvelin pystyy korreloimaan IoT-laitteista vastaanotettuja turvatapahtumaviestejä ja hyödyntämään ennustavaa analytiikkaa määritelläkseen, onko IoT-laite hyökkäysriskin kohteena.
Johtopäätöksenä voidaan sanoa, että tarvitaan tiukkaa ja luotettavaa lähestymistä tietoturvaan, jotta verkkoon liitettyjen IoT-laitteiden valtavasta potentiaalista saadaan kaikki hyöty irti. CIA-malli tarjoaa hyvin yksinkertaisen mallin IoT-laitteiden turvatarpeiden löytämiseen ja esittämiseen. Datan eheyden ylläpito on selvästi yksi tietuturvakäytäntöjen toteuttamisen avainkohtia, ja samaa lähestymistapaa pitää käyttää luottamuksellisuuden ja saatavuuden suhteen. Wind River tarjoaa laajan valikoimaan tuotteita ratkaisuja, jotka toteuttavat CIA-mallin eheyden vaatimukset asiakkaan IoT-tarpeissa.