Skip to main content

Auditointi vai tietoturvatestaus?

· 3 min read
Tuomas Tonteri

Toisinaan yrityksissä pohditaan tietoturvatyötä suunniteltaessa, kannattaako esimerkiksi ohjelmistotuotetta tekevän yrityksen teettää tietoturvatestaus vai tietoturva-auditointi. Melko usein näitä termejä käytetään myös ristiin, eikä välttämättä termin käyttäjä aina itsekään tiedä, kumpaa tulisi käyttää. Usein puhutaan tietoturva-auditoinnista, vaikka tarkoitetaan tietoturvatestausta.

Onko näillä termeiltä siis eroa laisinkaan? Onko verkkopalvelu kahden viikon tietoturvatestauksen jälkeen ISO 27001 -mukainen?

Tietoturvamalli

Tietoturvatestaus on tyypillisesti tutkivaa, eksploratiivista, testausta jossa kohdejärjestelmää toki käydään systemaattisesti läpi, mutta testaajien huomio väistämättä ohjautuu tehtyjen havaintojen ja aiemman kokemuksen perusteella kohti todennäköisimmiksi oletettuja haavoittuvaisia kohtia järjestelmässä. Ohjelmiston toiminnallisuutta testataan käyttämällä järjestelmää, lähettämällä sille muunneltuja ja tarkoituksella odottamattomia tai rikkinäisiä pyyntöjä tarkoituksena aiheuttaa epävakautta tai muuta odottamatonta käyttäytymistä, joka paljastaisi hyödynnettävissä olevia puutteita järjestelmän toiminnassa tai sen suojauksissa. Järjestelmän eri osioihin sovelletaan vaihtelevaa testitapausten joukkoa. Yksittäistä toimintoa kohti saatetaan lähettää kymmeniätuhansia erilaisia pyyntöjä, joilla haetaan toiminnallisia rajatapauksia ja suojauslogiikan ulottuvuuksia. Oli lähestymistapa mikä tahansa, tietoturvatestaus ei koskaan voi olla kaikkia syötevariaatioita ja toiminnallisen logiikan haaroja tai kutsusekvenssejä täydellisesti kattava kokonaisuus.

Ei tietenkään ole mahdotonta sekään, että tietoturvatestaus kohdennetaan hyvin kapeaan kohdejärjestelmän osa-alueeseen, esimerkiksi pelkkään kirjautumiseen, ja sen varmatoimisuuden varmistamiseksi määritellään tarkat määrämuotoiset testitapaukset ja rakennetaan testauksen suorittamiseen täsmäautomaatiota hyvän testauskattavuuden (logiikan haarautumisten ja syötteiden raja-arvojen kannalta) saavuttamiseksi. Tästä voi olla jatkossa merkittävää hyötyä tietoturvan regressiotestauksen toteuttamisessa.

Tietoturvatestauksen laajuutta ja kattavuutta rajoittaa edellä mainittujen seikkojen ohella aina myös projektin rajaukset sekä käytettävissä olevan varatun ajan ja työmäärän raamit. Lopputuloksena saadaan käytettyyn työmäärään ja testauksen laajuuteen suhteutettuna paras mahdollinen selvitys kohdejärjestelmän tietoturvallisuudesta esimerkiksi käyttöliittymän ja API-rajapintojen näkökulmasta. Kohdejärjestelmän tietoturvatestausta voi lähestyä monella eri tapaa, testaten itse ohjelmistoa, sen ajoympäristöä, integraatioita tai vaikkapa kokonaisuuden kyvykkyyttä säilyttää tietojen eheys poikkeus- ja virhetilanteissa. Sattumallakin on luonnollisesti osuutensa toteutuviin löydöksiin.

Jos tietoturvatestaus on epätarkka ja moniulotteinen termi, auditointi pistää kyllä paremmaksi. Vakiintuneemmat määritelmät lähtevät siitä, että auditointi on tyypillisesti ulkopuolisen tahon tekemä joidenkin kriteerien toteutumisen selvittämiseen pyrkivä tapahtuma. Auditoinnit ovat siis eräänlaisia vaatimustenmukaisuusarviointeja, joissa keskeistä on päästä yksiselitteiseen lopputulokseen. Vaatimukset joko täyttyvät, tai eivät täyty. Tietoturva-auditoinnin täytyy siis olla tietoturva-aiheisten kriteerien toteutumisen arviointi. Arvioinnin kohteena voi olla käytännössä mikä tahansa, tietoturva-auditoinnissa esimerkiksi organisaatio toimintatapoineen, yrityksen IT-infra, verkkopalvelu tai muu tietojärjestelmä (ERP, CRM, toimisto-ohjelmistot jne.), ohjelmistokehityksen menetelmät, DevSecOps-käytännöt, ohjelmistoarkkitehtuuri ja niin edelleen. Arviointikohteen lisäksi on valittava, mitä kriteeristöä tai vaatimuskehikkoa auditoinnissa käytetään. Organisaation tietoturvallisuuden hallintaa voidaan mitoittaa esimerkiksi ISO 27001 mukaisesti, kehitystiimien toimintaa ja tietoturvan huomiointia vaikka OWASP SAMM -mallilla tai eri Secure SDLC -malleilla jos halutaan painottaa tietoturvallisuuden huomiointia läpi ohjelmistotuotannon prosessin. OWASP:n kattava Application Security Verification Standard (ASVS) -kehikko tarjoaa laajan läpileikkauksen tietoturvallisiin ohjelmistosuunnittelun, toteutuksen ja testauksen käytänteisiin.

Kuten monissa asioissa, tärkeintä on ylläpitää jatkuvaa tietoturvatyötä ja edetä siinä systemaattisesti. Eri kehikoita, toimintamalleja, kumppaneita ja asiantuntijoita kannattaa yhdistellä, jotta tarkastelukulma ja näkemykset uusiutuvat monipuolisemman ja kattavamman lopputuloksen eduksi. Käytännön testausta ja vaatimustenmukaisuusarviointeja on usein järkevää yhdistellä niin, että esimerkiksi tietojärjestelmän arkkitehtuurista arvioidaan tietoturvallisten suunnitteluperiaatteiden toteutuminen ja näiden jalkautuminen käytännön tietoturvatasoon varmistetaan arviointia tukevalla testauksella.

Tietoturvatestauksen suorittaminen ei tee kohteesta esim. ISO-standardin mukaista eikä ISO-auditoinnin läpäisy tee kohteesta tietoturvallista. Kumpaakin lähestymistapaa tarvitaan.

Tietoturvatestaus ei siis anna absoluuttisia vastauksia järjestelmän turvallisuudesta. Auditoinnin tulokset kertovat, toteutuvatko valitut vaatimukset auditoijan näkemyksen mukaan. Miten siis varmistettaisiin vaikkapa yrityksen tietoturvallisuus? No, se nyt ainakin on selvää, että toimialana meillä on vielä paljon kehitettävää ja opittavaa, mutta hyviä menetelmiä ja työkaluja monipuoliseen tietoturvatyöhön jo löytyy.