Tietoturvassa perustukset on tehtävä ensin

Pisan torni

Kaikille on päivänselvää, että talon perustukset on rakennettava ennen seiniä ja kattoa. Täsmälleen sama koskee myös tietoturva-arkkitehtuuria. Perustuksia ei voi koskaan tehdä seinien jälkeen, eikä tietoturvaa jälkikäteen.

Tietoturva on aika kompeli ala, josta alan ulkopuoliset ymmärtävät vain vähän. Siksi vedän mutkat suoriksi ja käytän tässä blogipostauksessa allegorioita fyysisestä maailmasta. Pyydän anteeksi turva-alan vanhoilta kollegoiltani – tarkoitus pyhittää keinot.

Suomen Kuvalehden jutussa projektipäällikkö kertoo, että hankkeen tässä vaiheessa ei ole vielä työskennelty vilpintahtoisten toimijoiden estämiseksi. Se kertoo siitä, että hankkeessa ollaan rakentamassa taloa ennen perustuksia. Komea ulkokuori ilman perustuksia.

Tietoturva-alan ammattilaiset ovat tottuneet siihen, että järjestelmien kehittäjätiimeiltä jää huomaamatta tuhansia pikkuvirheitä. Siksi osaava arkkitehti suuunnittelee sovelluksen niin, että vain muutama kohta pitää tehdä erityisen huolella, ettei yksi tai edes kaksi yksittäistä virhettä voi kaataa koko systeemin turvallisuutta.

Hyvin suunniteltuun järjestelmään on siksi vaikea hyökätä edes kesken kehitysvaiheen. Kruununjalokivet talletetaan tavalla, jossa kohdista, joihin pääsee käsiksi, ei pääse siihen, mitä suojataan. Arkkitehtuurin ja tietoturvan miettimiseen ja suunnitteluun on alussa käytettävä riittävästi aikaa. Vaikka miten olisi olevinaan kiire, niin näitä asioita ei voi siirtää myöhempiin vaiheisiin.

Hyvä esimerkki turvan oikein tekemisestä on pankin kassaholvi. Isoissakin pankeissa holviin tehdään vain yksi ovi, jotta se voidaan tehdä niin laadukkaaksi kuin mahdollista ja sitä voidaan valvoa haukan tavoin. Ennen kuin holviin pääsee on ensin pitänyt päästä monenmoisten turvattujen kerrosten läpi. Ulko-ovet on lukittu, tiloissa on hälytykset, asiakkaita ei päästetä tiskin taakse eikä kassakaappiinkaan pääse, ennen kuin monet lukot on ohitettu.

Kassaholvi on turvallinen, vaikka osa lukoista olisi kierrettävissä.

Huono tietoturva-arkkitehtuuri sen sijaan on kuin vanha seurojentalo, jonka kaikki ovet johtavat isoon huoneeseen, jonka keskelle rahakasa on jätetty. Hyökkääjällä on monta ovea, joista valita ja puolustajan resurssit on jaettu niin laajalle, ettei ovista saada pankkiholvitasoisia. Turvasuunnitelma on, että talon muuten valmistuttua, oviin laitetaan jumalattoman kalliit lukot.

Jälkikäteen väkisin tehdyt turvaratkaisut eivät koskaan voi olla yhtä laadukkaita tai helppokäyttöisiä kuin alun perin hyvin suunniteltu turvallisuus. Tietoturvakeijuja, jotka lopuksi ratkovat pulmat ripottelemalla taikahiekkaa järjestelmien päälle, on vain saduissa.

Ylioppilastutkintolautakunta on valinnut erityisen vaikean tien. Heidän mallinsa turvallisuus perustuu siihen, että yleiskäyttöistä tietokonetta yritetään saada kuriin ja kontrolliin. Ehkä tietoturva-arkkitehtuuri olisi pitänyt rakentaa toisin? Ongelma on sama, jonka kanssa matkapuhelin- ja konsolipelivalmistajat painivat jatkuvasti. Miten varmistaa, ettei pikku-Petteri ohita tehdyn kopiosuojauksen rajoja omaksi edukseen? Tuossa onnistuminen on vaikeaa maailman suurimmille laitevalmistajille, jotka toimittavat samalla kertaa niin koneen kuin sen sovelluksenkin.

Ehkä joudumme tottumaan siihen, että ylioppilasarvosana ei ole yhtä luotettava lukiomenestyksen mittari kuin ennen.

Uuden digitaalisen maailman tärkeitä järjestelmiä kehittäville asiakkaillemme ehdotan ainakin seuraavien peukalosääntöjen noudattamista:

  1. Varmista, että järjestelmällä on arkkitehti, joka on tehnyt vastaavan vaativuusasteen hankkeita turvallisesti ennenkin.
  2. Varmista, että arkkitehdillä on aikaa ja valtaa tietoturvaongelmien ratkaisemiseen.
  3. Luo uhkista ja riskeistä dokumentti yhdessä arkkitehdin kanssa ja hae tälle valitulle riskitasolle hyväksyntä ylimmältä johdolta.
  4. Älä siis lyö toiminnallisuutta lukkoon ennen kuin arkkitehtuuri on valmis. Turvallinen järjestelmä voi olla helpompi tehdä, jos toiminnalisuus ei olekaan ihan tarkalleen sellainen, kuin konseptivaiheessa oli suunniteltu.
  5. Älä anna arkkitehdin keksiä uusia tapoja suojata järjestelmääsi. Ei talojakaan varten suunnitella uusia lukkoja.
  6. Kysy kunkin osa-alueen osalta, mitä tapahtuisi, jos ulkopuolinen löytäisi siitä hyödynnettävissä olevan haavoittuvuuden. Varmista näin, että turvamalli ei ole yksikerroksinen.
  7. Kysy jokaisen turvaratkaisun osalta, miten se on tarkoitus testata. Testaamattomat ratkaisut ovat turvattomia.
  8. Käy läpi, mitä tapahtuu, jos turvaratkaisut silti pettävät. Tuleeko hälytyksiä ja jääkö jäljelle edes kuvaus siitä, mitä pääsi tapahtumaan?
  9. Loppujen lopuksi varmista, että arkkitehtuuri näyttää suoraviivaiselta. Monimutkaiset arkkitehtuurit ovat useimmiten myös turvattomia.

2 kommenttia artikkeliin ”Tietoturvassa perustukset on tehtävä ensin

  1. Pääosin mainio, helposti ymmärrettävä kirjoitus. Nyrkkisääntöjen kohdasta 7 kuitenkin sellainen pieni huomautus, että testaamaton ratkaisu ei välttämättä ole turvaton – siitä ei vain yksinkertaisesti tiedetä onko se. Autoakin voi ajaa silmät kiinni kolaroimatta, mutta ei se kovin järkevää ole.

    • Juurikin niin Petteri. Tuohan on tuollainen muistisääntö, joka toteutuu useimmiten tosielämässä. Ne, jotka eivät aina testaa työnsä tuloksia eivät koskaan opi yhtä huolellisiksi, kuin ne, jotka luottavat vain testattuihin työnsä tuloksiin. /Petri

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *