Tapio Särkelä

Tapio Särkelä

Helping software companies to make Secure DevOps.

Mikä on oikea menetelmä sovellusten tietoturvan testaukseen? Millaisia haavoittuvuuksia eri menetelmät paljastavat? Pitääkö käyttää useita eri menetelmiä? Seuraavaksi käsitellään lyhyesti Veracoden palvelussa käytettäviä eri testausmenetelmiä ja tuodaan esille niiden vahvuuksia ja heikkouksia.

Staattinen analyysi (SAST)

Staattisessa analyysissä haavoittuvuuksia etsitään sovelluksen binääristä tai koodista.
  • SAST voidaan integroida osaksi kehitysalustaa, ja skannaus voidaan käynnistää automaattisesti, jolloin se erityisesti DevOps -kehitystyölle sopiva väline.
  • SASTia voidaan käyttää minkä tahansa sovelluksen tietoturvatestaukseen (web, työasema, mobiili jne), ja se kattaa laajan ohjelmointikielten ja sovelluskehittimien valikoiman
  • SAST ei löydä loogisia virheitä
  • Ei hyötyä sovelluskirjastojen tutkimiseen.

Sovelluskirjastojen analyysi (SCA)

SCA etsii haavoittuvuuksia avoimen lähdekoodin ja kolmannen osapuolen kirjastoista ym komponenteista.
  • SCAn integrointi sovelluskehitysprosessiin on yksinkertaista, ja skannaukset ovat nopeita.
  • Mahdollisista haavoittuvuuksista toipuminen voi olla helppoa, jos kirjasto voidaan vaihtaa uudempaan versioon, jossa haavoittuvuudet on korjattu.
  • SCA ei ole myöskään mahdollinen uhka kehitystiimille, sillä SCA ei analysoi heidän koodiaan.
  • SCA etsii haavoittuvuuksia vain kolmannen osapuolen komponenteista
  • Ei löydä loogisia virheitä

Dynaaminen analyysi (DAST)

DASTin avulla voidaan sovellusta testata ajonaikaisessa ympäristössä. DAST tarkoittaa webbisovelluksen skannausta.
  • DAST on yleisesti käytetty testausmenetelmä, koska sillä voidaan testata tuotannossa tai testiympäristössä olevaa sovellusta sovelluskoodin asemesta.
  • Skannaus voidaan tehdä koodia käsittelemättä
  • DAST löytää mahdolliset heikkoudet ja konfiguraatiovirheet palvelimen puolella.
  • Koska DAST testaa tuotannossa olevaa sovellusta http-protokollalla, ei käytetyllä ohjelmointikielellä tai sovelluskehittimellä ole juurikaan merkitystä.
  • DASTilla voidaan skannata vain web-sovelluksia joko tuotanto- tai testiympäristössä
  • DAST ei löydä kovinkaan monimutkaisia loogisia virheitä
  • Dynaaminen skannaus vie aikaa, joten se pitää tehdä esim. yön yli

Tunkeutumistestaus (pentestaus)

Luvallinen simuloitu hyökkäys, jolla testataan sovelluksen arkkitehtuuria, komponentteja ja sovelluskoodia suurimmaksi osaksi manuaalisella työllä.
  • Tunkeutumistestauksessa hyödynnetään asiantuntijoiden osaamista ja menetelmiä, joiden avulla pyritään ohittamaan sovelluksen kontrollit
  • Pentestin avulla löydetään erilaisia tietoturvaan liittyviä ongelmia, erityisesti loogisia virheitä
  • Mahdollista ketjuttaa havaintoja jolloin testaamisen vaikuttavuus kasvaa
  • Kohteena olevat sovellukset voivat olla hyvin erilaisia
  • Testaus vie aikaa, se voi olla kallista ja tulokset vanhenevat nopeasti
  • Testistä saattaa myös usein ennakoimatonta lisätyötä kehitystiimille, joten testi on suunniteltava huolellisesti
  • Konsultti eli ihmistyövetoista

Perinteinen haavoittuvuusskannaus

Suunnitelmallinen infrastruktuuriin ja palvelimiin kohdistuva skannaus jolla löydetään käyttöjärjestelmätason ja infrastruktuurilaitteiden haavoittuvuudet
  • Mahdollistaa suunnitelmallisen prosessin laaja-alaisten verkkokokonaisuuksien ja infrastruktuurin haavoittuvuushallintaan
  • Vastaa tiettyihin regulaatiovaatimuksiin mm. PCI-DSS
  • Testaus vie aikaa
  • Tulosten hyödyntäminen vaatii yhteistyötä palvelinten omistajien sekä infrastruktuurin operoijien kanssa
  • Tulosten hyödyntäminen vaatii toimivan prosessin
  • Kattaa osittain valmisohjelmistot mutta ei kata oman sovelluskehityksen tuotoksia, koodia tai kirjastoja
Johtopäätös
Sovellusten tietoturvan testausmenetelmiä arvioitaessa tulee usein eteen johtopäätös, ettei ole olemassa yhtä ainoaa ratkaisua. Kaikilla menetelmillä on etuja, joista on selkeitä hyötyjä, mutta myös rajoituksia, kuten millaisia tietoturvaongelmia tai haavoittuvuuksia ne voivat löytää.
Hyötyjen optimointi
Kun halutaan löytää parasta sovellusten tietoturvan testausvälinettä, pitää käyttää useita arviointikriteerejä. Ideaalitilanteessa käytettävissä olisivat kaikki testausmenetelmät, mutta käytännössä valinta on järkevä kohdistaa niihin menetelmiin, joista on eniten hyötyä.
Kriteerit
Valinnassa voi käyttää kriteereinä esimerkiksi sovelluksen julkaisuaikatauluun liittyviä riskejä, yrityksen/tiimin riskinsietokykyä, ja tietysti millainen rahoituspohja yrityksellä on. Lähtökohtana voi pitää, kun tietoturvallinen sovelluskehitys on jo olemassa, sen yhteyteen voidaan ottaa erilaisia testausvälineitä, joiden avulla päästään yhä parempiin tuloksiin.
Yhdistele
Kokemuksemme mukaan SAST+SCA on hyvä yhdistelmä lähteä liikkeelle. Sillä katetaan useinmiten suurimmat sovellusten tietoturvaan liittyvät tarpeet. Yrityksen liiketoimintaan tai kehitysprosessin liittyvien tarpeiden pohjalta kokonaisuuteen voidaan lisätä myös DAST ja IAST sekä pentestaus.
Ihminen
Koneellinen testaus ei poista pentestauksen tarvetta. Koneellinen testaus voi kuitenkin antaa tärkeitä vihjeitä pentestauksen suunnittelulle ja toteutukselle.
Previous slide
Next slide
Tapio Särkelä

Tapio Särkelä

Helping software companies to make Secure DevOps.

ota yhteyttä

Pyydä rohkeasti lisätietoa. Vastaamme todennäköisesti nopeammin kuin osasit kuvitella.