Sisältökirjasto
Digiturvamalli
Turvallinen kehittäminen

Kuinka täyttää vaatimus

Digiturvamallin sisältökirjasto

Turvallinen kehittäminen

Tehtävän nimi
Prioriteetti
Tila
Teema
Politiikka
Muut vaatimukset
No items found.

Tuotanto-, testaus- ja kehitysympäristöjen erottaminen

Critical
High
Normal
Low

Kehitettävänä, testauksessa ja tuotannossa olevia ohjelmistoja ajetaan eriytetyissä teknisissä ympäristöissä, jotta kehitystyön laatu voidaan varmistaa tuotantoympäristöä mukailevassa ympäristössä ja toisaalta tuotantoympäristöä ei häiritä keskeneräisellä kehityksellä.

Käyttäjien arkaluonteisia tai henkilökohtaisia tietoja ei kopioida ja käytetä kehitysympäristössä.

Valmiin määritelmä (engl. definition of done) ja testaussäännöt

Critical
High
Normal
Low

Kehitysyksikkö ylläpitää itse kriteeristöä asioille, joiden täyttyessä tietty työtehtävä voidaan todeta valmiiksi. Kriteerit voivat sisältää mm. katselmointivaatimuksia, dokumentointivaatimuksia ja testausvaatimuksia.

Uutta koodia otetaan käyttöön vasta laajan ja ennalta määritellyt kriteerit täyttävän testauksen jälkeen. Testien olisi katettava käytettävyys, turvallisuus, vaikutukset muihin järjestelmiin ja käyttäjäystävällisyys.

Sovellusturvallisuuteen liittyvien tietoturvamittarien dokumentointi

Critical
High
Normal
Low

Organisaation on dokumentoitava erityisesti sovellusturvallisuuden tasoa mittaavat tietoturvamittarit. Toteutuksessa on otettava huomioon organisaation itse määrittämät tietoturvatavoitteet sekä muut tietoturvavaatimukset.

Testausaineiston suojaaminen ja tiedon minimointi

Critical
High
Normal
Low

Testaukseen käytettävät tieto- ja muut aineistot olisi valittava huolellisesti ja niitä olisi suojattava.

Tuotantotietoa, joka sisältää henkilötietoja tai muuta luottamuksellista tietoa, ei tulisi käyttää testaustarkoituksiin.

Käyttäjien salasanatietojen salaus

Critical
High
Normal
Low

Käytämme vahvaa salausta salasanojen siirron ja tallennuksen aikana kaikissa kehittämissämme palveluissa.

Sovelluspalvelujen julkisen verkkoliikenteen salaus

Critical
High
Normal
Low

Julkisten verkkojen kautta siirrettävää sovelluspalveluihin kuuluvaa tietoa on suojattava vilpilliseltä ja sopimuksen vastaiselta toiminnalta ja luvattomalta paljastumiselta ja muuttamiselta.

Käytämme vahvoja salaus- ja turvallisuusprotokollia (esim. TLS, IPSEC, SSH) suojaamaan luottamuksellisia tietoja niitä siirrettäessä julkisia verkkoja pitkin kehittämiemme IT-palvelujen yhteydessä.

Koodin katselmoinnin ja julkaisemisen yleiset säännöt

Critical
High
Normal
Low

Koodin katselmointia, hyväksymistä ja julkaisua varten on määritelty yleiset säännöt ja niiden noudattamista valvotaan.

Säännöt voivat sisältää mm. seuraavia asioita:

  • luotu koodi on tarkistettu vasten OWASP-frameworkin yleisiä turvallisen kehittämisen ohjeita
  • koodi on katselmoitu vähintään kahden henkilön silmin
  • nimetty, valtuutettu käyttäjä on hyväksynyt muutokset ennen julkaisua
  • järjestelmän dokumentointi on päivitetty ennen julkaisua
  • muutosten julkaisuajankohta on valittu annettujen ohjeiden mukaisesti, jotta häiriötä liiketoimintaprosesseille syntyy mahdollisimman vähän
  • käyttäjien tarvitsemat ohjeistukset on päivitetty ennen koodin julkaisua

Säännöillä pyritään hallitsemaan uuden ohjelmakoodin julkaisemiseen liittyviä riskejä.

