Skip to main content

Osa 2 Tietoturvatestaus ja sovelluskehitys – mitä hyötyä jatkuvasta tietoturvatestauksesta on ja milloin palvelun hankinta on ajankohtaista?

09.03.2022
Tuukka Merilainen

Blogisarja:

Osa 1 - Miksi verkkosovelluksen tietoturvatestaus kannattaa ja mitä on syytä ottaa huomioon?

Osa 2 – Tietoturvatestaus ja sovelluskehitys – mitä hyötyä jatkuvasta tietoturvatestauksesta on ja milloin palvelun hankinta on ajankohtaista?

Edellisessä osassa kuvattiin taustoja mihin verkkosovelluksen tietoturvatestausta ylipäätään tarvitaan. Tässä osassa tarina jatkuu ja pohditaan miten tietoturvatestausta tulisi suorittaa pitkällä tähtäimellä. Riittääkö, että sovellus testataan kerran vai pitäisikö testausta suorittaa useammin tai jopa säännöllisesti? Milloin pitäisi kiinnostua jatkuvasta tietoturvatestauksesta?

Pohdi hetki seuraavia:

1. Liittyykö edustamasi yhtiön tai organisaation liiketoimintaan verkkosovellus, jonka toimimattomuus tai sen tietojen vuotaminen vaikuttaisi liiketoimintaan negatiivisesti?

Jos vastasit kyllä, jatka pohdintaa seuraavan parissa:

2. Onko liiketoiminnan kannalta kriittinen verkkosovellus sellainen, jota kehitetään aktiivisesti? Julkaistaanko sovellukseen ylläpitopäivityksiä tai uusia ominaisuuksia päivittäin, viikoittain tai kuukausittain?

Jos vastasit kyllä myös edelliseen, saatat tarvita verkkosovelluksen jatkuvaa tietoturvatestaus palvelua. Toisaalta muista ottaa huomioon, että sovellukset eivät periaatteessa koskaan valmistu. Vähintäänkin ylläpitoa ja huoltoa on tehtävä säännöllisesti aktiivisessa käytössä olevaan verkkosovellukseen.

Jokainen muutos tai toimenpide sovelluksen lähdekoodiin tai palveluympäristöön voi aiheuttaa uuden haavoittuvuuden. Jatkuva tietoturvatestaus palvelu mahdollistaa muutosten ja toimenpiteiden testaamisen säännöllisesti.

Sovelluksen edelliseen versioon suoritettu tietoturvatestaus ei takaa järjestelmän tietoturvallisuutta tänään. Tuotekehitys on prosessi, samoin testaus.

Yleisesti ottaen sovelluskehitys on useimmiten prosessi, ei projekti. Sovellus saattaa syntyä projektin myötä, mutta aktiivisessa käytössä oleva sovellus vaatii ylläpitoa ja kehitystä jatkuvasti. Mikäli sovellus kehittyy kovaa tahtia ja tietoturvatestausta ei suoriteta säännöllisesti - syntyy testivelkaa.

Testauksen tarve on aina olemassa. Tarve ei itsestään katoa tai ratkea niin kauan, kun sovellusta käytetään. Toisaalta pitkään kumuloitunut testivelka voi aiheuttaa tietoturvaan liittyvien riskien kasvamista tai realisoitumista ja tilanteen hallintaan ottaminen vaikeutuu mitä enemmän testivelkaa syntyy. On tärkeää luoda prosessi, jonka myötä sovellukseen suoritetaan huolto- ja kehitys-toimenpiteitä hallitusti ja säännöllisesti.

Mikäli sovelluksen elinkaari on pitkä, myös kehityksen elinkaari on pitkä. Erityisesti kriittisten ja pitkän elinkaaren omaavissa sovelluksissa tietoturva on tärkeä ottaa huomioon huolto- ja kehitys prosessin aikana määrätietoisesti.

Ketterän kehityksen menetelmin suoritettavassa sovelluskehityksessä sovellus syntyy osissa. Tarkoituksena ei ole rakentaa järjestelmää kuten Iisakin Kirkkoa vaan viedä ominaisuuksia tuotantoon niin pian, kuin se on järkevästi mahdollista. Tietoturvatestaus onkin järkevää sovittaa ketterän kehityksen rytmiin siten, että uudet ominaisuudet, muutokset ja kokonaisuus testataan mahdollisimman pian julkaisujen aikataulu huomioiden.

