Kirjoittaja Mikko T. Siponen on filosofian tohtori ja toimii professorina Oulun yliopiston tietojenkäsittelytieteiden laitoksella.
Elämme tietoyhteiskunnassa, jossa tietokoneita ja tietokoneohjelmia on kaikkialla, ei ainoastaan kotitietokoneissa tai matkapuhelimissa. Lentokoneiden, ydinvoimaloiden ja ydinohjusten ohjausjärjestelmät perustuvat tietokoneohjelmistoihin siinä missä nykyaikainen pesukone ja videotkin. Nykyaikana pankeissa rahaliikennettä käsitellään tietokoneohjelmien välityksellä, ja useimpien yritysten toiminta perustuu pitkälti tietokoneiden hyväksikäyttöön. Tietokoneohjelmien pitää olla turvallisia käyttää, niihin pitää voida luottaa, kuten siltoihin tai pilvenpiirtäjiin.
Voiko tietokoneohjelmiin luottaa, ovatko ne turvallisia? On lähes arkipäivän uutisointia, että hakkerit ovat lukeneet sähköposteja ja varastaneet luottokorttitietoja Internetissä. Myös tietokonevirukset ovat jokapäiväinen ilmiö. Nämä ovat tietenkin vain jäävuoren huippu tietoturvaongelmissa, joiden syitä käsittelen seuraavassa kahdesta näkökulmasta: Internet on "villi länsi" -ilmiö sekä suunnittelutekniset ongelmat. Kumpaankin ongelmaa voidaan parantaa sopivan koulutuksen avulla.
On yleismaailmallinen ilmiö, että tietokoneen käyttäjät kokevat Internetin villiksi länneksi, jossa kaikki on sallittua. Esimerkiksi monet hakkerit ovat pitäneet tietokonevirusten ja tietomurtojen tekoa harmittomana harrastuksena, eräänlaisena urheilusuorituksena. Tiedetään, että esimerkiksi monet tietokonevirusten tekijät ja tietojärjestelmiin murtautujat eivät olisi ikinä tehneet tietokoneviruksia tai murtautuneet tietojärjestelmiin, jos he olisivat tienneet tekojensa vaikutukset.
Tutkijat ovat esittäneet useita selityksiä tälle ilmiöille. Joidenkin mukaan käyttäjät ovat niin tietotekniikan mahdollisuuksien lumoissa, että eivät huomaa negatiivisia seurauksia. Tietotekniikkaahan - ja teknistä tietokonekoulutusta - markkinoidaan paljon myönteisessä mielessä. Kuitenkin pelkästään teknisen atk-koulutuksen tarjoaminen on myös ongelmallista pitkällä tähtäimellä. Se on kuin opettaisi kaikkia ajamaan autoilla nopeasti, ilman että opetetaan liikennesääntöjä tai varoitetaan vaaroista tienpäällä.
Autokoulussa opetetaan muutakin kuin autolla ajamisen teknisiä hienouksia, myös atk-ajokortin opetuksessa tulee kiinnittää huomiota "liikennesääntöihin": eri tekojen seurauksiin, vaaroihin tiedon valtatiellä ja siihen, miten vaaroja voidaan välttää. Milloin tämä ymmärretään eri oppilaitoksissa?
Se, että käyttäjät eivät aina ymmärrä tietokoneen käytön seurauksia, näkyy myös yksinkertaisten tietoturvatoimenpiteiden laiminlyönnissä työpaikoilla. Esimerkkinä voidaan mainita vaikeasti arvattavien salasanojen valinta. Ehkä syy on se, että käyttäjät eivät ymmärrä, että helposti arvattavat salasanat tarjoavat hakkereille kätevän pääsyn järjestelmään.
On myös esitetty "villi länsi" -ilmiön syyksi, että tietokone tai Internet synnyttää eräänlaisen moraalisen etäisyyden ihmisten välille, jolloin käyttäjien voi olla vaikeaa nähdä teosta seuraavaa harmia. Esimerkiksi monet hakkerit näkevät, että muiden järjestelmiin murtautuminen ja vaikkapa sähköpostin lukeminen ei fyysisesti riko mitään tai haittaa ketään - "mitä harmia siitä muka seuraa?" - toisin kuin vaikkapa asuntoon murtautuminen. Emme kuitenkaan haluaisi, että meidän järjestelmiimme murtauduttaisiin, emmekä varmaan haluaisi elää maailmassa, jossa kuka tahansa saisi murtautua mihin tahansa järjestelmään, ja siksi mainitunlainen hakkerointi voidaan nähdä tuomittavana tekona.
Teknisesti ajateltuna eräs keskeinen syy tietoturvaongelmien esiintymiseen on se, että tietoturvakysymyksiä ei ole huomioitu ohjelmistojen suunnittelu- ja rakennusvaiheessa. Tämä johtuu osaksi siitä, että tietokoneohjelmistojen suunnittelumenetelmissä ei kiinnitetä riittävästi huomiota tietoturva-asioihin. Tämän vuoksi ohjelmistoihin joudutaan suunnittelemaan turvaominaisuuksia vasta jälkikäteen. Se on eräs keskeinen syy, miksi ne eivät ole luotettavia.
Tietoturva-aukkojen paikkailu jälkeenpäin on kallis keino tehdä ohjelmistoista luotettavia. Myös useita itsenäisiä tietoturvamenetelmiä on kehitetty. Yleisin yrityksissä käytössä oleva tietoturvamenetelmä on standardien ja tarkistuslistojen käyttö. Nämä eivät perustu tutkimukseen vaan lähinnä konsulttien yleispäteviin oletuksiin siitä, millaisia turva-asioita kaikkiin ohjelmistoihin ja järjestelmiin tulisi lisätä. Ne siis tarjoavat samaa valmista pakettia kaikkiin yrityksiin ja organisaatioihin ja ovat tästä syystä tietoturvakonsulttien suosiossa.
Kuitenkin yritykset ja organisaatiot ovat erilaisia, joten sama ohjeistus ei voi käydä niin ydinaseohjelmistojen, sairaaloiden tietojärjestelmien kuin lähikaupan yhden kotitietokoneen tietojen suojaukseen. Suunnittelussa ei siis huomioida yritysten yksilöllisiä tarpeita. Onkin kummallista, että ongelmista huolimatta tarkistuslistat ovat usein ainoa Suomen yliopistojen ja ammattikorkeakoulujen tietoturvakursseilla opetettava tietoturvamenetelmä.
Suurin osa tietoturvamenetelmistä ei anna kokonaisvaltaista suunnittelutukea, vaan soveltuu vain tiettyihin vaiheisiin. Hahmotan tätä ongelmaa talonrakennusesimerkin avulla. Tämä ongelma tarkoittaisi talonrakennuksessa esimerkiksi sitä, että eri talonrakennusmenetelmät tukisivat vain tiettyä talonrakennusvaihetta, kuten pohjan valamista tai harjan pystyttämistä, mutta yksikään talonrakennusmenetelmä ei tukisi koko talonrakennusprosessia alusta loppuun.
Monia olemassa olevia turvamenetelmiä ei pystytä yhdistämään tavalliseen tietokoneohjelmakehitykseen. Tästä seuraa se, että tietoturvan lisääminen ohjelmistokehityksen ulkopuolella on kallista ja aikaa vievää puuhaa. Useat turvallisten tietojärjestelmien suunnittelumenetelmät eivät huomioi kehittäjien autonomiaa. Tämä tarkoittaa sitä, että tietokoneohjelmien kehittäjät, jotka haluavat huomioida tietoturvanäkökohdat tietokoneohjelmien suunnittelussa, joutuvat muuttamaan käyttämäänsä suunnittelulähestymistapaa.
Lähtökohtana tulisi kuitenkin olla se, että kehittäjät saisivat itse valita, mitä tietokoneohjelmien kehitysmenetelmää he käyttävät ja mahdollinen turvamenetelmä tulisi pystyä yhdistämään osaksi eri tietokoneohjelmistojen suunnittelumenetelmiä. Näin varmistutaan siitä, että ohjelmistoja rakennettaessa huomioidaan kulloisenkin ohjelman tietoturvatarpeet.