Valtuutettujen, koodimuutoksia julkaisevien käyttäjien listaus

Critical
High
Normal
Low

Vain ennalta määritellyt, valtuutetut käyttäjät saavat julkaista muutoksia koodiin.

Lähdekoodin pääsynhallinta

Critical
High
Normal
Low

Pääsyä lähdekoodeihin ja niihin liittyviin muihin suunnitelmiin valvotaan, jotta estetään mm. luvattoman koodin lisääminen sekä vältetään tahattomat muutokset. Pääsyoikeuksia jaetaan tarve tietää -periaatteella, eikä esimerkiksi tukihenkilöstölle myönnetä rajattomia pääsyoikeuksia.

Lähdekoodin valvonta voidaan toteuttaa esimerkiksi tallentamalla kaikki koodi keskitetysti asiaan dedikoituun lähdekoodin hallintajärjestelmään.

Turvallisen kehittämisen säännöt

Critical
High
Normal
Low

Kehitystyötä koskevat yleiset pelisäännöt on laadittu ja ne on hyväksytty kehitystyön johtohenkilöiden toimesta. Sääntöjen toteutumista valvotaan kaikessa organisaatiossa tehtävässä kehityksessä ja ne katselmoidaan vähintään vuosittain.

Turvallisen kehittämisen politiikka voi sisältää mm. seuraavia asioita:

  • kehitysympäristön turvallisuusvaatimukset
  • käytettyjen ohjelmointikielien turvallisen koodaamisen ohjeet
  • turvallisuusvaatimukset ominaisuuksien tai projektien suunnitteluvaiheessa
  • turvalliset ohjelmistovarastot
  • versionhallinnan turvallisuusvaatimukset
  • kehittäjältä vaaditut kyvyt välttää, löytää ja korjata haavoittuvuuksia
  • turvallisten koodausstandardien noudattaminen

Turvallisen kehittämisen sääntöjen noudattamista voidaan vaatia myös avainkumppaneilta.

Ulkoistetun kehitystoiminnan seuraamisen ja valvonnan käytännöt

Critical
High
Normal
Low

Vaikka kehitystä ulkoistetaan, meillä säilyy vastuu asianmukaisten lakien noudattamisesta ja hallintakeinojen vaikuttavuuden todentamisesta.

Olemme määritelleet toimintatavat, joiden valvomista seuraamme ja noudattamista edellytämme koko ulkoistusketjussa. Käytännöt voivat sisältää mm. seuraavia asioita:

  • tuotetun koodin katselmointi- ja hyväksymiskäytännöt
  • todistusaineisto kumppanin suorittamista testaustoimista
  • viestintäkäytännöt
  • sopimukselliset oikeudet auditoida kehitysprosessia ja hallintakeinoja
  • dokumentointivaatimukset koodin tuottamisesta

Palautusstrategia

Critical
High
Normal
Low

Olemme sopineet ja kirjanneet käytännöt, joiden avulla aiempi versio ohjelmistosta voidaan palauttaa, ennen julkaisujen toteuttamista.

Muutostenhallintamenettely tietojenkäsittelypalveluihin tehtäville merkittäville muutoksille

Critical
High
Normal
Low

Riittämätön muutosten hallinta on yleinen syy tietojenkäsittelypalvelujen toiminta- ja turvallisuushäiriöille.

Organisaation on dokumentoitava muutostenhallintaprosessi, jota on noudatettava aina tehtäessä merkittäviä tietoturvallisuuten vaikuttavia muutoksia itse kehitettyihin digipalveluihin tai muihin tietojenkäsittelypalveluihin. Prosessi sisältää vaatimukset mm. seuraaville asioille:

  • muutoksen määrittely ja dokumentointi
  • riskien arviointi ja tarvittavien hallintakeinojen määrittely
  • muutoksen muu vaikutusten arviointi
  • testaus ja laadunvarmistus
  • muutoksen julkaisun hallittu toteutus
  • muutoslokin päivittäminen

Automatisoitu turvallinen koodin käyttöönotto ja julkaisu

Critical
High
Normal
Low

Organisaation on määritettävä keinot turvalliseen ohjelmiston käyttöönottostrategiaan. Keinot on automatisoitava, jos mahdollista.

