• Ei tuloksia

Bug bounty -ohjelman rakenne

Kuten jo edellä todettua, annetun määritelmän mukaan bug bountylla tarkoitetaan haa-voittuvuuden tai ohjelmavirheen löytämisestä ja raportoimisesta tarjottavaa palkkiota.58 Kaikki bugit eivät ole haavoittuvuuksia, vaan ne voivat olla myös muunlaisia virheitä ohjelman koodissa. Tässä mielessä ”bug bounty program” on englanninkielisenäkin ter-minä hieman puutteellinen kuvaamaan haavoittuvuuspalkkio-ohjelmia, koska yleisesti ottaen ohjelmat keskittyvät tietoturvaliitännäisten haavoittuvuuksien paikallistamiseen, eivätkä kaikkien ohjelmiston käyttöön vaikuttavien virheiden etsimiseen. Usein ohjelman säännöissä on rajattu tällaiset muut kuin tietoturvaan vaikuttavat bugit ohjelman ulkopuo-lelle.

Haavoittuvuuspalkkio-ohjelmista puhuttaessa tulee myös tehdä ero haavoittuvuuspalk-kio-ohjelmien ja haavoittuvuuksien julkistamisohjelmien (VDP, Vulnerability Disclosure Program) välille. VDP:ssä tarkoitus on, että hakkerit etsivät haavoittuvuuksia ja rapor-toivat ne julkisille alustoille, kuten postituslistoille. VDP:n erottaa haavoittuvuuspalkkio-ohjelmasta (VRP, Vulnerability Rewards Program) se, että haavoittuvuuspalkkio-ohjel-massa keskeistä on löydetystä haavoittuvuudesta maksettu palkkio: bug bounty -ohjelmat ovat siis VRP-ohjelmia. VDP:ssä tärkeimpänä hakkeria motivoivana tekijänä on tiedon jakaminen, yhteisöllinen oppiminen sekä maineen kerryttäminen. Toinen ero ohjelmien välillä on, että haavoittuvuuspalkkio-ohjelmissa haavoittuvuuksien yksityiskohtia ei

57 Erilaisia malleja on esitelty mm. Ruohosen & Allodin artikkelissa, 2018.

58 Sanastokeskus TSK, Tietotekniikan termitalkoot, bug bounty, lisätty 26.8.2018.

usein julkaista. Haavoittuvuuspalkkio-ohjelma voi olla suoraan ohjelmistoyrityksen it-sensä järjestämä, tai vaihtoehtoisesti ohjelmistoyritys voi ostaa palvelun alustayritykseltä, joka toteuttaa haavoittuvuuspalkkio-ohjelmaan liittyvät käytännön toimenpiteet.59

Bug bounty -ohjelmat ovat eräänlaista tietoturvan testaamisen joukkoistamista60. Yrityk-set ja muut toimijat tuottavat palveluita, jotka ovat yhteydessä Internetiin. Näissä palve-luissa voidaan, kuten Verohallinnon tapauksessa, säilyttää ja käsitellä henkilötietoja tai muita ei-julkiseksi tarkoitettuja tietoja, jolloin palveluiden tulee olla esimerkiksi voimas-saolevan tietosuojalainsäädännön mukaisia. Tietosuojaa turvataan tietoturvalla: tietotur-vaan liittyvät ratkaisut pyrkivät siihen, että tietoja pääsee katselemaan tai käsittelemään vain sellainen henkilö tai taho, jolla siihen on oikeus.

Seuraavassa Zhaon et al. laatimassa kuvassa61 on esitetty bug bounty -ohjelman toimin-tamalli, jossa ohjelman toteuttamisessa on mukana erillinen alustayritys (platform). Ve-rohallinnossa käytössä olleet bug bounty -ohjelmat ovat toimineet jotakuinkin kuvassa esitetyn kaltaisella mallilla.

59 Ks. esim. Zhao et al. 2014.

60 Ks. esim. Elazari Bar On 2018.

61 Zhao et al. 2015, s. 1107.

Kuva 1: Haavoittuvuuksien paikallistamisen ekosysteemin rakenne Zhaon et al. (2015, s. 1107) mukaan.

