Kaavion piirtäminen


Työpajan alussa uhkamallinnuksen kohteesta piirretään tussitaululle tietovuokaavio (data flow diagram, DFD) tai viestisekvenssikaavio (message sequence chart, MSC). Koska viestisekvenssikaaviot ovat usein monimutkaisia, ne kannattaa laatia valmiiksi jo ennen työpajaa.

Virtuaalisesti järjestettävissä työpajoissa myös tietovuokaaviot kannattaa piirtää valmiiksi tai lähes valmiiksi ennen työpajaa ellei käytettävä työkalu mahdollista kaavion jouhevaa piirtämistä työpajassa. Vaikka käytettävä työkalu mahdollistaisikin jouhevan piirtämisen, täytyy myös käyttäjien, erityisesti piirtäjän, osata käyttää työkalua sujuvasti.

Kaavion piirtäminen tussitaululle on olennainen osa mallinnusta. Valmiita kuvia voi käyttää referenssinä, mutta niitä ei pitäisi ottaa suoraan pohjaksi, monimutkaisia viestisekvenssikaavioita lukuun ottamatta. Usein käy niin, että valmis kuva ei vastaakaan todellisuutta tai kaikkien osallistujien käsitys arkkitehtuurista ei ole yhteneväi­nen. Nämä olettamusten erot ovat kokemusperäisesti usein tietoturvaongelmien lähde.

Kaavion voi piirtää esimerkiksi yksi käyttäjätarina kerrallaan, jolloin mukaan otetaan ne komponentit, jotka kulloinkin tarvitaan. Kaaviosta ei pidä unohtaa ihmisiä, joita ovat sekä käyttäjät, kehittäjät että ylläpito.

Mikäli virtuaalisesti järjestettävissä työpajoissa käytetään valmiiksi piirrettyjä kuvia, kannattaa työpajan alussa varata aikaa keskustelulle, jossa käydään läpi, vastaako kuva todellisuutta ja onko osallistujien käsitys arkkitehtuurista yhteneväinen kuvan kanssa.


Tietovuokaaviota käytetään, kun
  • mallinnetaan ajettavaa järjestelmää eli järjestelmän arkkitehtuuria, prosesseja, tietovarastoja sekä eri komponenttien välistä kommunikaatiota tai
  • tuotantoon viennin arkkitehtuuria kuten esimerkiksi yhteyksiä versionhallintajärjestelmiin tai CI/CD-putkea.


Viestisekvenssikaaviota käytetään, kun
  • mallinnetaan toiminnallisuuksia, joissa lähetetään useita viestejä edestakaisin eri komponenttien ja/tai prosessien välillä,

Esimerkkinä todennus tai toiminnallisuus, jossa selainta ohjataan eri rajapintoihin tai palveluihin toiminnon aikana.





Uhkamallinnus


Kun kuva on valmis, osallistujat keskustelevat jokaisen kuvaan piirretty tietovuon ja tietovaraston kohdalla, mitä tietoturvaa uhkaavia riskejä uhkamallinnettavassa kohteessa  havaitsevat.

Jotta kaikki näkökulmat tulee varmasti huomioitua jokaisen tietovuon ja tietovaraston osalta, keskustelun apuna voidaan käyttää erilaisia uhkamallinnusmenetelmiä. Tässä luvussa esitellään STRIDE-menetelmä ja sitä suositellaankin yleisesti käytettäväksi.

STRIDE-menetelmä koostuu kuudesta eri aihealueesta, jotka kaikki käydään läpi jokaisen keskusteltavan kohteen kohdalla.

S - Spoofing = huijaus, huijaaminen

    • tekeydytään toiseksi toimijaksi, kuin oikeasti ollaan
    • tarkastelun kohteena todennukseen (authentication) liittyvät asiat
    • tyypillisiä uhreja: prosessit, ulkoiset entiteetit ja ihmiset
    • Esimerkki: komponenttien välisen liikenteen päätepisteiden todennus

T - Tampering = muuttaminen, poistaminen

    • muutetaan tai poistetaan levyllä, verkossa tai muistissa olevaa tietoa oikeudettomasti
    • tarkastelun kohteena tiedon eheyteen (integrity) liittyvät asiat
    • tyypillisiä uhreja: tietovarastot, tietovuot ja prosessit
    • Esimerkki: hyökkääjällä on mahdollisuus muuttaa tietoa

