Miten penetraatiotestaus ja haavoittuvuusskannaus eroavat toisistaan? Entä mitä palveluiden ostajan olisi hyvä näistä ymmärtää, jotta saa varmasti investoinnilleen vastinetta? Tämä kirjoitus pyrkii avaamaan käsitteitä ja kirkastamaan niiden eroja.
Tietojärjestelmien tietoturvallisuuden teknisessä arvioinnissa käytetään usein menetelmiä kuten haavoittuvuusskannaus ja penetraatiotestaus. Termien sisältö ei kuitenkaan aina ole kokeneillekaan tietoturvapalveluiden hankkijoille selkeitä. Palveluita tarjoavat yrityksetkin saattavat nimetä palveluitaan vaihtelevasti - ja tarjoavat eri palvelua kuin minkä nimen perusteella kuvittelisi saavansa. Miten nämä menetelmät sitten liittyvät tai poikkeavat toisistaan?
Haavoittuvuusskannauksessa (aka. haavaskannaus, haavoittuvuustestaus) kohdejärjestelmästä etsitään tunnettuja tietoturvan tasoa potentiaalisesti heikentäviä asioita.
Nämä voivat olla
Haavoittuvuustestauksessa eli skannauksessa hyödynnetään haavoittuvuuksien tunnistamiseen kehitettyjä ohjelmistoja (kuten esimerkiksi Nessus, Nexpose, Acunetix).
Skannaus on hyvä tapa käydä läpi iso määrä eri kohdejärjestelmiä suhteellisen nopeassa ajassa. Skannaus on usein myös kustannustehokasta ja edullista riippuen valitusta skannerista. Se mahdollistaa säännöllisen skannauksen esimerkiksi viikottain, kuukausittain tai kvartaaleittain.
Koska skannaus on pitkälti koneellinen tapa arvioida haavoittuvuuksia, tuottavat työkalut ajoittain myös niin sanottuja vääriä positiivisia havaintoja. Tällöin työkalu on virheellisesti päätellyt jonkin asian haavoittuvaksi, vaikka todellisuudessa näin ei ole. Myös käänteinen pätee eli kaikkia haavoittuvuuksia tai heikkouksia ei löydetä pelkästään koneellisesti.
Osa työkaluista osaa tiettyyn rajaan asti myös todentaa haavoittuvuuksia, mutta usein havainnot on silti käytävä manuaalisesti läpi. Manuaalinen läpikäynti tarkoittaa, että työkalun raportoimaa havaintoa yritetään hyödyntää, eli kokeillaan miten pahaa jälkeä sillä saadaan aikaiseksi.
Kun havainnot on käyty läpi ja niiden vaikutus on arvioitu, voidaan aloittaa niiden paikkaaminen.
+ kustannustehokkuus
+ nopeus
+ mahdollisuus automatisoida skannaus sopivaan sykliin
- väärät positiiviset havainnot
- havainnot täytyy käydä läpi manuaalisesti
- ei tarkasta sitä sitä onko haavoittuvuus hyödynnettävissä
- ei löydä kaikkia ongelmia
“Mitkä meidän (ulkoverkkoon näkyvistä) tietojärjestelmistä sisältävät tunnettuja haavoittuvuuksia, ylimääräisiä tai vanhentuneita palveluita tai konfiguraatiovirheitä?”
Siinä missä haavoittuvuusskannaus liittyy varsin suoraviivaisesti järjestelmien suojaamiseen (ja niihin liittyviin prosessien) arviointiin, voidaan penetraatiotestauksessa arvioida myös tietoturvapoikkeamien havaitsemiseen ja poikkeamien hallintaan liittyviä kyvykkyyksiä.
Haavoittuvuusskannaus on usein ensimmäinen penetraatiotestauksen vaihe. Skannauksessa kerättyä haavoittuvuusdataa rikastetaan ja jalostetaan haavoittuvuuksia hyödyntäviksi haittakoodeiksi (engl. exploit code). Yksittäinen haavoittuvuus ei vielä välttämättä mahdollista järjestelmään luvatonta sisäänpääsyä vaan se edellyttää useiden haavoittuvuuksien samanaikaista tai ketjutettua hyödyntämistä.
Haittakoodeilla pyritään usein hankkimaan valtuuttamaton pääsy johonkin ulkoverkkoon näkyvään järjestelmään, joka itsessään on yhteydessä toiseen, esimerkiksi sisäverkossa sijaitsevaan järjestelmään. Näin hankitusta jalansijasta voidaan ajaa uusia haavoittuvuusskannauksia sisäverkon puolelle ja pyritään tunnistamaan sieltä heikosti suojattuja järjestelmiä, joista saadaan uusi jalansija jne. Penetraatiotestauksessa siis ohitetaan suojauksia kerros kerrokselta ja näin hyökkäys etenee ulkoverkosta sisäverkkoon asti.
Penetraatiotestaajalla on usein jokin konkreettinen tavoite (esim. maalijärjestelmä), johon pyritään hankkimaan pääsy.
Tilaajan näkökulmasta penetraatiotestaus ei pelkästään auta arvioimaan mitkä haavoittuvuudet mahdollistavat luvattoman tunkeutumisen, vaan se myös auttaa arvioimaan miten hyvin haavoittuvuuksien hyödyntämisyritykset pystytään tunnistamaan ja myös pysäyttämään.
Jos haluat löytää syvällä piileviä ongelmia sovelluksessasi tai järjestelmässäsi, penetraatiotestaus on hyvä valinta. Mikäli sovelluksesi kehittyy ja päivittyy, säännöllinen penetraatiotestaus (PTaaS) on erinomainen tapa varmistaa tietoturvaa jatkuvasti.
Penetraatiotestaajat eli eettiset hakkerit ovat sertifioituja teknisen tietoturvan ammattilaisia, ja he käyttävät taitojaan järjestelmien turvallisuuden parantamiseen. Penetraatiotestauksen avulla voidaan myös osoittaa asiakkaille ja yhteistyökumppaneille, että sovellus on toimialan ja lakien vaatimusten mukainen. Usein esimerkiksi ohjelmistoille ja verkkosovelluksille voi olla tarve teettää riippumattoman 3. osapuolen suorittama tietoturvaturvatarkastus tai -arviointi.
+ havaitsee väärät positiiviset skannaukset
+ perusteellinen riippumattoman asiantuntijan näkemys teknisestä turvallisuudesta
+ havainnot kriittisyysasteineen ja korjausehdotukset (+korjausten tarkistus)
+ realistinen kuva tietoturvan tilasta pahantahtoisen hyökkääjän näkökulmasta
+ auttaa osoittamaan vaatimustenmukaisuuden
+ testaus vuosittain tai sovitussa syklissä aina kun sovellukseen tulee uusia päivityksiä
- testaus vie enemmän aikaa
- kustannukset ovat korkeammat kuin pelkässä skannauksessa
”Mitkä meidän (ulkoverkkoon näkyvistä) tietojärjestelmistä sisältävät hyödynnettäviä haavoittuvuuksia ja onko meillä kyvykkyys havaita jos joku niitä pyrkii aktiivisesti hyödyntämään?
Palveluita hankkiessa on hyvä olla tietoinen näistä eroista ja vertailla eri palveluntarjoajien palveluiden sisältöjä. Ethän osta pelkkää haavoittuvuusskannausta penetraatiotestauksena? Luotettava ja läpinäkyvä kumppani avaa palveluiden sisällöt mielellään tarkemminkin.
Kiinnostuitko pentestauksesta?
Tutustu pentestaus-palveluumme tai laita meille viestiä ja keskustellaan lisää.