EU:n uudessa NIS2-direktiivissä turvallinen järjestelmähankinta ja -kehitys on ryhmitelty yhteen ja nimetty yhdeksi kymmenestä tärkeästä turvatoimenpiteestä, joita varten soveltamisalaan kuuluvilla organisaatioilla on oltava oikeasuhteiset ja dokumentoidut turvatoimenpiteet.
Turvallinen kehitys ja järjestelmähankinta ovat olennaisen tärkeitä tietoturvan kannalta, koska ne ovat portteja tietoihin. Ne ovat yksi puolustuslinja tietoturvauhkia vastaan. Hyvillä toimenpiteillä sekä kehittämisessä että hankinnassa voit varmistaa, että käyttämäsi järjestelmät kestävät nykyiset ja uudet uhat.
- Turvallinen kehitys: Tavoitteena on varmistaa, että uusiin järjestelmiin sisältyy tietoturva alusta alkaen. Turvallisessa kehityksessä tietoturvan hallintakeinot integroidaan kehitysprosessin jokaiseen vaiheeseen mahdollisten tietoturvahäiriöiden estämiseksi ja haavoittuvuuksien minimoimiseksi.
- Turvallinen järjestelmän hankinta: Tavoitteena on hankkia järjestelmät hallitusti siten, että varmistetaan riittävän korkeiden tietoturvastandardien noudattaminen. Näin varmistetaan, että hankitut järjestelmät eivät ole heikompia kuin muut puolustuslinjasi - tietoturvaohjelmisto on vain niin vahva kuin sen haavoittuvin kohta.
Tässä blogikirjoituksessa esitellään ISO 27001 -standardin hyväksi havaittuja toimenpiteitä, joilla voidaan parantaa sekä turvallisen kehityksen että järjestelmän hankinnan käytäntöjä. Näiden avulla yritykset eivät ainoastaan suojaa arkaluonteisia tietojaan vaan myös rakentavat luottamusta sidosryhmien ja asiakkaiden kanssa ja varmistavat, että yrityksen maine säilyy ehjänä. Muista, että on paljon kustannustehokkaampaa rakentaa kunnollinen tietoturva alusta alkaen kuin käsitellä tietomurron kalliita jälkiseurauksia.
Turvallinen kehitys 101
Turvallinen järjestelmäkehitys on huolellinen lähestymistapa ohjelmisto- ja laitteistoratkaisujen suunnitteluun, rakentamiseen ja toteuttamiseen siten, että tietoturva otetaan mahdollisimman tarkasti huomioon. Siihen sisältyy tietoturvaan ja yksityisyydensuojaan liittyvien näkökohtien sisällyttäminen heti kehityksen alkuvaiheista lähtien, ja siinä otetaan huomioon keskeiset periaatteet, kuten tietojen luottamuksellisuus, eheys ja saatavuus. Turvallisen järjestelmäkehityksen perustana on sen tiedostaminen, että tietoturvan ei pitäisi olla jälkikäteen ajateltu asia, vaan se on olennainen osa ohjelmistojen rakentamista, joka on ennakoitava, suunniteltava ja toteutettava alusta alkaen aina käyttöönottoon asti.
Turvallisen kehityksen hyödyt
- Suojaudu haavoittuvuuksilta: Turvallinen kehittämisprosessi suojaa järjestelmiäsi haavoittuvuuksilta ja vähentää mahdollisten häiriöiden ja hyökkäysten riskiä. Suunnittelu- ja toteutusvaiheessa käyttöön otetuilla turvatoimilla varmistetaan, että järjestelmä on suojattu ilkivallalta. Näin ollen on vähemmän todennäköistä, että luvattomat henkilöt pääsevät käsiksi arvokkaisiin tietoihin.
- Kasvata asiakkaiden luottamusta: Turvallisen kehitysprosessin toteuttaminen on tietoturvasertifikaattien (kuten ISO 27001) edellytys, ja se lisää asiakkaiden ja sidosryhmien luottamusta. He saavat varmuuden siitä, että heidän tietonsa ovat turvassa hallussasi. Tämä luottamus voi parantaa merkittävästi brändisi mainetta ja avata ovia uusille liiketoimintamahdollisuuksille.
- Vastaa viranomaisvaatimuksiin: ISO 27001 -standardia noudattamalla sinulla on yhteinen kieli viestinnässä asiakkaiden kanssa. Tämä auttaa sinua välttämään rangaistukset ja oikeudelliset ongelmat, ja lisäksi se herättää huomiota potentiaalisissa sijoittajissa ja asiakkaissa, jotka näkevät vaatimusten noudattamisen osoituksena sitoutumisestasi korkeimman mahdollisen tietoturvatason varmistamiseen.
- Luo kehittäjille vastuuta: Kehittäjillä on suuri rooli vahvassa tietoturvassa. Kun heidän ohjelmointityötään varten on selkeät ohjeet, joita seurataan ja parannetaan jatkuvasti, pystyt viestimään, että heidän panoksellaan on keskeinen rooli tietoturvassa.
Turvallinen järjestelmän hankinta 101
Turvallisella järjestelmähankinnalla viitataan prosessiin, jossa hankitaan uusi ohjelmisto- tai laitteistojärjestelmä ja varmistetaan samalla, että se täyttää turvallisuusvaatimukset asetettujen standardien mukaisesti. Tähän prosessiin kuuluu uusien järjestelmien turvallisuusvaatimusten hahmottelu ( jotka voivat luonnollisesti poiketa huomattavasti kriittisten tai vähemmän tärkeiden järjestelmien kohdalla), asianmukaisen palveluntarjoajan valinta, järjestelmän turvallisuusominaisuuksien varmistaminen organisaation tarpeiden mukaisiksi ja lopuksi järjestelmän turvallinen liittäminen olemassa olevaan infrastruktuuriin.
Turvallisen järjestelmähankinnan hyödyt
- Riskien pienentäminen: Turvallinen järjestelmähankinta auttaa pienentämään tietoturvaloukkauksiin, tietovuotoihin ja tietoturvahyökkäyksiin liittyviä riskejä varmistamalla, että hankittavat järjestelmät täyttävät vakiintuneet turvallisuusstandardit ja -vaatimukset.
- Toiminnan jatkuvuus: Minimoimalla hankittujen järjestelmien tietoturvaheikkoudet organisaatio voi parantaa vastustuskykyään tietoturvauhkia vastaan, mikä vähentää toiminnan häiriöiden todennäköisyyttä ja varmistaa jatkuvuuden.
- Kustannussäästöt: Ennakoiva tietoturvaongelmiin puuttuminen hankintavaiheessa voi auttaa välttämään kalliita tietomurtoja, häiriöitä ja korjaustoimenpiteitä, joita voi aiheutua riittämättömistä tietoturvatoimista käyttöönoton jälkeen.
- Sujuvammat toimet: Toteuttamalla turvavalvontatoimet hankintavaiheessa varmistetaan, että tietoturvavaatimukset sisällytetään järjestelmän arkkitehtuuriin alusta alkaen, mikä vähentää tarvetta kalliisiin jälki- tai uudelleenjärjestelyihin myöhemmin.
ISO 27001: Esimerkkejä parhaista toimintatavoista turvallisen kehityksen ja järjestelmän hankinnan toteuttamiseksi.
ISO 27001 -standardi käsittelee turvallista kehittämistä ja järjestelmän hankintaa useiden eri hallintakeinojen avulla, ja korostaa sellaisia näkökohtia kuin selkeiden turvallisuusvaatimusten asettaminen kehitetyille tai hankituille sovelluksille, turvalliset koodausperiaatteet, vakaan kehitys- ja testausympäristön luominen ja hallittu muutosten toimeenpano.
Usein organisaatiot päättävät myös viitata yksityiskohtaisempaan yleisesti hyväksyttyyn materiaaliin, joka liittyy haavoittuvuuksiin ja niiden ehkäisemiseen turvallisella koodauksella (esim. OWASP Top Ten).
8.25: Määritä yleiset turvallisen kehityksen periaatteet
Tämä hallintakeino korostaa, että turvalliset kehitysperiaatteet on dokumentoitava, niiden on katettava koko kehityksen elinkaari ja niitä on valvottava tiukasti. Kehityshankkeisiin voidaan myös sisällyttää valvontapisteitä, joissa tarkastellaan tietoturvanäkökulmaa.
Turvallisen kehityksen sääntöjen tärkeitä näkökohtia - esimerkiksi erillisiä ympäristöjä, tuotteiden turvallisuusvaatimusten määrittelyä, testausprosesseja ja lähdekoodin turvallista hallintaa - käsitellään yksityiskohtaisemmin seuraavissa hallintakeinoissa.
8.26: Sovellusten turvallinen hankinta ja luominen
Tässä hallintakeinossa ei erotella hankittuja tai itse luotuja sovelluksia toisistaan - sen mukaan sinun on määriteltävä tietoturvavaatimukset molemmille, jotta voidaan varmistaa, että kaikki hankitut tai itse luodut sovellukset ovat riittävän turvallisia.
Sovellusten turvallisuusvaatimukset hyötyvät prioriteettiluokittelusta. Matalan prioriteetin järjestelmille saattaa riittää ohjelmistotoimittajan kannattavuuden ja viestinnän perustarkastukset, mutta korkean prioriteetin järjestelmille saatetaan haluta yksityiskohtaiset vaatimukset, jotka koskevat monitekijätodennusta, salausta, integrointi- ja kirjaamisominaisuuksia, tietojen paikantamista ja palauttamista tai jopa palveluntarjoajalta vaadittavia sertifiointeja (esim. ISO 27001).
Sovellusten turvallisuusvaatimuksilla varmistetaan, että kaikki tarvittavat tietoturvatarpeet tunnistetaan ja otetaan huomioon kehitys- tai hankintaprosessin aikana.
8.28: Määritä turvalliset ohjelmointisäännöt kehittäjille
Viime kädessä ohjelmisto on kasa koodia, johon voi hiipiä haavoittuvuuksia. On myös muutenkin tärkeää luoda selkeää koodia, jossa on yhteiset periaatteet - se parantaa esimerkiksi laatua ja helpottaa uuden henkilöstön sisällyttämistä projekteihin.
Turvallista ohjelmointia koskevilla säännöillä pyritään varmistamaan, että ohjelmistot kirjoitetaan turvallisella tavalla, jolloin mahdolliset tietoturvaa vaarantavat haavoittuvuudet vähenevät. Näitä menettelyjä olisi laajennettava siten, että ne kattavat myös kolmansien osapuolten hankkimat ohjelmistokomponentit ja avoimen lähdekoodin ohjelmistot. On ratkaisevan tärkeää, että tiimi ottaa vastuun turvallisista koodauskäytännöistä, sillä sen on oltava ajan tasalla nopeasti kehittyvästä uhkakuvasta.
Turvallisen koodauksen säännöt voisivat sisältää esimerkiksi seuraavat näkökohdat:
- yleiset turvallisen koodauksen toimintaohjeet (valittujen kehysten/työkalujen asianmukainen käyttö, uusien ulkoisten ohjelmakirjastojen seulonta, yleisten haavoittuvuuksien ehkäiseminen (OWASP), hyväksyttävät ohjelmistot koodaustyössä).
- koodin tarkastelua ja julkaisemista koskevat periaatteet (koodin tarkasteluohjelma, valvottu prosessi päivitysten julkaisemiseksi).
- tehdyn määrittely (tarpeettoman koodin poistaminen, dokumentaation päivittäminen, automatisoitujen tarkistusten asianmukaisuuden varmistaminen).
- testausohjeet (miten toiminnallisuutta testataan, miten testausdataa käytetään, asiakasdatan käytön rajoittaminen).
8.29: Määritä prosessit järjestelmien turvallisuuden testaamiseen
Tässä hallintakeinossa on kyse sovellusten tietoturvatestauksen suunnitteluprosesseista, ei yleisestä toimivuudesta tai käyttäjäkokemuksesta. Kehitysprosessin aikana on olennaisen tärkeää laatia ja noudattaa tietoturvallisia testausmenettelyjä. Näillä prosesseilla varmistetaan, että kun sovelluksia tai koodia otetaan käyttöön tuotantoympäristössä, ne testataan perusteellisesti sen varmistamiseksi, että ne täyttävät tietoturvavaatimukset. Testien olisi oltava linjassa määriteltyjen vaatimusten kanssa ja katettava sekä toiminnalliset että muut näkökohdat.
Testausohjeet omalle henkilöstölle ovat tärkeitä, mutta organisaatiot vahvistavat usein tätä näkökulmaa käyttämällä automatisoituja työkaluja uuden kirjoitetun koodin läpikäymiseen (esim. haavoittuvuuksien skannaus, salaisuuden havaitseminen), käyttämällä dynaamisemman tietoturvatestauksen automatisointia (esim. DAST) tai tekemällä yhteistyötä erityisten tunkeutumistestauksen ammattilaisten kanssa, jotka pyrkivät murtautumaan ympäristöihin ja pääsemään käsiksi tietoihin.
8.31: Kehitys-, testaus- ja tuotantoympäristöjen erottaminen toisistaan
Kehitys-, testaus- ja tuotantoympäristöt on pidettävä erillään toisistaan ja turvattava, jotta tuotantoympäristöä ja tietoja voidaan suojella mahdolliselta vaarantumiselta kehitys- ja testaustoiminnan aikana. Näiden ympäristöjen välillä olisi määriteltävä tarvittava erottelun taso, ja sitä olisi valvottava, jotta estetään mahdollisten ongelmien vaikutus tuotantojärjestelmään.
8.32: Muutosten hallittu toteuttaminen
Tässä valvonnassa korostetaan, että sovelluksiin tehtävien muutosten tulisi noudattaa muutostenhallintamenettelyjä. Pienemmät jokapäiväiset koodimuutokset saattavat olla normaaleja ja noudattaa kevyempää prosessia, mutta sovelluksen tärkeimpiin komponentteihin (esim. todennus, kirjaaminen, käyttäjähallinta) tehtävät suuremmat muutokset saattavat käydä läpi kattavammat tarkastukset ja riskianalyysin ennen julkaisemista.
Olivatpa muutoksenhallintamenettelyt sitten kevyitä tai raskaita, ne on dokumentoitava ja pantava täytäntöön, jotta tietojen luottamuksellisuus, eheys ja saatavuus voidaan turvata kaikissa järjestelmissä.
8.8: Teknisten haavoittuvuuksien hallintaprosessi
Hallintakeino 8.8 koskee laajasti haavoittuvuuksien hallintaa. Kun tekninen haavoittuvuus havaitaan mistä tahansa lähteestä (esim. tietoturvatestityökalujen, manuaalisen koodin tarkistuksen tai ulkoisten tietolähteiden kautta), on organisaation tiedettävä, miten toimitaan.
Prosessiin voi kuulua haavoittuvuuden luokittelu, haavoittuvuuden arviointi ja päätökset hylkäämis- tai hoitotoimista dokumentoiduin perusteluin. Jotkin haavoittuvuuksista voivat olla erittäin kiireellisiä ja vaatia välittömiä toimenpiteitä, kun taas joidenkin haavoittuvuuksien osalta toimenpiteet voidaan ryhmitellä ja ajoittaa myöhemmäksi.
Yhteenvetona
Turvallisen kehityksen ja järjestelmähankinnan merkitystä ei voi liioitella. Kaikenlaiset yritykset ovat täysin riippuvaisia tiedoistaan ja sovelluksista, joita käytetään tietojen tallentamiseen ja käsittelyyn. Tämä käy kerta toisensa jälkeen ilmi esimerkiksi silloin, kun fyysisten tehtaiden toiminta lamautuu lunnasohjelmahyökkäyksen vuoksi. Suojaa järjestelmäsi suojellaksesi liiketoimintaa!
Löydät ISO 27001 -standardin testatut parhaat käytännöt, joiden avulla voit kehittää turvallisia kehitys- ja järjestelmähankintamenettelyjä ja täyttää NIS2-vaatimukset. Yleisten sääntöjen määrittelystä turvallisten sovellusten luomisen kautta teknisten haavoittuvuuksien hallintaan - kaikki tämä antaa organisaatiollesi mahdollisuuden luoda turvallisen järjestelmän, joka perustuu luotettaviin ja testattuihin käytäntöihin.
Kuten kaikki tietoturvan osa-alueet, myös turvalliset kehitys- ja hankintakäytännöt vaativat jatkuvaa parantamista. Kun aloitat jostain ja sitoutat itsesi ja kehitystiimisi jäsenet kehittämiseen, olet oikealla tiellä.