Secure Software Development Life Cycle (SSDLC) -prosessin suunnittelu

Critical
High
Normal
Low

Organisaation on määriteltävä ja otettava käyttöön Secure Software Development Life Cycle (SSDLC, ohjelmistokehityksen elinkaari) -prosessi ohjelmistokehityksessä.

SSDLC-prosessin ensimmäisen vaiheen tulee olla tietoturvavaatimusten määrittely, joka varmistaa tietoturvanäkökulmien tulevan integroiduksi kehitettäviin palveluihin heti luomisvaiheesta lähtien.

SSDLC-prosessin on suositeltavaa sisältää vähintään seuraavat vaiheet:

  • A - Koulutus
  • B - Vaatimusten kuvaaminen
  • C - Suunnittelu
  • D - Kehitys
  • E - Turvallisuustestaus
  • F - Julkaisu
  • G - Ongelmiin vastaaminen

Tuntemattoman koodin ajaminen turvallisesti

Critical
High
Normal
Low

Kaikki koodi tuntemattomasta alkuperästä on ajettava ns. sandbox-ympäristössä eli eristettynä organisaation muista laitteista ja verkoista. Tällä estetään sen pääsy organisaation resursseihin ilman erityistä lupaa käyttäjältä. Tämä sisältää:

  • Muut ohjelmistot omissa sandboxeissaan
  • Tietovarastot, jotka säilyttävät esimerkiksi kuvia tai dokumentteja
  • Oheislaitteita, kuten kamera, mikrofoni ja GPS
  • Pääsy paikalliseen verkkoon.

Kriittisten ohjelmistojen toteutuksen säännöllinen tarkastaminen

Critical
High
Normal
Low

Kriittiset tietojärjestelmien tai tarjottujen digipalvujen toteutus tarkastatetaan säännöllisesti hyödyntäen ennalta määriteltyä luotettavaa standardia tai turvallisen ohjelmoinnin ohjetta.

Tarkentavia ohjeita ovat mm. VAHTI Sovelluskehityksen tietoturvaohje (VAHTI 1/2013), OWASP Application Security Verification Standard (ASVS) sekä Kyberturvallisuuskeskuksen ohje "Turvallinen tuotekehitys: kohti hyväksyntää".

Hyväksyntä tiedon omistajalta tuotantotiedon käyttämiseksi testaustarkoituksissa

Critical
High
Normal
Low

Organisaation täytyy hankkia hyväksyntä tiedon omistajalta, ja hallinnoitava mahdolliset riskit, ennen sen käyttämistä testaustarkoituksessa.

Sisäänrakennettu ja oletusarvoinen tietosuoja järjestelmäsuunnittelussa

Critical
High
Normal
Low

Organisaation on luotava toimintamallit, joiden avulla tietosuoja, oikeaoppinen henkilötietojen käsittely ja tietosuojavaatimusten huomiointi on oletusarvoisesti mukana uusien järjestelmien, digipalvelujen tai toimintaproessien suunnittelussa ja kehittämisessä niiden ensihetkistä alkaen.

Tätä kutsutaan sisäänrakennetun ja oletusarvoisen tietosuojan periatteeksi (privacy by design). Tärkeä osa tämän periaatteen soveltamista on lisäksi järjestelmien oletusasetusten konfigurointi niin, että ne minimoivat henkilötietojen käsittelyn ja noudattavat kaikkia alueellisia lakeja / määräyksiä.

Sisäänrakennettu ja oletusarvoinen tietoturva järjestelmäsuunnittelussa

Critical
High
Normal
Low

Organisaation on luotava toimintamallit, joiden avulla tietoturvallisuus ja turvallisuusvaatimusten huomiointi on oletusarviosesti mukana uusien järjestelmien, digipalvelujen tai toimintaproessien suunnittelussa ja kehittämisessä niiden ensihetkistä alkaen.

Tätä kutsutaan sisäänrakennetun ja oletusarvoisen tietoturvan periatteeksi (security by design). Tämän toimintatavan yhtenä tuloksena suunnitteluun liittyvästä dokumentaatiosta tulisi käydä selkeästi ilmi, millä toimenpiteillä tietoturvallisuudesta huolehditaan.

