Kehitys- ja tukikäytännöt

Kehitys- ja tukikäytännöillä pyritään sisäänrakentamaan turvallisuusnäkökohdat luonnolliseksi osaksi omaa it-kehitystä tai -tukea.
ohjelmointi
koodaus
tuotekehitys
Huom.! Tätä artikkelia täydennetään vielä. Lisää sisältöä tulossa piakkoin.

Vaatimustaso

Tason 1 asiat ovat pakollisia peruasioita, joista jokaisen organisaation, vaikka digitaalisuus tai datan käsittely ei korostuisikaan, olisi syytä pitää hyvää huolta.
Tason 2 asiat ovat digiturvan oleellisia ydinasioita, jotka ovat tärkeitä useimmille organsiaatioille ja joilla voidaan huomattavasti parantaa digiturvan tasoa. Nämä liittyvät yleensä tiiviisti tason 1 asioihin.
Tason 3 asiat ovat syventäviä digiturvateemoja, jotka eivät korostu jokaisen organisaation toiminnassa, mutta joiden voidaan entisestään parantaa tietoturvan ja tietosuojan saralla.
Taso 1
Taso 2
Taso 3
Taso 1
Taso 2
Taso 3
Taso 1
Taso 2
Taso 3

Suositeltu organisointi

Teemoille, jotka ovat sopivan kokoisia ja koordinoitavissa ilman jalkauttamista yksikkö- tai esimerkiksi järjestelmäkohtaisesti, on helpompaa nimetä selkeä(t) vastuuhenkilö(t). Vastuuhenkilöllä on oltava tarvittavat valtuudet ja resurssit teeman hoitamiseen. Vastuuhenkilö voi olla esimerkiksi tietoturvapäällikkö tai tietosuojavastaava.
Teemoille, jotka vaativat järjestelmä- tai rekisterikohtaista koordinointia, organisointi kannattaa hoitaa pääkäyttäjien kautta. Tietojärjestelmät ja rekisterit ovat organisaation avainomaisuutta, joiden pääkäyttäjälle tai yhteyshenkilölle kuuluu vastuilleen erilaisten käytäntöjen hoitamista tai sääntöjen valvomista.
Teemoille, jotka ovat turhan laajoja yksittäisten vastuuhenkilöiden koordinoitaviksi, ja jotka eivät suoraan organisoidu järjestelmä- tai rekisterivetoisesti, suosittelemme yksikkökohtaista koordinointia. Jokaisessa yksikössä (myynti, tuotanto, talous, asiakaspalvelu, jne.) olisi oltava vastuuhenkilö, joka huolehtii esimerkiksi tiedon keräämisen tai sääntöjen jalkauttamisen oman yksikkönsä henkilöstölle.
Selkeä vastuuhenkilö
Pääkäyttäjät
Yksiköt
Selkeä vastuuhenkilö
Pääkäyttäjät
Yksiköt
Selkeä vastuuhenkilö
Pääkäyttäjät
Yksiköt

Osa-alueen tavoite, riskit ja haasteet

Ennen internetin yleistymistä ohjelmoijan työ oli suoraviivaisempaa. Tuotteiden piti suorittaa tarvittavat laskutoimitukset oikein, näyttää suht hyvälle ja toimia tarpeeksi sutjakkaasti, mutta tietoturvalla tai turvallisen kehittämisen säännöillä ei päätä juuri vaivattu. Nykyään erilaiset ohjelmistot käsittelevät tietoa, valvovat ja hallitsevat prosesseja kaikkialla - pankeissa, lentokentillä, sairaaloissa tai ostoskeskuksissa. Olemme pulassa, jos joku tietojärjestelmistämme ei olekaan käytettävissä 24/7. Kaiken pitää vain toimia.

Kehitys- ja tukikäytännöillä ja yleisemmin turvallisella kehittämisellä (secure engineering) viitataan siihen, millaisin toimintatavoin turvallisuus saadaan huomioitua tarpeeksi hyvin osana omaa it-kehitystä tai -tukea. Organisaatio voi kehitellä yleisiä toimintaperiaatteita (esim. "tiedot salattu in-transit ja at-rest"), joita on noudatettava kaikissa uusissa projekteissa. Toisaalta voidaan luoda tarkempaa ohjeistusta pienempien tehtävien suorittamiseksi esimerkiski valmiin määritelmiä (definition of done) käyttämällä, jotka kuvaavat esimerkiksi, millaiset testaukset ja katselmoinnit koodille on oltava suoritettu ennen sen hyväksymistä ja julkaisua. Huolella suunnitellut kehitys- ja testausympäristöt ja ulkoistettua kehitystyötä tekevien kumppanien valvonta ovat myös yleisiä teemoja.

OWASP (Open Web Application Security Project) on verkkoyhteisö, joka luo toimintaohjeita turvallisten verkkosovellusten kehittämiseen. Mikäli et ole varma, millaisilla toimintatavoilla oman yrityksen kehitystyön turvallisuutta kannattaa lähteä kehittämään, OWASP:n julkaisemat sisällöt (mm. OWASP top 10) voivat auttaa.

Esimerkkejä sisällöistä

Selvitettäviä kysymyksiä

Nämä ovat esimerkkejä asioista, joiden selvittämistä ja mahdollisesti raportoimista tämän osa-alueen käsitteleminen vaatii organisaartiolta.
No items found.

Mahdollisia toimintatapoja

Seuraavat sisältöesimerkit antavat tarkempia esimerkkejä siitä, millaisilla käytännöillä tai säännöillä tämän osa-alueen turvallisuutta voidaan kehittää.
Koodin kehittämisen ja julkaisemisen yleiset säännöt

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ä.

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

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ä.

Turvallisen kehittämisen säännöt

Kehitystyötä koskevat yleiset pelisäännöt on laadittu ja niiden toteuttamista valvotaan kaikessa organisaatiossa tehtävässä kehityksessä.

Turvallisen kehittämisen säännöt voivat 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

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

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

  • koodin omistajuudet ja immateriaalioikeudet
  • 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
Valmiin määritelmä (engl. definition of done) ja testaussäännöt

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ällisyyys.

Vaatimuksia muissa frameworkeissä

Läheisesti liittyvät Digiturvakartan muut kohdat

Tämän osa-alueen sisällöt liittyvät läheisesti etenkin näihin kohtiin Digiturvakartan muista osasista:
Itse ylläpidetyt IT-palvelut
Kun kehitämme itse IT-palveluita ja tarjoamme niitä asiakkaille, meidän on sitouduttava heille päin huolehtimaan osaltamme mm. teknisestä tietoturvasta ja tietyistä henkilötietojen käsittelyyn liittyvistä vastuista.
Haavoittuvuudet
Joskus tietojärjestelmiin jää heikkouksia, joista voi aiheutua ongelmia joko vahinkojen tai rikollisen tahallisen heikkouden hyödyntämisen kautta. CVE-tiedotuksen (Common Vulnerabilities and Exposures) kautta IT-palvelujen kehittäjät viestivät tunnistetuista ja korjatuista heikkouksista.