Sulautetun järjestelmän suunnittelussa turvallisuuden takaaminen vaatii suurta paneutumista. Uutiset hakkerien varastamista arkaluontoisista tiedoista tai verkkosivun toiminnan estämisestä vaarantaen käyttäjätietojen turvallisuuden, ovat omiaan pitämään ohjelmistokehittäjät valppaana. Uhkia on odotettavissa jatkuvasti muuttuvilta tahoilta, ja hyökkäysten välittäjät ja hyökkääjät ovat koko ajan liikkeessä.
Artikkelin on kirjoittanut Mouser Electronicsin Simon Holt. Hänellä on yli 20 vuoden kokemus elektroniikkateollisuudesta, ja hänellä on teknistä asiantuntemusta FPGA-, mikro- ja DSP-alueilla. Hän on työskennellyt useissa tehtävissä jakeluyrityksissä sovellustuessa sekä tuotemarkkinoinnissa. |
Vuoden 2020 lopulla erään puolijohdetoimittajan koko tuotantokapasiteetti oli hakkerien kiristyksen kohteena. Näin pääsi tapahtumaan teollisuuden alueella, mistä ovat lähtöisin parhaimmat turvallisuutta koskevat käytännöt. Hyökkääjät etsivät kohteikseen yksittäisiä kuluttajia pienten palkintojen houkuttelemana. Suurten yritysten ja organisaatioiden kohdalla palkinnot ovat mahdollisesti suurempia ja ne pyrkivät välttämään kaikkea negaviitita julkisuutta.
Nykyisin operatiivisen teknologian (OT) alueella, kuten esineitten internetissä (IoT), ohjelmistokehittäjillä on suuri vastuu toteuttaa kaikki heidän tekemänsä suunnittelu tehokkaimpien turvallisuuskriteerien mukaisesti. Hyökkäysten siirtyminen yritysten etäpilvipalvelimista ja datakeskuksista paikallisiin toimintateknologian kohteisiin kuten antureihin, edge-laitteisiin ja yhdyskäytäviin on osoitus hyökkäysvektorien muuttumisesta, mikä näkyy kuvassa 1. Esimerkiksi hyökkäyksen pääsy edge-lämpöanturiin ei vaaranna pelkästään yksittäistä laitetta, vaan se tarjoaa myös mahdollisuuden hyökkäykseen laajempaan infrastruktuuriin anturista käsin.
Kuva 1: Hyökkäysvektorit siirtyvät etäältä lähemmäksi. (Lähde: Silicon Labs)
Sääntely-ympäristö on myös muutosvaiheessa ja uusimpia säännöksiä Yhdysvalloissa ja Euroopassa suunnitellaan koskemaan sekä kulutus- että teollisuuselektroniikan laitteita.
Yhdysvalloissa on valmisteilla liittovaltiotason lainsäädäntöä, kuten NIST.IR 8259, jolla määritetään turvallisuuteen liittyvät asiat ja suositukset IoT-laitteille. Kun NIST-standardi saadaan vahvistettua, siitä on tulossa kansainvälisesti tunnustettu IoT-laitteiden ISO-turvastandardi. Monet yksittäiset Yhdysvaltain osavaltiot ovat myös hyvissä ajoin ottamassa käyttöön NIST.IR 8259 -määrittelyt. Kuvassa 2 on tuotu esiin eräitä lainsäädännössä mukana olevia turvallisuuden pääperiaatteita.
Kuva 2: NIST.IR 8259 -standardin kehysrakenne IoT-laitteiden turvallisuudelle. (Lähde: Silicon Labs)
Euroopassa on kehitetty vastaavaa säännöstöä ETSI:n toimesta ryhmässä TS 103 645. Vahvistettu Eurooppa-standardi EN 303 645 nimeltään ”Cybersecurity for Consumer Internet of Things” on otettu laajasti käyttöön EU:n jäsenvaltioissa ja muissa maissa kuten Australiassa.
Tässä artikkelissa esitetään entistä vahvemman IoT-laitteiden turvallisuuden toteutuksen vaiheet ja selostetaan sulautettujen järjestelmien turvallisuuden taustalla olevia käsitteitä sekä johdonmukainen kaiken kattava lähestymistapa sulautettujen laitteiden turvallisuuden toteuttamiseksi.
Laitteen mahdollisia haavoittuvuuksia
Vaikka sulautetun järjestelmän suunnittelijat ovatkin hyvin perillä turvallisuusvaatimuksista, niiden toteuttamisessa tarvittavat vaiheet osoittautuvat kuitenkin monimutkaisiksi ja hankaliksi. Niiden toteuttaminen oli todennäköisesti helpompaa silloin kun sulautetut laitteet olivat itsenäisiä. Nykyisin kun verkko on läsnä kaikkialla, jokainen IoT-laite on hyökkäyksille alttiina. Nykyisin myös hyökkääjät ovat hyvin kokeneita eikä hyökkäysvektorit eivät rajoitu TCP/IP-liikennöintiin eikä -portteihin, vaan sulautetun laitteen jokainen altistus saattaa toimia potentiaalisen hyökkäyksen peitepintana. Kun todennäköiset hyökkäyspisteet tunnetaan, on helpompi päätellä mitä suojausmenetelmää kannattaa käyttää.
Kuvassa 1 jaotellaan paikallinen hyökkäys joko IoT-laitteen ohjelmistoon tai laitteistoon kohdistuvaksi. Hyökkäystyypit voivat olla hyvin edistyneitä, kuten differentiaalinen tehoanalyysi (DPA) tai vielä suoraviivaisemmin kohdistamalla fyysinen hyökkäys laitteen JTAG-porttiin ja uudelleen ohjelmoimalla se haittakoodilla. DPA mahdollistaa laitteen tehonkulutuksen salatarkkailua karkealla tasolla reaaliajassa, jolloin saadaan varmistettua laitteen toiminnan tarkoitus. On mahdollista koostaa kasaan digitaalinen kuva sulautetun prosessorin mahdollisesta toiminnallisuudesta.
Salaustoiminnot vaativat erityisen paljon laskenta- ja tehonsyöttöresursseja, ja hyökkääjä voi tunnistaa säännöllisesti tapahtuvat numeerista salausta ja purkua vaativat toiminnot. Kun prosessorin toiminta on saatu selville, hyökkääjät voivat pakottaa sen häiriöpiikkiä käyttäen vikatilaan, jolloin on mahdollista päästä käsiksi rekistereihin ja portteihin. Muita hyökkääjien käyttämiä tekniikoita ovat järjestelmäkellojen muuttaminen, virheellisten signaalien syöttäminen oheislaitteiden liitäntänastoihin ja jännitesyötön pienentäminen niin, että prosessorin käyttäytyminen muuttuu epävakaaksi, jolloin vaarana on salausavaimien paljastuminen ja porttien avautuminen.
Laitteen suojaaminen
Tarkasteltaessa IoT-laitteeseen vaikuttavia turvallisuusoloja suunnittelijoiden käytettävissä on teollisuuden kehysympäristöjä, joista esimerkiksi IoXT (Internet of Secure Things) on hyvä lähtökohta. IoXT on teollisuuden vetämä liittouma, jonka tarkoituksena on auttaa sulautettujen järjestelmien suunnittelijoita IoT-laitteiden turvallisuutta tukevassa ohjelmointityössä. IoXT perustuu kahdeksan periaatteen kehysympäristöön, joka kattaa IoT-turvallisuutta, päivityksiä ja läpinäkyvyyttä tukevia asioita, joita seuraten suunnittelijat voivat edetä IoT-laitteita suunnitellessaan.
IoXT:n IoT-turvallisuuden kahdeksan periaatetta:
- Älä käytä yhteisiä salasanoja: Varusta toimitettavat laitteet yksilöivillä oletussalasanoilla yleiskäyttöisen sijaan, etteivät hyökkääjät saa hallintaansa satojen laitteiden ohjausta.
- Suojaa kaikki liitännät: Kaikki liitäntärajapinnat on syytä salata ja varmentaa aina käytön aikana riippumatta niiden käyttötarkoituksesta.
- Käytä päteväksi todistettuja salausmenetelmiä: On suositeltavaa käyttää teollisuuden hyväksymiä ja avoimia salausstandardeja ja -algoritmeja.
- Suojaa jo tehtaalla: Tuotteet tulee toimittaa varustettuna suurimmalla mahdollisella suojaustasolla.
- Käytä hyväksyttyjä ohjelmistopäivityksiä: Langattomasti tapahtuvat ohjelmistopäivitykset tulee varustaa allekirjoituksella, jonka vastaanottava laite varmentaa ennen päivityksen suorittamista.
- Käytä automaattisia ohjelmistopäivityksiä: Sen sijaan että kuluttaja huolehtisi päivityksistä, kannattaa suosia automaattisesti tapahtuvia varmennettuja ohjelmistopäivityksiä laitteiden turvallisuuden pitämiseksi ajan tasalla.
- Raportoi haavoittuvuuksista: Laitevalmistajan tulee varustaa käyttäjät välineillä, joilla he voivat raportoida potentiaalista turvallisuusuhista ja saada asianmukaiset päivitykset.
- Ilmoita turvallisuustuen päättymisestä: Takuukäytäntöjen tapaan myös suojaustoimenpiteiden toimitukset päättyvät jossain vaiheessa. Valmistajat tarjoavat usein laajempia tukijärjestelmiä, joilla suojaustuki ja -päivitykset jatkuvat pitemmällä aikavälillä.
Laaja lähestymistapa turvatoteutuksiin
Nopeasti muuttuvassa IoT:n turvallisuusympäristössä IoT-laitteiden suunnittelijoiden on pysyttävä ajan tasalla tarvittavien suojaominaisuuksien määrän kasvaessa. Tätä varten Silicon Labs on perustanut Secure Vault -nimisen foorumin, jossa käsitellään laite- ja ohjelmisto-ominaisuuksia yhdistävien laajojen turvallisuusjärjestelmien toteuttamista järjestelmäpiirille. Ensimmäinen Silicon Labsin toimittama Secure Vaultin mukainen tuote on moniprotokollainen langaton SoC-piiri EFM32MG21B.
Secure Vault on sertifioitu teollisuusryhmien PSA Cerified ja IoXT Alliance toimesta. PSA Certified Level 2 -sertifiointi perustuu yhdessä Arm:n kanssa pystytettyyn turvallisuusstandardien kehysympäristöön.
Secure Vault -järjestelmäpiirissä on kaikki kuviteltavissa olevat turvallisuustoiminnot, kuten todellinen satunnaislukugeneraattori, salausydin, root of trust (luottamuksen juuri, turvallinen paikka johon ei pääsyä laitteen ekosysteemin ulkopuolelta) ja secure boot -turvakäynnistys (kaikki suoritettava koodi tulee luotetusta lähteestä). Lisäksi Secure Vault sisältää laajennetun turvakäynnistyksen, DPA-vastatoimet, tunkeutumisen eston ilmaisun, salausavaimien hallinnoinnin ja suojauksen vahvistamisen. Secure Vaultin kaikki turvallisuustoiminnot sijaitsevat turvallisuuselementtijärjestelmässä, kuten kuvassa 3 on esitetty.
Kuva 3: Silicon Labsin Secure Vault -turvallisuuselementtijärjestelmä. (Lähde: Silicon Labs)
Tyypillisin hyökkääjien käyttämä hyökkäysvektori häiritsee käynnistyskoodia korvaamalla koodia käskyillä, jotka näyttävät normaalilta mutta toimivat eri tavalla ohjaamalla dataa eri palvelimille. Secure Vaultin laajennettu secure boot -prosessi toimii sekä sovelluksen mikro-ohjaimella että turvatun osion mikro-ohjaimella. Se yhdistää luottamuksen juuren ja turvallisen lataustoiminnon suorittaakseen vain luotettavaa sovelluskoodia. Katso kuva 4.
Kuva 4: Secure boot -käynnistys Silicon Labsin Secure Vault -piirissä. (Lähde: Silicon Labs)
Toinen hakkeroinnin lähestymistapa on yrittää palauttaa asennettu laiteohjelmisto edeltävän version tilaan, jossa laite oli altistunut haavoittuvuuksille. Tällä tavoin hyökkääjä vaarantaa laitteen ja käyttää hyväksi turvallisuusaukkoja. Secure Vaultilla tapahtuva laitteen palautumisen estäminen edeltäviin versioihin perustuu digitaalisesti allekirjoitetulla laiteohjelmistolla toteutettuun validointiin, jonka perusteella päivitys suoritetaan tai jätetään suorittamatta. Katso kuva 5.
Kuva 5: Secure Vaultin palauttamisen eston vastatoimet perustuvat digitaalisiin allekirjoituksiin, joilla todennetaan laiteohjelmiston päivitykset. (Lähde: Silicon Labs)
Jotkut järjestelmät ovat aikaisemmin käyttäneet julkisia yksilöiviä tunnisteita (UID) yksittäisten IoT-laitteiden tunnistamisessa. Näiden tunnisteiden käyttö helpottaa tuoteväärennysten kehittelyä tuotteen oikeaksi todistamisen jäädessä epävarmaksi. Sen sijaan Secure Vault luo yksilöivän ECC:n mukaisen salaisen ja julkisen avaimen parin, jonka salainen avain tallennetaan luotettavasti sirulle. Sovellukset voivat pyytää laitteen sertifikaattia, mutta vastaus allekirjoitetaan laitteen salaisella avaimella eikä sitä lähetetä sertifikaatin mukana. Katso kuva 6.
Kuva 6: Secure Vaultilla toteutettu turvallisuuden vahvistamisen prosessi. (Lähde: Silicon Labs)
Johtopäätös
Pyrkimys kestävän turvallisuuden aikaan saamiseksi on ensiarvoisen tärkeä tavoite jokaisessa suunnitellussa sulautetussa laitteessa tänä päivänä. IoT-laitteet kohtaavat koko ajan enemmän uhkia hyökkääjien toimesta, jolloin riittävän laajan turvallisuuden on oltava toimivaa jo tuotteen lähtiessä tehtaalta. Ottamalla Secure Vaultin käyttöönsä tuotteiden suunnittelijat ja heidän asiakkaansa voivat olla varmoja, että heillä on kestävä suojaus ohjelmistohyökkäyksiä vastaan alusta alkaen.