Ennen ohjelman aloittamista ohjelmalle määritellään rajat (scope), kuten millaisia haa-voittuvuuksia koskevia raportteja otetaan vastaan, osallistumiseen liittyvät kriteerit kuten osallistujan ikä, muut ehdot esimerkiksi raportointiin liittyen, sekä kuvataan raporttien tarkastusprosessi. Ohjelman rajauksena voi olla jokin yksittäinen ohjelmistotuote, ohjel-mistotuotteiden joukko, palveluinfrastruktuuri tai koko organisaatio.62

Kuvan 1 mallin mukaisesti tilaaja (organization) ostaa alustayritykseltä (platform) palve-lun, jonka mukaisesti alustayritys tuottaa tilaajalle bug bounty -ohjelman. Ohjelmalle laa-ditaan säännöt ja rajat (scope) jonka sisällä yksityishenkilöinä toimivat hakkerit (white hats) saavat murtautua tai yrittää murtautua ohjelman kohteena oleviin järjestelmiin. Mi-käli hakkerit havaitsevat bugeja, raportoivat he näistä alustayritykselle. Alustayritys tar-kastaa hakkerien raportit, ja mikäli raportti osoittautuu paikkansapitäväksi, maksaa alus-tayritys kunkin haavoittuvuuden ensiksi raportoineelle hakkerille palkkion, jonka suuruus riippuu haavoittuvuuden laadusta, yleensä vakavuusasteesta. Ohjelmien tavoitteena on muun muassa vähentää vihamielisten, oikeudetta järjestelmään tunkeutuvien hakkereiden (black hats) toimintamahdollisuuksia ja houkutuksia63 tukkimalla järjestelmien haavoit-tuvaisuuksia hyväntahtoisten hakkerien avustuksella.

Se, millainen hakkeri voi osallistua kuhunkin bug bounty -ohjelmaan, riippuu ohjelman säännöistä: osa ohjelmista toimii kutsuperiaatteella, osa taas on avoimia kaikille haluk-kaille. Esimerkiksi Verohallinnon OmaVero-järjestelmää koskevaan ensimmäiseen bug bounty -ohjelmaan saivat osallistua kaikki halukkaat, mutta osallistujalla tuli olla tunnuk-set, jolla palveluun pystyi kirjautumaan. Lisäksi ohjelmaan tuli rekisteröityä alustayrityk-sen kautta – rekisteröitymialustayrityk-sen vaatimus on yleinen käytäntö, joskin poikkeuksiakin on olemassa64. Verohallinnon Tulorekisteriä koskeva bug bounty -ohjelma sen sijaan on eräänlainen versio kutsuohjelmasta.

Alustayrityksen roolin voi myös pilkkoa useampaan osaan: alustan, jolle esimerkiksi haa-voittuvuusraportit palautetaan, voi hankkia yhdeltä taholta, ja varsinaisen raporttien läpi-käymisen ja palkkioiden maksamisen toiselta taholta. Tilaajaorganisaation resursseista

62 Kuehn 2014.

63 Ks. esim. Elazari Bar On 2018.

64 Sähköpostikeskustelut 2019–2020, Juho Vuorio, Verohallinnon Turvallisuus- ja riskienhallintayksikkö.

riippuen tilaaja voi myös itse huolehtia raporttien tarkistamisesta, viestinnästä ja palkki-oiden maksamisesta.65 Mikäli tilaajalla on tarpeeksi resursseja käytettävissään, voi se luonnollisesti vastata itse ohjelmasta kokonaisuudessaan.

Bug bounty -ohjelmien välillä löytyy eroavaisuuksia myös sen suhteen, millaisia tietoja testattavasta kohteesta osallistuvilla hakkereilla on käytettävissään. Esimerkiksi Verohal-linnon bug bounty -ohjelmat ovat olleet mallia black box, eli osallistujat eivät näe man kohteena olevan tietojärjestelmän lähdekoodia. On olemassa myös sellaisia ohjel-mia, joissa lähdekoodi on osallistujien saatavilla. Hakkereilla on tietyt strategiat, joiden mukaan he etsivät haavoittuvuuksia. Yksi strategia on etsiä tietyntyyppisiä haavoittu-vuuksia tietyn ajanjakson aikana, koska jokainen haavoittuvuustyyppi edellyttää oman-laisia taitoja haavoittuvuuksien löytämiseksi. Toinen mahdollinen strategia on käydä pe-rinpohjaisesti läpi tietty verkkosivu tietyn ajanjakson aikana, sillä sivuston arkkitehtuu-riin ja koodiin perehtyminen edistää haavoittuvuuksien löytämistä.66

