Risto Eerola

Automaatiojärjestelmien tietoturvaan liittyviä erityishaasteita

Johdanto

Monet yhteiskunnan kriittiset toiminnot perustuvat automaatiojärjestelmien hyödyntämiseen. Nämä järjestelmät vastaavat niin energiantuotannosta ja -jakelusta, vesihuollosta, liikenteen ohjauksesta ja raaka-aineiden jalostuksesta kuin tuotteiden valmistuksestakin. Automatisointi siirtää yksinkertaiset, toistuvat, raskaat, vaativat ja vaaralliset tehtävät koneiden suoritettavaksi. Moderni automaatio suorittaa tehtäviä, jotka ovat ihmiselle mahdottomia. Järjestelmät poikkeavat totutuista IT-järjestelmistä, joista saatuihin kokemuksiin tietoturvaosaaminen pitkälti perustuu. Automaatiojärjestelmien tietoturvan erityisluonteen käsittely on toistaiseksi jäänyt suhteellisen vähälle huomiolle – siitä huolimatta, että näiden järjestelmien tietoturvan pettäminen voi johtaa katastrofaalisiin seurauksiin. Tässä tuodaan esille automaatiojärjestelmien tietoturvan tavoitteita, joitakin tunnettuja poikkeamia seurauksineen sekä nykyisiä ja tulevia haasteita ja niihin löytyviä ratkaisuja.

Automaatiojärjestelmän määrittely tämän tekstin puitteissa

Automaatio on laaja käsite, ja tulkinnasta riippuen todella monenlaiset järjestelmät voidaan mieltää automaatiojärjestelmiksi (vrt. esim. ATK, automaattinen tietojenkäsittely). Tässä rajataan käsittely koskemaan teollisuuden automaatiojärjestelmiä (ICS, Industrial Control Systems), joihin erään määritelmän mukaan [1 s. 2-1] kuuluvat ainakin
  • Ohjelmoitavat logiikat (PLC, Programmable Logic Controller),
  • Hajautetut automaatiojärjestelmät (DCS, Distributed Control System) ja
  • SCADA (Supervisory Control and Data Acquisition, tiedonkeruu ja valvonta).

Terminologia ei välttämättä ole kaikille lukijoille tuttu, joten seuraavilla yleistyksillä [2 s. 1] voidaan toivottavasti antaa selkeämpi kuva eri järjestelmistä. Ohjelmoitavat logiikat ovat yksittäisiä laitteita, joita käytetään yleensä osana suurempaa järjestelmää (kuten DCS tai SCADA). DCS on nimensä mukaisesti hajautettu järjestelmä, mutta se sijaitsee yleensä maantieteellisesti pienellä alueella (esim. tehdasrakennus), kun taas SCADA-järjestelmä voi mahdollisesti olla hajautettu laajemmalle alueelle (esim. maakaasuputki).

Termit eivät ole missään nimessä yksiselitteisiä, ja jaottelu ja rajaus voisi olla erilainen kuin edellä. Automaatiojärjestelmä on näiden tarkennusten jälkeen edelleen laaja käsite, ja tässä tekstissä luotu lyhyt katsaus jää pakostakin yleisluontoiseksi. Korkeamman tason toiminnallisuuden ja tietoturva-aspektien tarkastelun kannalta automaatiojärjestelmät voidaan nähdä hyvin samankaltaisina riippumatta siitä, millä teollisuudenalalla niitä käytetään [3 s. 3].

Tietoturvatavoitteet (CIA) automaatiossa