R - Repudiation = kiistäminen, kieltäminen

    • kiistetään, että jotakin ei tehty.
    • tarkastelun kohteena kiistämättömyyteen (non-repudiation) liittyvät asiat
    • tyypillisiä uhreja: prosessit
    • Esimerkki: auditointilokin luonti ja mitä lokiin tallennetaan

I - Information disclosure = tiedon paljastuminen 

    • tieto paljastuu henkilölle, jolla ei ole oikeutta tarkastella sitä
    • tarkastelun kohteena luottamuksellisuuteen (confidentiality) liittyvät asiat
    • tyypillisiä uhreja: prosessit, tietovarastot ja tietovuot
    • Esimerkki: pääseekö hyökkääjä käsiksi salaamattomaan tietoon tai vuotaako tietoa sivukanavia pitkin

D - Denial of Service = palvelunesto

    • palvelun tuottamiseen käytettyjen resurssien kuluttaminen
    • tarkastelun kohteena saatavuuteen (availability) liittyvät asiat
    • tyypillisä uhreja: prosessit, tietovarastot ja tietovuot
    • Esimerkki: mitä vaikutuksia järjestelmään on sillä, jos jokin tietty komponentti ei vastaa, tai voidaanko jonkin tietyn komponentin kautta luoda liikaa kuormaa jollekin toiselle komponentille.

E - Elevation of Privilege = käyttöoikeuksien korottaminen

    • joku pääsee oikeudettomasti tekemään jotakin eli ylittää käyttöoikeutensa
    • tarkastelun kohteena käyttöoikeuksien määrittelyyn (authorisation) liittyvät asiat
    • tyypillisiä uhreja: prosessit
    • Esimerkki: koodi-injektiohyökkäykset


Määritelmiä

Tietoturva, tietoturvallisuus (information security)

  • Tietoturva tarkoittaa järjestelyitä, joilla pyritään varmistamaan tiedon saatavuus, eheys ja luottamuksellisuus.

Luottamuksellisuus (confidentiality)

  • Luottamuksellisuus tarkoittaa sitä, ettei kukaan sivullinen saa tietoa.

Eheys (integrity)

  • Eheys tarkoittaa tiedon yhtäpitävyyttä alkuperäisen tiedon kanssa.

Saatavuus (availability)

  • Saatavuus tarkoittaa, että tieto on hyödynnettävissä haluttuna aikana.




Keskustelun ohjaaminen uhkamallinnuksen aikana


Fasilitoija voi ohjata keskustelua esimerkiksi niin, että osallistujan käsittelevät yhden tietovuon kerrallaan tietovuokaaviosta tai viestisekvenssikaaviosta ja lausuvat ääneen esimerkiksi teknisen perusteen sille, miksi esimerkiksi kohteen todennus on turvallisesti tehty.

Osallistuja 1: "Palvelin A tietää, että sitä kutsuu palvelin B, koska niiden välillä käytetään TLS:ää ja palvelin A laittaa palvelinkohtaisen API-avaimen jokaisen HTTP-kutsun otsakkeeseen."

Muiden osallistujien tehtävänä on kyseenalaistaa esitetty argumentti ja tehdä tarvittaessa tarkentavia kysymyksiä.

Osallistuja 2: "Tuo sama API-avain on käytössä myös A:n testiympäristöllä, joten tarkasti ottaen B ei tiedä, kutsuuko sitä A:n tuotanto- vai testiympäristä." 

Osallistuja 3: "Muuten hyvä, mutta emme ole vaihtaneet API-avainta vuosiin."

Osallistuja 4: "Ja API-avain on tallennettu versionhallintaan koodin kanssa."

Vastalauseet saavat olla hypoteettisia, kunhan ne ovat jollakin tavoin perusteltuja. Osallistujat kirjaavat vastalauseista tehtävälistaan uusia tehtäviä (tiketti), joilla korjataan havaitut ongelmat ja heikkoudet tai vähennetään hypoteettisen ongelman riskiä.

