Mitä tietoturvavaatimuksia tulisi huomioida ohjelmistokehityksessä?

Kun ohjelmistoprojektin alussa mietitään tietoturvavaatimuksia, ne voidaan jakaa kahteen osaan eli itse projektille ja kehitysprosessille asetettaviin vaatimuksiin sekä kehitettävälle järjestelmälle määriteltäviin vaatimuksiin.

Blogisarjan ensimmäisessä osassa kävimme lyhyesti läpi, mitä tietoturvallisuuteen liittyviä vaatimuksia kehitysprosessille ja -ympäristölle on olemassa, kuten hallinnollinen tietoturvallisuus, tila- ja henkilöturvallisuus sekä tietojärjestelmäturvallisuus. Nämä käytännöt ovat yleensä siirrettävissä projektista toiseen helposti ja niitä voidaan mukauttaa tarpeen vaatiessa.

Vaikeampi osuus vaatimusmäärittelyä ovat itse kehitettävän järjestelmän tietoturvavaatimukset. Valitettavan usein näitä vaatimuksia määriteltäessä vastaan tulee kommentteja, että järjestelmän tulee olla Katakrin tai VAHTI-ohjeiden mukainen. Avataanpa näitä hieman. Katakri on tietoturvallisuuden arviointikriteeristö, jonka avulla voidaan arvioida järjestelmän toimittajan turvallisuutta eli niitä aiemmin mainittuja näkökohtia itse kehitysprosessin turvallisuudesta. Katakri ei ole kuitenkaan vaatimusmäärittely järjestelmälle, eikä sisällä tietoturvavaatimuksia tietojärjestelmän kehittämistä varten. Niitä tosin voidaan johtaa Katakrin arviointikriteereistä, mutta suoria tietojärjestelmävaatimuksia ei Katakrista juurikaan löydy.

VAHTI-ohjeet taas ovat Valtionhallinnon tietoturvallisuuden johtoryhmän linjauksia tietoturvallisuuden ja kyberturvallisuuden huomioimiseksi valtionhallinnossa. VAHTI-ohjeistus on uudistumassa merkittävästi vuonna 2018, mutta vanhat ohjeistukset ovat edelleen käyttökelpoisia sekä julkiselle että yksityiselle sektorille. Yksittäisistä ohjeista sovelluskehitykseen pureutuu erityisesti ”VAHTI 1/2013 Sovelluskehityksen tietoturvaohje”. Ohjeen liite 1 sisältää hyvin käyttökelpoisen vaatimustaulukon, josta voi poimia suoraan soveltuvia vaatimuksia järjestelmän kehitykseen. VAHTI-ohjeistus on hyvin laaja kokonaisuus, joten myös muista ohjeista löytyy tärkeitä tietoturvallisuuteen liittyviä vaatimuksia eri näkökulmista.

Sovelluskehityksen näkökulmasta tärkeimpiä VAHTI-ohjeita ovat:

Erilaisen näkökulman tietoturvavaatimusten määrittelyyn tarjoaa OWASP, joka tunnetaan parhaiten Top 10 -tarkastuslistastaan verkkosovellusten turvallisuuden testaamiseen. OWASP -yhteisö on määritellyt standardia laajemmin sovellusten tietoturvallisuuden testaamiseen ja tämä standardi tunnetaan nimellä Application Security Verification Standard (ASVS). ASVS pitää sisällään joukon tietoturvavaatimuksia, jotka on jaettu kolmelle tasolle. Ensimmäisen tason vaatimukset tulisi olla toteutettuna kaikissa järjestelmissä. Toisen tason vaatimukset ovat järjestelmille, joissa käsitellään luottamuksellista tietoa. Kolmannen tason vaatimukset on tarkoitettu turvallisuuskriittisille järjestelmille. ASVS on suositeltavaa käydä läpi jokaisen tietojärjestelmän vaatimusmäärittelyn yhteydessä.

Erilaisten ohjeiden lisäksi tietoturvallisuuteen liittyviä vaatimuksia määrittelevät usein myös toimialakohtaisesti erilaiset lait ja asetukset. Esimerkiksi EU:n tietosuoja-asetuksessa on suoria vaatimuksia, jotka tulee huomioida tietojärjestelmän toteutuksessa, jos järjestelmä käsittelee henkilötietoja. Lisäksi useat tietoturvallisuutta säätelevät lait ovat lähiaikoina muuttumassa.

Tietoturvallisuuteen liittyviä vaatimuksia siis löytyy useista lähteistä, mutta järjestelmän tietoturvallisen toteutuksen onnistumisen kannalta kokonaisuus ratkaisee. Ohjelmistojen tietoturvallisuuden hallintaa kannattaa tarkastella myös riskienarvioinnin kautta, joka auttaa tietoturvavaatimusten priorisoinnissa ja arvioinnissa. Aiheesta lisää blogisarjan seuraavassa osassa!