Automaatiojärjestelmän tarkoituksena on hallita tuotantoprosessia siten, että prosessi on turvallinen ihmisille, ympäristölle ja tuotantolaitteistolle ja samalla mahdollisimman tehokas, tuotteiden laadun varmistava ja tuotannon jatkuvuuden takaava. Tietoturva on pieni osa järjestelmän kokonaisturvallisuutta. Tietoturvan yleiset tavoitteet luottamuksellisuus, eheys ja saatavuus (Confidentiality, Integrity, Availability eli CIA), koskevat myös automaatiojärjestelmiä, ja alan käytännöt perustuvatkin tietotekniikasta saatuihin kokemuksiin [3 s. 60]. Painotus on kuitenkin merkittävästi erilainen – itseasiassa päinvastainen. IT-järjestelmissä tärkeysjärjestys on C-I-A, kun taas automaatiojärjestelmissä se on päinvastainen A-I-C, eli tiedon saatavuus ja eheys ovat yleensä huomattavasti luottamuksellisuutta tärkeämpiä [4 s. 3].

Järjestelmät ovat usein jatkuvatoimisia ja reaaliaikakriittisiä, jonka vuoksi tiedon saatavuudelle ja eheydelle asetetaan korkeat vaatimukset. Haastavissa tosiaikasovelluksissa vasteiden on oltava deterministisiä (”tarkasti ennustettavissa”) eikä viiveitä voida sallia. Pienikin viive (siis ongelma saatavuudessa) voi johtaa järjestelmän kannalta virheelliseen toimintaan.

Luottamuksellisuutta ei tule jättää huomiotta, mutta sen merkitys ei yleensä ole yhtä suuri kuin tietotekniikassa, jossa usein arvokkainta on itse informaatio. Automaatiojärjestelmissä valmistetut tuotteet, järjestelmän häiriötön ja turvallinen toiminta sekä itse järjestelmä ovat tärkeämpiä kuin järjestelmän sisältämä informaatio. Poikkeuksena tähän saattavat olla tietyt monimutkaiset algoritmit tai salaiset valmistusreseptit (esimerkiksi lääke- tai virvoitusjuomateollisuudessa).

Automaatiojärjestelmille on ominaista, että ne jollain tavoin tarkkailevat ja ohjaavat konkreettisia, reaalimaailman prosesseja. Weiss esittää karkean ja osuvan yleistyksen:”-- IT uses ’physics to manipulate data’ while an ICS uses ’data to manipulate physics’” [4 s. 3]. Järjestelmien pettämisellä saattaa olla erittäin konkreettisia ja tuhoisia seuraamuksia niin liiketoiminnalle, ympäristölle kuin ihmisillekin. Automaatiojärjestelmiltä edellytetäänkin yleensä korkeampaa tietoturvallisuuden tasoa kuin toimistoympäristön järjestelmiltä.

Tavoitteiden samankaltaisuudesta huolimatta kaikkia IT-järjestelmistä tuttuja menetelmiä ei voida soveltaa automaatiossa. Tämä teksti esittelee soveltuvia menetelmiä, joita voidaan ja pitää hyödyntää ja toisaalta varoittaa, mitkä menetelmät ovat soveltumattomia ja mistä syistä.

Tunnettuja tietoturvapoikkeamia teollisuuden automaatiojärjestelmissä

Teollisuuden automaatiojärjestelmiin kohdistuvia tietoturvapoikkeamia on raportoitu suhteellisen vähän, mutta vuodelta 2005 löytyy eri lähteistä koottu lista 120 tunnetusta tapauksesta [5]. Osasyynä raportointihaluttomuuteen on varmasti pelko maineen kärsimisestä ja sitä seuraavista taloudellisista menetyksista [5 s. 13]. Ongelmia ei haluta tuoda julki, jos se vain voidaan välttää. Todellisia tapauksia on todennäköisesti huomattavasti enemmän kuin julkisuuteen on raportoitu.

Seuraavaan luetteloon on poimittu muutamia tunnettuja ja laajasti raportoituja tapauksia:
  • Marraskuu 2011: Springfield, Illinois, Yhdysvallat. Mahdollinen hyökkäys vesijohtojärjestelmään johtaa pumpun hajoamiseen. Raportointi on ristiriitaista, ja on epäselvää, oliko kyseessä tahallinen hyökkäys vai ei.
  • 2010: Tuntemattoman tahon luoma haittaohjelma Stuxnet kohdistaa hyökkäyksen automaatiojärjestelmään, mikä aiheuttaa vaikeuksia Iranin ydinohjelmalle.
  • Elokuu 2005: Zotob-mato johtaa kolmentoista Daimler-Chryslerin tehtaan alasajoon tunnin ajaksi ja häiriöihin mm. Boeingin ja Caterpillarin tehtaiden toiminnassa [2].
  • Tammikuu 2003: Slammer-mato aiheutti ongelmia David-Besse -ydinvoimalan turvallisuutta valvovassa verkossa pysäyttäen sen viideksi tunniksi [2 s. 7, kts. 6].
  • 2000: Maroochy, Australia. Katkeroitunut entinen työntekijä hyökkäsi langattomasti jätevedenkäsittelylaitoksen automaatiojärjestelmään ja päästi satoja tuhansia litroja jätevettä puistoihin [6].
  • 1999: Bellingham, Washington, Yhdysvallat. Öljyputken vuoto ja sitä seurannut räjähdys aiheuttivat kolme kuolemantapausta, kahdeksan haavoittumista ja yli 45 miljoonan dollarin taloudelliset vahingot. Onnettomuus johtui ongelmista SCADA-järjestelmässä, mutta järjestelmän toimimattomuuden perimmäisiä syitä ei ole saatu selville.
  • 1982: Siperia, Neuvostoliitto. Haittaohjelma aiheutti erittäin voimakkaan räjähdyksen kaasuputkessa ja mittavat taloudelliset tappiot.

Esimerkkitapausten perusteella voidaan tehdä seuraavia huomioita. Tapaukset voidaan jaotella kolmeen ryhmään
  • tahalliset hyökkäykset,
  • tahattomat seuraamukset ja sivuvaikutukset johtuen
    • haittaohjelmista kuten viruksista ja madoista tai
    • käyttäjien virheistä tai prosessimekanismeista [2 s. 5].

Monessa tapauksessa seuraamukset olivat vakavia ja erittäin konkreettisia. Suurta osaa tunnetuista ongelmista ei olisi voitu estää perinteisillä IT-alan tietoturvaratkaisuilla [4 s. 12].

Tapauksiin liittyvä raportointi ja tiedonanto on välillä epäselvää, eikä perimmäisiä syitä tai mahdollisia tekijöitä ongelmien takana aina saada selville tai ainakaan tuoda julki. Automaatiojärjestelmät ovat usein osa yhteiskunnan kriittistä infrastruktuuria, mikä tekee niistä otollisia kohteita terrorismille ja kybersodankäynnille. Tämä tarkoittaa, että niiden tietoturvassa pitää huomioida kehittyneiden Stuxnetin kaltaisten hyökkäysten uhka.

Tietoturvan kannalta merkittäviä erityispiirteitä automaatiojärjestelmissä

Pitkä elinkaari

Tyypillinen elinkaari automaatiojärjestelmälle on IT-alan mittapuulla pitkä, 15-30 vuotta. Tämä poikkeaa selvästi esimerkiksi työasemille, palvelimille ja älypuhelimille tyypillisestä muutamasta vuodesta. Iso osa tällä hetkellä toiminnassa olevista automaatiojärjestelmistä on siis suunniteltu ja toteutettu viime vuosituhannella. Teknologian kehityksen arviointi vuosikymmeniä eteenpäin on ymmärrettävästi käytännössä mahdotonta.

Automaatiojärjestelmän tietoturva pitää siis jo suunnitteluvaiheessa huomioida koko elinkaaren käsittävänä prosessina. Pitkän elinkaaren mukanaan tuomia ongelmia ovat muun muassa käyttöjärjestelmien ja ohjelmistojen päivitykset. Tyypillisesti ohjelmistotalot tarjoavat päivityksiä ja tuotetukea tuotteisiinsa muutaman vuoden, parhaimmillaan ehkä vuosikymmenen ajan. Tämän jälkeen päivitysten saaminen voi olla hankalaa tai mahdotonta. Vanhimpien sulautettujen järjestelmien ylläpitämiseksi ja päivittämiseksi voi olla vaikeaa löytää osaajia. Voi käydä niinkin, että laitteistojen ja ohjelmistojen toimittaneita yrityksiä ei enää vuosien kuluttua ole olemassakaan.

