Avoimen koodin Linux on suosittu käyttöjärjestelmävalinta sulautettujen järjestelmien ja laitteiden kehittäjien parissa. Verkkoon liitettyjen IoT-laitteiden määrän kasvaessa jatkuvasti haavoittuvuuksien uhka on levinnyt laajemmalle kuin koskaan aikaisemmin. Haavoittuvuuksien tunnistaminen ja välttämättömien päivitysten tekeminen uhkia vastaan on usein laitesuunnittelijoiden ja -rakentajien kykyjen ulottumattomissa.
Alla olen hahmotellut toimivan neliportaisen prosessin, jolla Linuxin haavoittuvuuksia voidaan ratkoa: monitorointi, arviointi, ilmoitukset ja korjaaminen. Prosessi myös selittää kustannukset, jotka yritystä kohtaavat haavoittuvuuksien tunnistamisessa ja korjaamisessa talon sisällä, ja miksi voi olla järkevämpää solmia kumppanuus kokeneen Linux-tietoturvatiimin kanssa, jotta varmistetaan, että käyttöön otetut laitteet ja järjestelmät pysyvät turvattuina.
Haavoittuva maailmamme
Avoimen koodin Linux-ohjelmistot ovat kasvattaneet suosiotaan IoT-järjestelmäkehittäjien parissa useista syistä. Yksi tärkeimmistä on se, että Linux on tarjolla esipaketoituina binääripaketteina, joiden mukana saa sulautetun laitteiston sekä jatkuvasti laajenevan kehittäjäyhteisön Linuxille tuottamien kehysten (framework) valikoiman. Se tarjoaa myös joitakin käytännön etua IoT-sovelluksille, kuten tuen yhteentoimivuudelle mitä IoT-laitteet usein vaativat. Lisäksi pilvijärjestelmät, joissa IoT-sovelluksia ajetaan, rakennetaan yhä useammin avoimen lähdekoodin Linux-pohjaisille käyttöjärjestelmillä.
Tämän päivän verkottuneessa maailmassa Linux-pohjaisten järjestelmien ja laitteiden suojaamisesta on tullut yksi kehittäjien ja laitevalmistajien suurimmista haasteista. Vanhat ”asenna ja unohda” -tyyppiset ajat ovat kaukana takanapäin laitekehityksessä. Käytännössä jokainen tänä päivänä valmistettu laite suunnitellaan liitettäväksi johonkin, mikä tekee sen äärimmäisen alttiiksi tietoturvahaavoittuvuuksille. Liitetyt laitteet ovat kohteita ja niistä tulee koko ajan haavoittuvaisempia jokaisen raportoidun aukon myötä.
Iot:n nopean kasvun myötä verkottuneet laitteet yleistyvät eksponentiaalisella nopeudella. Tämä massiivinen laitteiden, yhteyksien, datavolyymin, verkkoliikenteen ja käyttäjien määrän kasvu on tuonut vastaavan kasvun kyberuhkissa entistä laajemmalla hyökkäyspinnalla. Vastineeksi laitevalmistajat ja IoT-sovellusten kehittäjät ottavat käyttöön edistyneitä menetelmiä, joilla voidaan rakentaa tehokkaita turvatoimintoja mahdollisimman aikaisessa vaiheessa suunnittelua. Ja hyvä niin. Itse asiassa tämä on ehdottoman välttämätöntä. Tämä ei kuitenkaan riitä, sillä uhkat kehittyvät jatkuvasti. IoT-järjestelmien operaattoreilla täytyy olla sekä strategia että mekanismi, joilla kestävä turva säilyy käytössä olevissa laitteissa koko niiden elinkaaren ajan.
Valmistajien täytyy laajentaa turvallisuusstrategioitaan järjestelmätason vahvistamista laajemmalle niin, että uusien haavoittuvuuksien korjaukset toteutetaan ketterästi. Mikäli järjestelmiä ei jatkuvasti päivitetä, ne jäävät haavoittuviksi uusia nousevia uhkia vastaan, oli niihin käyttöönoton yhteydessä integroitu sitten kuin vahva tietoturva tahansa.
Ajatellaanpa esimerkiksi omaa kannettavaa tietokonetta. Entisaikaan sen suojaamiseksi riitti salasana ja suurin ulkoinen uhka oli saastunut levyke. Kun se liitettiin internetiin, siitä tuli heti hyökkääjien kohde, tyypillisesti koneelle asennettujen sovellusten kautta. Nyt saat mahdollisesti viikoittain tai kuukausittain päivityskehotuksia tai automaattisia päivityksiä sovellusten toimittajilta, joilla tietokonettasi suojataan uusimmilta ohjelmistohaavoittuvuuksilta.
Jokainen Linuxilla toimiva IoT-laite tarvitsee saman tasoista jatkuvaa suojausta. Kysymys kuuluu, miten toteuttaa se systemaattisella, skaalautuvalla ja kustannustehokkaalla tavalla.
Mind the Gaps!
Ennen kuin järjestelmän haavoittuvuudet voidaan korjata, täytyy tietää mitä ja missä ne ovat. Tästä on tulossa yhä haastavampaa, sillä tietoturvaa uhkaavien haavoittuvuuksien määrä kasvaa samaa tahtia IoT:n laajenemisen kanssa.
Yleisten haavoittuvuuksien CVE-tietokanta (Common Vulnerabilities and Exposures) on hallituksen rahoittama, laajalti hyväksytty alan standardi, jolla julkisissa ohjelmistoissa tunnistetaan, raportoidaan ja korjataan haavoittuvuuksia. CVE-tunnistimien avulla haavoittuvuutta koskeva informaatio voidaan yhdistää sopiviin tietoturvakorjauksiin tai suojausteknologioihin, mikä on erityisen tärkeää avoimen koodin ohjelmistomaailmassa. Haavoittuvuuksien paljastaminen voi tulla monenlaisesta lähteestä: ohjelmistoyrityksestä, tietoturvayrityksestä, itsenäisiltä tutkijoilta, yhteisöjen postituslistoilta ja valtion viranomaisilta kuten US-CERT-viranomaiselta (U.S. Computer Emergency Readiness Team). Tänään CVE-tietokantaa haastaa IoT:n tuoma haavoittuvuuksien määrän kasvu. Vuonna 2018 raportoitiin 16 555 uutta haavoittuvuutta, joiden vakavuusaste vaihteli välillä 1-10.
Sen lisäksi, että CVE-raportoitujen haavoittuvuuksien määräon kasvanut radikaalisesti viime aikoina, myös niiden vakavauus on jatkuvasti pahentunut. Tämä johtuu osaltaan kyberrikollisten osaamisen parantumisesta, ja osin siitä, että verkottunut ja yhä enemmän tekoälyä hyödyntävä maailma tarjoaa enemmän väyliä hyökkäyksille.
Avoimen lähdekoodin edut
Avoimen koodin ohjelmistojen käyttämisestä tulee etuja tietoturvaperspektiivistä. Jatkuva uhkien yleistyminen edellyttää, että laitteiden ohjelmistoja päivitetään niin pian kuin haavoittuvuus on tunnistettu. Laajan avoimen koodin yhteisön ansiosta tieto haavoittuvuuksista tavoittaa nopeasti suuret joukot tutkijoita, valtion viranomaisia kuten CERT ja useita tarkoitukseen varattuja sähköpostituslistoja. Tämän seurauksena avoimeen koodiin perustuvien laitteiden käyttäjät voivat tehdä nopeita toimi, jotka alentavat mahdollisia riskejä.
Tästä huolimatta yhteisö edelleen keskittyy innovoimaan uutta. Niinpä haavoittuvuus korjataan ohjelmiston uusimmassa versiossa, kun vanhat eri komponenttien – kernelin, kirjastojen, jne. – versiot pysyvät haavoittuvina.
On epäkäytännöllistä ajatella, että mikään järjestelmä olisi sataprosenttisen läpäisemätön ulkopuolisia uhkia kohtaan, mikäli hyökkääjillä on riittävästi aikaa ja resursseja. Voidaan kuitenkin tehdä täsmällisiä toimia, jotka tekevät asiat erittäin vaikeiksi hakkereille ja pienentävät merkittävästi murtojen todennäköisyyttä.
Neljä olennaista askelta
Uhkien pienentäminen käytössä olevissa järjestelmissä vaatii neliportaista lähestymistapaa: monitorointia, arviointia, uhkista raportointia ja niiden korjaamista.
1. Monitorointi
Monitorointia voi ajatella turvallisuusstrategian ”valvontakamerana”. Jos ajatellaan kahta taloa, joissa molemmissa on vahvat lukot, niin myös valvontakameralla varustettu on paremmin varusteltu tunkeutumisia vastaan. Tässä tapauksessa kameroita käyttävät organisaatiot, jotka antavat haavoittuvuushälytyksiä ja -varoituksia, kuten US-CERT, NIST (National Institute of Standards and Technology), CVE-tietokanta, eri tietoturvayritykset, yksityiset postituslistat ja yhteisöt, jotka ovat keskittyneet Linux-haavoittuvuuksien löytämiseen.
Haasteena tässä on, että kun varoituksia antavat kymmenet eri organisaatiot, syntyy väistämättä hämmennystä siitä, mitkä haavoittuvuudet vaikuttavat eri toteutuksiin. Tämän takia on kriittisen tärkeää tietää, mihin organisaatioihin voi luottaa niin, että niiden antama informaatio on varmasti relevanttia, oikeaa ja minkä pohjalta voi luotettavasti toimia.
2. Arviointi
Kun varoitus tai tietoturvaraportti annetaan, järjestelmäoperaattori tai sen ohjelmistokumppanin pitää määrittää, ovatko sen laitteet haavoittuvaisia ja missä määrin. Haavoittuvuus pisteytetään CVSS-järjestelmän Common Vulnerability Scoring System) mukaisesti sen vakavuuden, hyökkäyksen vaikeuden ja välttämisen todennäköisyyden perusteella.
Arvioinnissa pitää tietää eksaktisti, mitkä paketit ja mitkä versiot ovat haavoittuvaisia. Myös oman järjestelmän eksakti konfiguraatio täytyy tietää, eli ns. ohjelmiston koostumus (software bill of materials). Tämän kaiken tietäminen riippuu tietenkin siitä, miten hyvin kehitystiimi on dokumentoinut työnsä. Haavoittuneissa tuotteissa kello korjauksen löytymiseen käynnistyy samalla hetkellä, kun haavoittuvuus paljastetaan.
3. Ilmoitukset
Kun haavoittuvuus on arvioitu, sen uhriksi joutuneita käyttäjiä pitää informoida nopeasti sekä haavoittuvuuden suhteellisesta todennäköisyydestä käytetyn laitteen perusteella että ongelman korjaamisen toimintasuunnitelmasta. Tämä askel vaatii oikeita työkaluja ja metodologioita niin, että ilmoitukset lähetetään kaikilla asianosaisille osapuolilla nopeasti ja tehokkaasti. Nopea ilmoitus riippuu ohjelmistoyrityksen ja laitteen käyttäjän luottamuksellisesta suhteesta ja samalla vahvistaa sitä.
4. Korjaaminen
Korjaaminen ajoitus ja menetelmä perustuu yleensä priorisointiin. Korkean vakavuuden haavoittuvuudet voivat vaatia välitöntä ”hot fix” -korjausta lennossa, kun alemman vakavuustason ongelmat voidaan korjata ajoitetuilla ohjelmistopäivityksillä. Haasteena on toimittaa tehokkaat korjaukset nopeasti ja jakaa ne loppukäyttäjille suojattua kanavaa pitkin. Haavoittuvuuden vakavuusasteesta riippumatta siihen reagoiminen nopeasti vaikuttaa todennäköisesti liiketoiminnan fokukseen.
Suojaamisen hinta
Mikäli tämä neliportainen prosessi kuulostaa työläältä, se on sitä. Ei voi kiistää, etteikö se vaatisi merkittävää ihmisten, ajan ja työnteon sitoutumista. Mitään oikopolkuja ei ole. Vastauksen nopeus on kaiken ytimessä. Ihanteellinen ratkaisu on dedikoitu turvallisuustiimi, joka käsittelee kaikki potentiaaliset haavoittuvuudet. Mikäli yrittää tehdä kaiken itse talon sisällä, tiimin täytyy kääntää fokus kehityksestä korjaamiseen joka kerta, kun haavoittuvuus uhkaa.
Mitä dedikoidun yrityksen sisäisen turvallisuustiimin kokoaminen voisi maksaa? Paljastuneiden 8000-10000 CVE-haavoittuvuuden perusteella organisaatiossa pitäisi olla 4-5 erittäin osaavan suunnittelijan tiimi, jotta he voisivat tutkia ja keksittyä niistä jokaiseen. Keskimääräisellä 120 000 dollarin vuosipalkalla tämän tiimin budjetti olisi vuositasolla jopa puoli miljoonaa dollaria jo henkilöstökuluina.
Useimmat laitevalmistajat ja IoT-järjestelmien operaattorit pitävät tällaista erikoisosaamista oman ydinosaamisensa ulkopuolella olevaksi ja liian kalliiksi. Paljon kustannustehokkaampi vaihtoehto on antaa tämä vastuu kokeneelle kaupalliselle Linux-yritykselle, jolla on dedikoitu turvallisuustiimi. Tämä on todistettu strategia, jolla tuotetaan suojaus tuntien kuluessa haavoittuvuuden julkaisemisesta, mikä tarkoittaa usein viikkoja tai kuukausia ennen ohjelmistopäivitystä.
Sopivalla ohjelmistokumppanilla olisi välttämättömät yhteydet Linux-yhteisöön ja moniin neuvontaorganisaatioihin, joiden avulla se voisi yhdessä oman monitorointi- ja tutkimusosaamisensa perusteella pysyä ajan tasalla haavoittuvuuksien löytyessä. Ja koska tämän kumppanin pitäisi pystyä skaalaamaan turvallisuuspalvelunsa eri asiakkaille, tämän kriittisen vastuun ulkoistaminen maksaa paljon vähemmän kuin yritys hallita sitä talon sisällä.
Tietoturvahaavoittuvuudet ovat tosiasia tämän päivän verkottuneessa maailmassa ja niiden määrä moninkertaistuu sulautettujen IoT-sovellusten kasvun myötä. IoT-sovellusten hallinta ja niihin liittyvien uhkien torjunta ovat keskeisiä askelia loppukäyttäjien suojaamisessa, mutta tämä edellyttää toimintaa, joka on useimpien IoT-ratkaisujen kehittäjien, laitevalmistajien ja järjestelmäoperaattorien ulottumattomissa. Onneksi avoimen koodin yhteisö löytää Linux-ohjelmistoihin vaikuttavat haavoittuvuudet hyvin valppaasti. Kun tekee työtä ohjelmistokumppanin kanssa, joka on johtava kontribuuttori avainyhteisöissä, ja jonka prosessi uhkien monitorointiin, arviointiin sekä asiakkaiden informoimiseen ja haavoittuvuuksien korjaamiseen on käytännössä todettu ja varmistettu, valmistajat ja kehittäjät voivat auttaa asiakkaitaan suojautumaan kyberuhkilta IoT-järjestelmän koko elinkaaren ajan.
Artikkelin kirjoittaja Arlen Baker toimii Wind Riverillä turvallisuusarkkitehtinä.
Artikkeli on ilmestynyt ETNdigi-lehden numerossa 2/2019. Sitä pääset lukemaan ilmaiseksi täällä.