ASVS-testaus standardinmukaisesti on määrämittainen auditointi ohjelmiston ja sen arkkitehtuurin tietoturvaan

ASVS-testaus standardinmukaisesti on määrämittainen auditointi ohjelmiston ja sen arkkitehtuurin tietoturvaan

ASVS-tietoturvatestauksen (Application Security Verification Standard) hankinnassa on syytä arvioida testauksen tarve. Jos halutaan standardinmukainen ASVS-raportti, täytyy koko viitekehyksen valittu taso käydä testauksessa läpi. ASVS on siis määrämittainen pass/fail -kysymyksiin perustuva auditointi sovelluskokonaisuudelle, ei ns. perinteinen sovelluksen tietoturvatestaus tai auditointi.

On tärkeää tunnistaa missä tapauksissa halutaan aidosti ASVS-auditointi ja missä tapauksissa taas riittää, että ASVS:n vaatimuksia katsotaan soveltuvin osin osana räätälöityä tietoturvatestausta. Jos ASVS:n standardien kohtia on mukana kustomoidussa toteutuksessa, se ei takaa ASVS-vaatimustenmukaisuutta eikä sovellusta voi kutsua ASVS-auditoiduksi tämän perusteella.

ASVS eli Application Security Verification Standard on OWASP:n kehittämä viitekehys web-sovelluksien testaamiselle. Kyseinen standardi on jaettu kolmeen eri tasoon.

  1. ASVS L1: Taso on suunnattu sovelluksille, joiden tietoturvavaatimukset ovat perustasolla. Tähän tasoon pitäisi kaikkien sovelluksien pyrkiä sovelluksesta ja sen käyttötarkoituksesta riippumatta. L1-tason testaus varmistaa, että sovellus on suojattu yleisimmiltä hyökkäyksiltä, kuten SQL-injektioilta, XSS-hyökkäyksiltä ja perusautentikointiin liittyviltä heikkouksilta.
  2. ASVS L2: Taso on tarkoitettu sovelluksille, jotka käsittelevät arkaluonteisia tietoja tai hoitavat yrityksen kannalta tärkeitä toimintoja. Tällä tasolla testauksen tueksi vaaditaan pääsy lähdekoodiin ja työpajoja kehittäjätiimin kanssa.
  3. ASVS L3: On korkean turvallisuuden sovelluksille, kuten valtion, pankkien tai sotilasjärjestelmien käyttöön. Se sisältää kaikkein laajimman arvioinnin ja voi vaatia pääsyn järjestelmän infrastruktuuriin.

ASVS-testauksessa kokonaisuus toteutetaan niin, että asiakkaan tilatessa ASVS L2 tason testauksen, siihen kuuluu automaattisesti aina myös ASVS L1 -tason kohdat. Nykyiset ASVS L1- ja L2 -tasot pitävät sisällään yhteensä 259 kysymystä, jotka kaikki arvioivat sovelluksen maturiteettia eri näkökulmista. L3 -tasoa toteutetaan hyvin harvoin.

Milloin ASVS-testaus olisi järkevää?

ASVS-testaus on metodiltaan työläämpi kuin perinteinen räätälöity sovellustestaus. Tämän myötä aidosti määrämittainen ASVS-testaus on myös kalliimpaa, kuin sovellustestaus soveltavalla metodologialla. Aidolle ASVS-auditoinnille on kuitenkin paikkansa. Se kertoo sidosryhmille, kuten loppuasiakkaille, sovelluksen käyttäjille tai regulaattoreille, kuinka sovellusta on testattu ja mitä haavoittuvuuksia siitä on löytynyt.

Joskus vaatimus ASVS-testaukseen voi tulla asiakkaalta tai regulaattorilta, mutta joskus se voi olla syytä toteuttaa myös ennakkoon. Todistus ASVS-testauksesta on pelkkää sovelletun testauksen raporttia merkittävämpi ja kattavampi katsaus ulkopuoliselle sovelluksen tietoturvaan ja sen tausta-arkkitehtuurin tietoturvan tasoon. Jos haluaa varmentua, että voi esittää laajalti hyväksytyn standardin mukaisen todistuksen sovelluksen tietoturvasta, on ASVS-auditointi kannattavaa toteuttaa.

ASVS-testauksen tarkoitus ei ole ainoastaan löytää haavoittuvuuksia, vaan myös arvioida sovelluksen yleistä arkkitehtuuria tietoturvan näkökulmasta. ASVS:n avulla varmistetaan, että sovellus täyttää modernin tietoturvan vaatimukset aina tietojen suojauksesta käyttöoikeuksien hallintaan ja virheiden käsittelyyn asti.

On tärkeää, että ASVS-testaus kattaa kaikki standardin osa-alueet, jotta sovelluksen tietoturva voidaan varmistaa kattavasti.

Soveltaen tehty ASVS-testaus saatetaan toteuttaa puhtaasti työpajakatselmointina. Se ei kuitenkaan vastaa standardin vaatimuksia, sillä esimerkiksi L1-tason testaus edellyttää haastattelutoteutuksen lisäksi perusteellista sovelluksen teknistä tietoturvatestausta. Joskus puolestaan sovellukselle toteutetaan pelkkä testaus, jossa ei huomioida esimerkiksi koodikatselmointia tai dokumentaation tarkistuksia.

Mitä sudenkuopista voi seurata?

ASVS-testaukset ovat usein kalliimpia kuin perinteiset tietoturva-auditoinnit. On tärkeää, että testauksen kaikilla osapuolilla on selkeä käsitys siitä, että tarkoituksena on tehdä jonkin tason standardinmukainen ASVS-testaus. Jos testaus ei täytä standardin vaatimuksia, saattaa syntyä epäselvyyksiä ja ongelmia, erityisesti silloin, kun auditointia käytetään todisteena sovelluksen turvallisuudesta esimerkiksi loppuasiakkaille tai viranomaisille.

Askeleet kattavan ASVS-testauksen hankintaan

ASVS-testauksen kilpailutuksessa tai tilausprosessissa on hyvä huomioida ainakin seuraavat olennaiset asiat:

  • Selvitä, miten toteutettavan testauksen toteutus eroaa perinteisestä tietoturva-auditoinnista?
  • Kysy, miten ASVS-tasojen L1 ja L2 varmentaminen eroaa käytännössä. Mitä erityisiä vaatimuksia ja tarkistuksia kumpikin taso sisältää, ja miten ne vaikuttavat sovelluksen tietoturvaan?
  • Kysy, miten loppuraportti on laadittu. Näkyvätkö loppuraportissa kaikki ASVS:n kohdat ja viittaukset standardiin. Onko kaikki kohdat läpikäyty ja merkitty joko ’Failed’, ’Pass’ tai ’N/A’

Jos raportissa ei näy kaikkia ASVS:n kohtia ja tietoa siitä, mitkä kohdat ovat menneet läpi ja mitkä eivät, tai jos L1- ja L2-tasojen varmentamisessa ei ole eroja, kyseessä voi olla tilanne, jossa ASVS-testauksen sijasta toteutus on perinteisen tietoturva-auditoinnin kaltainen räätälöity toteutus.

ASVS-testauksessa laaditun standardin seuranta sen kaikilta osin tuottaa kattavamman lopputuloksen, jonka myötä sovelluksen tietoturva on varmistettu kaikilta vaadituilta osin. Näin auditoinnin esittäminen todisteena esimerkiksi omille asiakkaille on ongelmatonta ja riskit turvallisuuden osalta on aidosti käyty läpi ja minimoitu.