Mitä tarkoittaa testivelka tietoturvatestauksessa?

Testivelka tarkoittaa käytännössä sitä, että kaikkia tietoturvan kannalta merkityksellisiä osia ei ole testattu kunnolla tai ollenkaan. On saatettu testata sovelluksen edellistä versiota tai testaus on suoritettu ajallisesti kauan sitten. Sovellus kokonaisuutena on niin vahva, kuin sen heikoin lenkki. Toisin sanoen, hyökkääjä on tyytyväinen löytäessään yhdenkin merkittävän tai kriittisen haavoittuvuuden.

Mikäli tietoturvatestausta ei toteuteta säännöllisesti ja testivelkaa on paljon, riski ilmeisen haavoittuvuuden olemassaoloon on merkittävä. Edelliseen versioon suoritettu tietoturvatestaus ei takaa järjestelmän turvallisuutta tänään.

Merkittävän lisämausteen verkkosovelluksien tietoturvaan tarjoaa jatkuvasti kehittyvä toimintaympäristö. Käytännössä tietoturvan vaatimukset ja kyberhyökkäykset kehittyvät jatkuvasti. Periaatteessa viime viikolla toimivaksi ja turvalliseksi todettu sovellus voikin olla tällä viikolla turvaton, vaikka mitään ei olisi muutettu