Tietojärjestelmän riskinarviointien käyttö erottamistarpeiden määrittämiseksi

Critical
High
Normal
Low

Organisaation IT-järjestelmät käyvät läpi riskinarvioinnin, jonka perusteella määritetään, onko tarpeen jakaa ne kehitys-, testaus- ja käyttöjärjestelmiin.

Segmentointi toteutetaan sitten riskinarvioinnin tulosten perusteella.

ICT-järjestelmiin tehtävien muutosten vaikutuspiiriin kuuluvien turvallisuustoimintojen testaaminen

Critical
High
Normal
Low

Testaa tietoturvatoiminnot, joihin ICT-järjestelmiin tehdyt muutokset vaikuttavat, sekä ennen käyttöönottoa että sen jälkeen turvallisen tilan ylläpitämiseksi. On tärkeää varmistaa, että turvatoiminnot testataan, koska ICT-järjestelmien muutokset voivat usein luoda uusia haavoittuvuuksia.

Tietoturvan sisällyttäminen organisaation kiireellisiin muutosprosesseihin

Critical
High
Normal
Low

Organisaation on sisällytettävä turvallisuusnäkökohdat kiireellisiin muutosprosesseihinsa, myös kiireellisissä tai hätätilanteissa. Henkilöstön osallistumista, testausta ja dokumentointia koskevat vähimmäisvaatimukset olisi määriteltävä sekä ennen käyttöönottoa että sen jälkeen. Näin varmistetaan selkeä dokumentointi vähimmäistoimista, jotka on toteutettava kiireellisissä tapauksissa.

Testaukseen käytetyn tuotantotiedon erityiset suojauskeinot

Critical
High
Normal
Low

Tuotantotiedon käyttöä olisi vältettävä testaustarkoituksissa. Mikäli luottamuksellisia tietoja käytetään testauksessa, seuraavia suojausmenettelyjä olisi käytettävä:

  • kaikki arkaluonteiset yksityiskohdat olisi joko poistettava tai muokattava turvalliseksi (esim. henkilötietojen anonymisointi)
  • testattavissa järjestelmissä sovelletaan yhtä tiukkaa pääsynhallintaa, kuin tuotannossa 
  • tuotantotiedon kopioiminen testausympäristöön tehdään vain erillisellä valtuutuksella
  • tuotantotiedot poistetaan testausympäristöstä välittömästi testauksen valmistuttua

Kriittisen koodin tunnistaminen ja tarkastaminen

Critical
High
Normal
Low

Määrittelyä turvallisuuden kannalta kriittisestä koodista eri palvelujen suhteen pidetään yllä. Uusia kriittisen koodin osasia pyritään jatkuvasti tunnistamaan ja uudet päivitykset tarkistetaan erityisen tarkasti kriittistä koodia koskevien muutosten suhteen. Tavoitteena on pitää turvallisuusheikkouksien todennäköisyys mahdollisimman pienenä.

Tilapäisten kirjautumistietojen turvallinen asettaminen

Critical
High
Normal
Low

Tilapäisten tunnistautumistietojen olisi oltava yksilöllisiä, eivätkä ne saisi olla arvattavissa esimerkiksi käyttäjän tiedoista päättelemällä.

Julkaisulokin ylläpitäminen

Critical
High
Normal
Low

Kaikista tuotanto- tai asiakaskäytössä oleviin ohjelmistoihin tai omiin IT-palveluihin tehdyistä päivityksistä olisi pidettävä tapahtumalokia.

Uusien tietotekniikkajärjestelmien kehittämisvaatimusten kattavuuden varmistaminen

Critical
High
Normal
Low

Organisaatio varmistaa, että uuden järjestelmän kehittämisen vaatimusmäärittelyt kattavat seuraavat näkökohdat:

  • tietoturvavaatimukset
  • Toimittajan suositukset ja parhaat käytännöt turvallista konfigurointia ja toteutusta varten.
  • Yleiset parhaat käytännöt ja tietoturvaohjeet
  • Vikasietoiset mekanismit (suunniteltu palaamaan turvalliseen tilaan vian tai toimintahäiriön sattuessa).

Uudet kehitetyt järjestelmät tarkistetaan erittelyjen perusteella ennen tuotantokäyttöön siirtymistä.