Kun kukaan osallistujista ei enää löydä argumenteista heikkoja kohtia tai argumentti on osoitettu vaillinaiseksi ja tarvittavat toimenpiteet on kirjattu, voidaan siirtyä eteenpäin. Seuraava keskustelun kohde voidaan valita mekanistisesti STRIDE-mallin mukaan tai vapaammin mielenkiinnon ja prioriteettien mukaan.




Henkilötietoja käsittelevien toiminnallisuuksien huomioiminen uhkamallinnuksessa


Mikäli uhkamallinnusta tehdään henkilötietoja käsittelevälle toiminnallisuudelle, uhkamallinnusta voidaan laajentaa nk. TRIM-lisäyksellä, jota käytetään aivan samoin kuin STRIDE-menetelmää.

T - Transfer of Personal Data = henkilötietojen siirtäminen

    • Keskustelussa huomioitavia asioita: Siirretäänkö tietovuossa henkilötietoja maantieteellisen, sopimustekniset tai organisaation rajan yli? Onko tähän oikeutus ja lupa? Toimitaanko siirrettävän henkilötiedon rekisterinpitäjän vai henkilötietojen käsittelijän roolissa? Mikäli henkilötietojen käsittelijänä, onko siitä sovittu sopimuksin?

R - Retention / Removal = säilyttäminen / poistaminen

    • Keskustelussa huomioitavia asioita: Mikäli komponentti tallentaa henkilötietoja, onko määritelty aikaan perustuva kriteeri tai jokin muu kriteeri, jonka perusteella tallennetun tiedot tuhotaan? Miten teknisesti on totetutettu yksittäisen rekisteröidyn tietojen poisto tarvittaessa? Miten yksittäisen rekisteröidyn tietojen käsittely voidaan pyynnöstä keskeyttää? 

I - Inference = päättely

    • Keskustelussa huomioitavia asioita: Yhdisteleekö komponentti useista eri lähteistä tulevia henkilötietoja muodostaen niistä uusia henkilötietotyyppejä, joita tallennetaan ja/tai välitetään eteenpäin) Muuttaako komponentti tietoa, joka aiemmin ei ollut henkilötietoa, henkilötiedoksi esimerkiksi yhdistämällä sitä henkilötietoon? Onko nämä uudet mahdolliset henkilötietotyypit huomioitu tietosuojavaikutusten arvioinnissa?

M - Minimisation = minimointi

    • Keskustelussa huomioitavia asioita: Onko esimerkiksi johonkin rajapintaan lähetettävien henkiötietojen joukko teknisesti ottaen pienin mahdollinen vai voiko sitä pienentää entisestään teknisen toiminnallisuuden kärsimättä?

TRIM ei korvaa tietosuojan riskiarviointia, mutta toimii alimman tason turvaverkkona. Jos toiminnallisuuteen liittyvien henkilötietojen käsittelystä ei ole aiemmin tehty riskiarviointia, asia nousee viimeistään tässä vaiheessa keskusteluun.


Lisätietoa

Internetissä on julkaistu erilaisia pelejä uhkamallinnuksen suorittamisen avuksi.  Niitä voi käyttää sellaisenaan työpajassa tai niitä voi käyttää työpajan suunnittelun pohjana.

  • Elevation of Privilege (EoP) - Microsoftin julkaisema peli STRIDE-menetelmään
  • Elevation of Privacy - F-Securen julkaisema epävirallinen TRIM-lisäosa EoP-peliin
  • Cyber Bogies - Nixun julkaisema peli, jossa uhkia arvioidaan eri rooleilla toimivien henkilöiden näkökulmasta
  • OWASP Cornucopia - OWASP:n julkaisema peli, jonka avulla pystyy löytämään sovelluksen turvallisuuteen liittyviä vaatimuksia.

Privacy Threat Modeling Based on Data LifeCycle - Anne Oikarinen & Tuisku Sarrala - Esitys yksityisyyteen ja henkilötietoihin liittyvien riskien uhkamallinnuksesta sekä Cyber Bogies -pelin julkistus Disobey 2020 -tapahtumassa.

Uhkamallinnuskirja Adam Shostack: Threat Modeling: Designing for Security. Wiley, 2014.

Adam Shostackin ylläpitämä sivu tietoturvapeleistä.

MITRE on julkaissut ATT&CK- ja D3FEND-matriisit, joita voi hyödyntää uhkamallinnuksessa sekä uhkien että suojauskeinojen määrittelyssä.