Kun palvelun kysyntä lisääntyy, lisääntyy myös sen tarjonta. Bug bounty -ohjelmien ky-syntää alkaa vähitellen olla Suomessakin – yksityisellä sektorilla erityisesti LähiTapiola on kunnostautunut aktiivisena bug bounty -ohjelmien tai sen kaltaisten ohjelmien tilaa-jana67. Julkisella sektorilla bug bounty -ohjelmia on toteutettu ainakin Verohallinnossa68, Väestörekisterikeskuksessa ja sen jatkona Digi- ja väestötietovirastossa69 sekä opetus- ja kulttuuriministeriössä70. Kansainvälisiä suuria toimijoita, bug bounty -ohjelmien alustoja, ovat esimerkiksi HackerOne, Bugcrowd ja Intigriti.

Bug bounty -ohjelmiin osallistuvat hakkerit eivät lähtökohtaisesti ole työ- tai toimeksian-tosuhteessa ohjelman tilanneen organisaation tai alustayrityksen kanssa.71 Hakkerit ovat yksityishenkilöitä ja osallistuvat kuhunkin bug bounty -ohjelmaan puhtaasta vapaasta tah-dosta, ilman ulkoisia velvoitteita osallistua siihen.

65 Sähköpostikeskustelut 2019–2020, Juho Vuorio, Verohallinnon Turvallisuus- ja riskienhallintayksikkö.

66 Haavoittuvuuksien etsimisen strategioista tarkemmin ks. Zhao et al. 2014.

67 LähiTapiola, uutinen 17.8.2017.

68 Verohallinnon tiedote, 2.10.2017.

69 Väestörekisterikeskus – Kokemuksia Bug Bounty -ohjelmasta, 31.8.2018.

70 Opetus- ja kulttuuriministeriö, uutinen 10.9.2018.

71 Tämä on usein kielletty säännöissä, kuten myös ohjelman kohteen kehittämiseen tai testaamiseen osal-listuminen. Sähköpostikeskustelut 2019–2020, Juho Vuorio, Verohallinnon Turvallisuus- ja riskienhallin-tayksikkö.

Bug bounty -ohjelmia ei nähdäkseni voi varsinaisesti pitää kilpailuina, mutta niissä on yllättävän paljon kilpailullisia piirteitä: ohjelmassa maksetaan palkkio taitavalle henki-lölle (hakkeri), joka nopeimmin vastaa tehtävänantoon (löytää bugin). Toisaalta edes kil-pailun järjestäjä (tilaaja ja alustayritys) ei tiedä, onko kilpailussa ylipäätään mahdollista saada palkkiota. Alustayritys on yritys, jonka ensisijaisena tavoitteena on vähintäänkin kotimaisessa osakeyhtiömuodossa toimiessaan tehdä omistajilleen voittoa (osakeyhtiö-laki 624/2006, 1:5). Yritys toimii liiketaloudellisin perustein ja sen liiketoiminta muodos-tuu ”kilpailujen” eli bug bounty -ohjelmien järjestämisestä. Yritys ei kuitenkaan ole vas-tuussa siitä, että ”kilpailusta” voisi voittaa yhtään mitään. Koska tietojärjestelmät ovat ihmisten tekemiä, ja ihmiset tekevät virheitä, on kuitenkin todennäköistä, että järjestel-mistä löytyy virheitä – siis haavoittuvuuksia. On siis todennäköistä, että bug bounty -oh-jelmien kohteena olevista järjestelmistä löytyy haavoittuvuuksia, vaikka niitä ei ennalta kyetäkään määrittelemään. Lisäksi tietoturva ei ole stabiilia, vaan turvallisuuden taso muuttuu ajassa. Tämä tarkoittaa sitä, että vaikkei tunnettua tai ennalta tuntematonta haa-voittuvuutta löytynytkään jostain teknisestä ratkaisusta vuosi sitten, voi siitä tänään sel-lainen löytyä. Tietoturvaa tulisikin ajatella prosessina, ei projektina72. Koska haavoittu-vuuksien löytyminen on todennäköistä – vaikka todennäköisyyden astetta onkin vaikea määrittää – on bug bounty -ohjelmaan osallistumisesta silti yleisesti ottaen jaossa palkki-oita osaavimmille ja nopeimmille hakkereille. Mikään taho ei kuitenkaan edelleenkään ole vastuussa siitä, että ”kilpailusta” voisi voittaa yhtikäs mitään.