Uhkamallinnus (engl. threat modeling) on systemaattinen tapa tunnistaa tietojärjestelmiä ja sovelluksia koskevia tietoturva- ja tietosuojauhkia ja miten niiltä voidaan suojautua. Tiivistettynä uhkamallinnuksen ideana on siis miettiä, mikä voi mennä pieleen tietoturvan ja tietosuojan kannalta ja mitä asialle voidaan tehdä. Uhkamallinnus on osa riskienhallintaa ja sen tavoitteena on ymmärtää, miten ja kuka voisi hyökätä tai aiheuttaa tahattomasti tietoturvaongelmia ja mitä seurauksia sillä voisi olla – ja tätä kautta kehittää tehokkaita suojausratkaisuja.
Uhkamallinnus tunnistaa uhkat aikaisessa vaiheessa
Uhkamallinnus auttaa tunnistamaan tietoturva- ja tietosuojauhkia hyvin aikaisessa vaiheessa ohjelmiston, tietojärjestelmän tai sen uusien ominaisuuksien suunnittelussa, jopa ennen kuin on koodattu riviäkään. Uhkamallinnus säästää aikaa ja kustannuksia verrattuna tilanteeseen, jossa tietoturvaongelmat löydettäisiin vasta toteutustyön tai testauksen aikana. Lisäksi uhkamallinnus auttaa priorisoimaan tietoturvatestausta tietojärjestelmien ja ohjelmistojen kriittisimpiin ominaisuuksiin. Samalla uhkamallinnus täydentää tietoturvatestausta, koska ylläpitotoimien ja muiden prosessien tietoturvatestaus on hankalaa, uhkamallinnus auttaa tunnistamaan toimintatapojen tietoturvaongelmat.
Uhkamallinnus soveltuu sekä omaan kehitykseen että palveluiden hankintaan
Uhkamallinnus on osa useita turvallisen ohjelmistokehityksen hyviä käytäntöjä ja sisältyy esimerkiksi Microsoftiin Secure Development Lifecycle (SDL) -elinkaarimalliin, OWASP Software Assurance Maturity Model (SAMM) -kypsyystasomalliin ja Digi- ja väestötietoviraston Turvallisen sovelluskehityksen käsikirjaan. Ohjelmistokehityksen lisäksi uhkamallinnusta voi soveltaa myös ohjelmistojen ja pilvipalveluiden hankintaan. Tällöin uhkamallinnus auttaa selkiyttämään tietoturvavastuita ja hahmottamaan, millaisia suojakeinoja palveluntarjoaja toteuttaa ja mitä suojatoimenpiteitä pitää toteuttaa itse.
Systematiikkaa fasilitoinnilla ja uhkamallinnusmenetelmillä
Uhkamallinnus kannattaa tehdä työpajamuotoisesti siten, että mukana on mm. ohjelmistokehittäjiä, tietojärjestelmä- ja sovellusarkkitehteja, testaajia, tuoteomistaja, pääkäyttäjä ja tietoturva-asiantuntija. Useat näkökulmat mahdollistavat kattavamman uhkien tunnistamisen, näkemyksen olemassa olevista suojakeinoista ja ymmärryksen siitä, miten uhkaskenaarioiden toteutuminen vaikuttaisi liiketoimintaan.
Brainstormauksen lisäksi uhkamallinnuksessa käytetään yleensä erilaisia uhkamallinnusmenetelmiä, jotka auttavat tunnistamaan uhkia systemaattisesti ja kattavasti erilaisista näkökulmista. Usein käytettyjä uhkamallinnusmenetelmiä ovat mm. tietovuoto- ja arkkitehtuurikeskeinen STRIDE, tietosuojauhkiin erikoistunut LINDDUN ja käyttäjien toimintaan keskittyvä evil user stories (eli “pahiskäyttäjätarinat”). Ihmisten aiheuttamia uhkia voi uhkamallintaa myös HARMS-mallilla. Uhkapuilla (engl. attack tree) voidaan visualisoida hyökkäyksen tai muun uhkaskenaarion etenemistä.
Priorisoidut suojauskeinot backlogille
Uhkamallinnus ei lopu uhkien tunnistamiseen, vaan seuraavaksi arvioidaan riskit uhkaskenaarioiden toteutumistodennäköisyyden ja seurausten vakavuuden perusteella. Suojaustoimenpiteet valitaan ja toteutetaan riskien suuruuden perusteella ja lisätään kehityksen työjonoon, backlogille.
Uhkilta suojautumisen keinoja miettiessä kannattaa huomata, että kaikkea ei voi, eikä tarvitse korjata teknologialla. Myös erilaiset prosessit, kuten vaikkapa käyttöoikeuksien tarkistus säännöllisesti, koulutus ja harjoittelu ovat usein tehokkaita toimenpiteitä. Uhkien toteutumista ei myöskään aina voi estää täysin. Sen sijaan haitallisen tilanteen tunnistaminen, kuten vaikkapa poikkeavan toiminnan tunnistaminen lokeista, tai korjaaminen jälkikäteen, esimerkiksi varmuuskopiot palauttamalla, voivat olla kustannustehokkaampia toteuttaa.
Uhkamallia päivitetään kehityksen edetessä
Ohjelmiston tai pilvipalvelun uhkamalli ei ole staattinen. Uusia ominaisuuksia kehitetään, aiempia muutetaan, teknologia tai arkkitehtuuri muuttuu, käyttäjäkunta tai liiketoiminta kasvaa tai uhkaympäristö muuttuu, esimerkiksi hyökkäysmenetelmien kehittyessä. Siksi uhkamallia on syytä päivittää säännöllisesti. Muutostilanteissa on hyvä pysähtyä hetkeksi ja miettiä, voiko muutoksella olla tietoturva- tai tietosuojavaikutuksia ja pitää tarvittaessa lyhyt uhkatyöpaja. Uhkamalli on myös hyvä tarkistaa esimerkiksi ennen uuden version julkaisua ja tuotantoon vientiä sen varmistamiseksi, että kaikki suojakeinot on toteutettu.
Uhkamallinnus osa turvallista ohjelmistokehitystä ja tietojärjestelmien hankintaa. Uhkamallinnuksen avulla voidaan ennakoida hyökkäystapoja, arvioida riskit ja suunnitella tehokkaita suojaustoimia jo kehitysvaiheessa. Jos kiinnostuit uhkamallinnuksesta, lue myös blogimme uhkamallinnuskoulutuksista tai ota yhteyttä!