Malli esimerkki on HTTP request smuggling (https://en.wikipedia.org/wiki/HTTP_request_smuggling) haavoittuvuus, joka alunperin todettiin jo vuonna 2005. Haavoittuvuus konkretisoitui varsinaisesti ison yleisön tietoisuuteen viimeistään PortSwiggerin vuonna 2020 tekemän tutkimustyön pohjalta. Periaatteessa tammikuussa 2020 alkuvuodesta toimivaksi ja turvalliseksi todettu sovellus saattoikin olla kriittisen haavoittuvuuden sisältävä järjestelmä huhtikuussa 2020 ilman, että sovelluksessa itsessään mikään muuttui.

Milloin on hyvä hetki hankkia verkkosovelluksen jatkuva tietoturvatestaus palvelu?

Juuri nyt on hyvä hetki testauttaa juuri sinun organisaatiosi toiminnan kannalta kriittinen tuotannossa oleva sovellus, jos sitä ei ole tietoturvatestattu.

Murtotestauksen menetelmin suoritettava tietoturvatestaus on mahdollista toteuttaa aina, kun sovellus on pääpiirteittäin käyttökelpoinen, muilta osin julkaisuvalmis tai jo julkaistu. Mikäli sovellus kehittyy aktiivisesti, on jatkuva tietoturvatestaus loistava vaihtoehto. Parhaan lopputuloksen saat, kun aktivoit tietoturvakumppanisi käytännön hommiin jo suunnittelu- ja kehitysvaiheessa.

Tietoturvatestausta suunniteltaessa tilaajan ja toimittajan välillä toistuu usein kaksi teemaa:

• Huomataan, että tietoturvatestaus olisi pitänyt aloittaa jo aikoja sitten

• Todetaan, että sovellukseen ollaan juuri tekemässä muutoksia tai uusia ominaisuuksia. Näin ollen pohditaan, että tietoturvatestaus tehdään vasta, kun nämä ovat valmiina

Mutta mikä on oikea vaihe teettää testaus: eilen, heti vai päivitysten valmistuttua?

Kokemuksemme perusteella täydellistä ajankohtaa tietoturvatestaukselle ei tule koskaan. Yhdessä suunniteltu jatkuva tietoturvatestaus, joka integroituu sovelluksen kehitysprosessiin poistaa ongelman ”milloin on oikea aika testata” ja sen, ettei testausvelkaa synny hallitsemattomasti. Jos turvallisuuteen suhtaudutaan ammattimaisesti, sovelluksen tietoturvasta vastaavilla tahoilla on säännöllisesti tilannekuva siitä mitkä osat sovelluksesta on testattu, milloin on testattu, kuka on testannut ja miten on testattu.

Miksi näin?

Hyvin usein on niin, että tietoturvatestaus olisi pitänyt tehdä jo aikaa sitten. Monesti tietoturvatestaamattoman ja jo tuotannossa olevan sovelluksen testaaminen viivästyy vuosi- tai kuukausitolkulla, koska viimeisimpien päivitysten julkaisu viivästyy.

Erityisesti aktiivisessa käytössä olevat liiketoiminnallisesti tärkeät sovellukset kehittyvät tavalla tai toisella koko ajan. Luonnollisesti harmittaa, jos uutta ominaisuutta ei ehditä testaamaan kertaheitolla. Työjonossa olevan ominaisuuden valmistumista ei kuitenkaan kannata odottaa loputtomasti, lähes aina on jotain muutakin järkevää testattavaa. Tietoturvaa varmentavia toimia on syytä tehdä mahdollisimman varhain. Mitä kauemmin tietoturvatestauksen teettäminen viivästyy, sitä enemmän testivelkaa syntyy ja mahdolliset ongelmat monistuvat uusien ominaisuuksien myötä. Tärkeintä on kääriä hihat, aloittaa ennemmin, kuin myöhemmin ja lopettaa haikailu!

Paras lopputulos saadaan aikaan, kun sovelluksen tietoturva otetaan huomioon mahdollisimman varhain. Havaittuihin virheisiin ja haavoittuvuuksiin kannattaa suhtautua avoimin mielin ja pyrkimyksenä oppia virheistä. Usein samat ongelmat toistuvat, jos niitä ei havaita varhain tai niihin ei suhtauduta oikealla asenteella.

Mitä kannattaa ottaa huomioon verkkosovelluksen jatkuvaa tietoturvatestaus palvelua hankkiessa?

Kaikkea ei kannata testata jatkuvasti ja kaiken aikaa. Hanki jatkuva tietoturvatestaus palvelu erityisesti liiketoimintakriittisiin aktiivisen kehityksen alla oleviin sovelluksiin. Kun olet tunnistanut liiketoimintakriittiset sovellukset, on hyvä aika suunnitella testauksen toteutusta.

• Selvitä yhdessä tietoturvakumppanisi ja sovelluskehittäjien kanssa mitkä osat on syytä testata ja miten testaus on järkevää toteuttaa. On hyvä määrittää tarkemmin testauksen kohde sekä rajaus ja samalla selvittää testauksen laajuus, työmääräarviot ja kustannukset.

• Tee sovelluksen roadmap näkyväksi tietoturvakumppanillesi ja pohdi kehitysaikataulua. Jatkuva tietoturvatestaus on järkevää integroida osaksi kehitysprosessia ja ajoittaa sovelluksen roadmap:in mukaiseksi.

• Neuvottele sopimus, joka mahdollistaa testaamisen joustavasti ja pienelläkin kynnyksellä siten, että ongelmien tai testaustarpeen ilmetessä sopimusasiat eivät hidasta testausta.

• Huomioi se, että laadukas tietoturvatestaus on asiantuntijatyötä, joka vaatii aikaa. Mikäli budjettisi muodostuu rajoitteeksi, voit priorisoida testauksen vain kriittisimpiin osiin. Vältä tarpeetonta laadussa tinkimistä.

• Tietoturvatestausta voi tehdä pelkästään automaattisia skannaustyökaluja ajamalla. Tämän tyyppinen toimenpide on helposti skaalautuva pintapuolinen tarkastus, jonka testikattavuus on suppea. Varaudu siihen, että pelkkä skannaustyökalujen ajo ei kerro todellista kuvaa tietoturvatasosta suhteessa reaalimaailman hyökkäyksiin.

• Todellisen varmuuden saat, jos testausta suorittaa murtotestaukseen vihkiytynyt ammattilainen, jonka käytössä on automaattisia- ja manuaalisia työkaluja.

• Muista viestiä tietoturvaa varmentavista toimista liiketoimintakriittisen sovelluksesi käyttäjille, asiakkaille ja muille sidosryhmille. Turvallisuutta parantavat ja varmentavat toimet kasvattavat luottamusta, ovat signaali ammattimaisuudesta ja edesauttavat positiivista asiakaskokemusta.

Yhteenveto

1. Huolehdi, että liiketoimintakriittinen järjestelmä murtotestataan säännöllisesti ja vähintään aina, kun merkittäviä päivityksiä on tehty

2. Varmista testikattavuuden riittävyys ja se, että testauksessa on keskitytty kaikista merkityksellisimpien asioiden testaamiseen.

3. Mikäli sovellusta ylläpidetään ja kehitetään prosessin avulla – integroi tietoturvatestaus osaksi prosessia.

4. Älä jahkaile loputtomasti testauksen toteutuksen suhteen.

Lue lisää jatkuvasta tietoturvatestauksesta

Jaa Twitterissä


Jaa Facebookissa

silverskin logo