Pitkä elinkaari ei tarkoita, että järjestelmä asennettaisiin ja sen jälkeen sitä käytettäisiin muuttamattomana kymmeniä vuosia. Järjestelmän osia päivitetään, siihen lisätään ominaisuuksia ja siihen saatetaan liittää kokonaan uusia järjestelmiä. Käytössä olevan kokonaisuuden eri osat ovat usein eri aikakausilta ja eri toimittajilta. Tietoturvan kannalta tällaisen kokonaisuuden hahmottaminen voi olla erittäin haastavaa. Toisaalta koska laitteita ja konfiguraatioita vaihdetaan harvemmin, käyttäjät usein tuntevat ne hyvinkin yksityiskohtaisesti.

Vaatimukset toiminnan jatkuvuudelle ja reaaliaikaisuudelle sekä resurssien rajallisuus

Automaatioverkkojen laitteet on usein suunniteltu toteuttamaan vain tiettyjä yksinkertaisia toimintoja. Ylimääräiset toiminnot on jätetty pois, ja laitteiden laskentateho ja muistikapasiteetti ovat usein (työasemaan verrattuna) hyvin vaatimattomia. Resurssien rajallisuus ja toisaalta kovat reaaliaikavaatimukset voivat estää esimerkiksi virustorjunnan, salausalgoritmien ja autentikoinnin käytön: näistä aiheutuvaa viivettä ei voida sallia tai laitteella ei ole tarvittavaa laskentatehoa näiden toteuttamiseksi.

Toiminnan jatkuvuuden ja turvallisuuden vaatimukset voivat estää tai rajoittaa päivitysten asentamista. Toimistosovelluksissa järjestelmä voidaan uudelleenkäynnistää ja päivityksiä voidaan asentaa automaattisesti. Automaatiojärjestelmissä tämä ei useimmiten ole mahdollista: ennen sopivaa huoltokatkoa voi kulua viikkoja tai kuukausia, joiden aikana tuotannon pitää jatkua keskeytyksittä.

Päivitysten asentaminen ja muutoksien tekeminen käynnissä olevaan järjestelmään on erittäin riskialtista. Ilman kattavaa testausta asennettavat päivitykset saattavat jopa aiheuttaa enemmän ongelmia kuin varsinainen uhka, jolta päivityksen on tarkoitus suojata järjestelmää. Päivitysten huolellinen testaus voi kestää pitkään. Automaatiojärjestelmien käyttöjärjestelmät ja ohjelmistot eivät siis oletusarvoisesti ole jatkuvasti ajan tasalla.

Verkkotekniikoille asetetut vaatimukset

Toimistoverkkojen tekniikkaa ei alunperin suunniteltu vastaamaan automaatioverkolle asetettuihin vaatimuksiin. Automaatiosovellukset ovat usein jatkuvatoimisia ja tosiaikaisia. Suurelle tiedonsiirtokapasiteetille on harvoin tarvetta, mutta viiveitä ja verkon hetkittäistäkään toimimattomuutta ei yleensä voida sallia. Vastaavasti toimistoverkko vaatii suurempaa tiedonsiirtokapasiteettia, mutta ei ole herkkä pienille viiveille tai välttämättä edes hetkittäisille alasajoille. Automaatioverkon suorituskyky ja deterministiset vasteet ovat prioriteetiltaan tärkeämpiä kuin tietoturvaominaisuudet. Osittain juuri näistä syistä automaatioverkot rakennettiin alunperin eri tekniikalla ja omiksi, eristetyiksi kokonaisuuksiksi.

Epäselvyydet vastuunjaossa