NIS2-direktiivi on Euroopan unionin säädös, joka tuli voimaan 17.10.2024. Sen tarkoituksena on vahvistaa kyberturvallisuutta kriittisessä infrastruktuurissa ja muissa tärkeissä palveluissa EU-alueella. Sen myötä myös ohjelmistokehitystiimien on noudatettava uusia lakisääteisiä vaatimuksia.
Direktiivi koskee suuria ja keskikokoisia yrityksiä eri sektoreilla, joita pidetään kriittisinä tai muuten tärkeinä. Katso tästä lisätietoa kyberturvallisuuskeskuksen sivuilta (pdf). Erityisesti näiden organisaatioiden sisäisten ohjelmistokehitystiimien on varmistettava, että ne toteuttavat käytännössä direktiivin vaatimat riskienhallintatoimenpiteet. Direktiivin noudattaminen ja sen osoittaminen on kuitenkin myös tärkeää niille ohjelmistokehitysyrityksille, jotka kehittävät ohjelmistoja organisaatioille, joiden tulee vastata NIS2:n vaatimuksiin, koska direktiivi edellyttää toimitusketjun turvallisuutta.
Huomioithan myös, että NIS2 on nyt saamassa rinnalleen kansallisen lain, kyberturvallisuuslain (KyberTL), joka poikkeaa hieman NIS2-direktiivistä (ei kuitenkaan tämän blogin aihealueen osalta). NIS2/KyberTL ei koske julkishallintoa, vaan sitä varten on kirjoitettu uusi luku 4. tiedonhallintalakiin (Tihl).
Mitä NIS2 edellyttää yleisesti?
NIS2-direktiivi on kaikkien sen kattamien toimialojen yhteinen. Se edellyttää, että organisaatio toteuttaa seuraavat riskienhallintatoimenpiteet:
- riskianalyysejä ja tietojärjestelmien turvallisuutta koskevat politiikat;
- poikkeamien käsittely;
- toiminnan jatkuvuuden hallinta, esimerkiksi varmuuskopiointi ja palautumissuunnittelu, sekä kriisinhallinta;
- toimitusketjun turvallisuus, mukaan lukien kunkin toimijan ja sen välittömien toimittajien tai palveluntarjoajien välisten suhteiden turvallisuusnäkökohdat;
- verkko- ja tietojärjestelmien hankinnan, kehittämisen ja ylläpidon turvallisuus, mukaan lukien haavoittuvuuksien käsittely ja julkistaminen;
- toimintaperiaatteet ja menettelyt, joilla arvioidaan kyberturvallisuusriskien hallintatoimenpiteiden tehokkuutta;
- perustason kyberhygieniakäytännöt ja kyberturvallisuuskoulutus;
- toimintaperiaatteet ja menettelyt, jotka koskevat kryptografian ja tarvittaessa salauksen käyttöä;
- henkilöstöturvallisuus, pääsynhallintaperiaatteet ja omaisuudenhallinta;
- tarvittaessa monivaiheisen todennuksen tai jatkuvan todennuksen ratkaisujen, suojatun puhe-, video- ja tekstiviestinnän sekä suojattujen hätäviestintäjärjestelmien käyttö toimijan toiminnassa.
Lisäksi direktiivi vaatii myös (osana poikkeamien käsittelyä) raportoimaan merkittävistä turvallisuuspoikkeamista seuraavien aikarajojen puitteissa:
- Ennakkovaroitus asianomaiselle viranomaiselle 24 tunnin kuluessa.
- Poikkeamailmoitus 72 tunnin kuluessa, jossa ensimmäinen arvio vakavuudesta.
- Väliraportit viranomaisen niitä pyytäessä.
- Loppu- tai edistymisraportti kuukauden kuluessa, jossa yksityiskohtaiset tiedot.
Käytännössä tämä edellyttää seuraavaa:
- Kirjoita turvallisuuspolitiikka, joka kuvaa, kuinka organisaatiosi toteuttaa yllä listatut riskienhallintatoimenpiteet.
- Varmista, että työntekijöilläsi on käytettävissä yksityiskohtaiset ohjeet, jotta he tietävät tarkalleen, kuinka noudattaa näitä riskienhallintatoimenpiteitä käytännössä.
- Valvo, että turvallisuustoimenpiteet todella toteutuvat ajantasaisen seurannan ja säännöllisten tarkistusten avulla.
- Lisäksi KyberTL vaatii mahdollisimman tarkan step-by-step -ohjeen ilmoittamisesta.
Nis2:sta voit oppia lisää kurssillamme, blogissamme ja webinaaritallenteesta.
Mitä NIS2 edellyttää ohjelmistokehitykseltä?
Vaikka turvallisen ohjelmistokehityksen perusperiaatteet voidaan yleistää, jokaisella organisaatiolla on kuitenkin erilaisia käytännön työskentelytapoja. Eroavaisuudet voivat riippua esimerkiksi siitä, millaisia sovelluksia yritykset tekevät, mitä työkaluja he käyttävät ja minkä tyyppisille asiakkaille he työskentelevät.
Tämän vuoksi ei ole olemassa yhtä ainoaa vaihtoehtoa turvallisuuspolitiikoille ja niiden käytännön toteuttamiselle, vaan jokaisen organisaation on itse määriteltävä omat käytännön prosessinsa. Alla kuitenkin esimerkkejä mitä ohjelmistokehitystiimit voivat tehdä käytännössä yllä mainittujen riskienhallintatoimenpiteiden toteuttamiseksi.
Riskianalyysi- ja turvallisuuspolitiikat
Suorita perusteellinen uhkamallinnus tunnistaaksesi ohjelmistokohtaiset riskit ja suunnitellaksesi niihin purevat vastatoimet. Varmista myös onko sovelluksen noudatettava tietosuoja-asetuksia ja -lakeja, kuten GDPR:ää, jotta lailliset vaatimukset täyttyvät.
Poikkeamien käsittely
Käytössä olevia sovelluksia kannattaa valvoa esimerkiksi Microsoft Sentinelin avulla, joka laukaisee hälytyksen, jos uusia tietoturvapoikkeamia havaitaan. Hälytysten perusteella voidaan tehdä automatisoituja tai manuaalisia toimenpiteitä tietoturvapoikkeamien käsittelemiseksi. Muista huomioida myös NIS2:n edellyttämä raportointi, jos poikkeama katsotaan merkittäväksi.
Toiminnan jatkuvuuden hallinta
Sovellusten asennusten automatisointi esimerkiksi Bicep-templaattien ja DevOps-julkaisuputkien (pipelines) avulla varmistaa, että ratkaisu voidaan asentaa nopeasti uudelleen niin tarvittaessa. Kun sovelluksen koodi ja konfiguraatiot pidetään ajan tasalla versionhallinnassa, uudelleenasennus voi vaatia vain napin painalluksen.
Toimitusketjun turvallisuus
Hyödynnä koodikirjastoja (dependencies) vain luotettavilta tahoilta, kuten Microsoftilta. Ole varovainen asentaessasi riippuvuuksia julkaisijoilta, joista et ole varma. Ihanteellisessa tapauksessa organisaatiolla on käytössä prosessi, jonka avulla kolmannen osapuolen paketit validoidaan ennen niiden käyttöönottoa organisaation toimittamissa sovelluksissa.
Ohjelmistojen kehityksen ja ylläpidon turvallisuus
Pidä sovelluksen hyödyntämät kolmannen osapuolen koodikirjastot, sovelluskehykset (frameworks) ja Azure-resurssit ajan tasalla. Käytä erilaisia automatisoituja tietoturvatyökaluja (esim. GitHub Advanced Security) haavoittuvuuksien havaitsemiseen. Pyydä asiantuntijaa tarkistamaan sovellukset turvallisuuspoikkeamien varalta. Noudata tietoturvallisia ohjelmistokehityskäytäntöjä, mistä päästäänkin seuraavaan kohtaan…
Kyberturvallisuuskoulutus
Perustasoisen kyberturvallisuuskoulutuksen lisäksi ohjelmistokehittäjät voivat hyötyä suuresti AppSec-koulutuksesta. Ihmiset oppivat eri tavoin, joten sekä itseopiskelumateriaalien että ryhmämuotoisten koulutusten tarjoaminen tietoturvallisten ohjelmistokehityskäytäntöjen oppimiseksi on suositeltavaa.
KyberTL ja NIS2 vaativat koulutuksen järjestämistä kaikille, mutta myös rooli- ja yksikkökohtaisesti tarvittaessa ja lisäksi tarvittavat erilliset ohjeet (Unit- or role-specific security guidelines).
Kryptografian ja salauksen käyttö
OWASP Top 10 -dokumentin Cryptographic Failures -artikkeli auttaa pääsemään hyvin alkuun tämän asian osalta. Se kannattaa kuitenkin yhdistää vielä käytännönläheisempiin ohjeistuksiin, joissa on huomioitu käytössä olevat teknologiat.
Pääsynhallintaperiaatteet
Noudata vähimmän käyttöoikeuden periaatetta (the principle of least privilege) kaikessa mahdollisessa. Periaate tarkoittaa, että sinun tulisi myöntää vähimmät mahdolliset oikeudet ja vain niihin tietoihin ja resursseihin, jotka ovat ehdottoman välttämättömiä ohjelmiston tai käyttäjän suorittamia tehtäviä varten.
Todennusratkaisujen käyttö
Älä käytä palvelutunnuksia koodisi suorittamiseen, koska tällöin niiltä joudutaan yleensä ottamaan monivaiheinen todennus (multi-factor authentication, MFA) pois päältä. NIS2 sanoo, että MFA:ta on pakko käyttää.
Tähän on toki poikkeuksia (esim. Azure Logic Apps, Power Platform). Yleisesti ottaen vastaavissa tilanteissa kannattaa kuitenkin suosia sovellusidentiteettejä (service principals), kuten Azure-resurssien hallittuja identiteettejä (managed identities).
Kyberturvallisuusriskien hallintatoimenpiteiden tehokkuuden arviointi
Ihannetilanteessa on olemassa automaatio, joka ilmoittaa, jos jokin yllä mainituista riskienhallintatoimenpiteistä ei toteudu. Kaikkien asioiden automatisointi ei kuitenkaan ole mahdollista tai järkevää, joten osa toteutumisen arvioinnista voi vaatia ihmisen tarkistuksen. Säännöllisen tietoturvatarkastuksen teettäminen on hyvä idea.
Kuten yllä olevaa listaa lukiessasi saatoitkin jo hoksata, jos kehität jo ohjelmistoja turvallisen ohjelmistokehityselinkaaren (Secure Software Development Lifecycle) mukaisesti, niin todennäköisesti täytät jo ison osan NIS2-direktiivin vaatimuksista. Varmistathan vielä kuitenkin, että sinulla on myös prosessit merkittävien poikkeamien raportointiin ja turvallisuustoimenpiteiden tehokkuuden arvioimiseen.
Kuinka voimme auttaa?
Jos tarvitset apua, tutustu palveluihimme ja ota meihin yhteyttä! NIS2-direktiivin asettamiin vaateisiin tarjoamme apua mm. SOC & CSIRT -valvontapalvelut, kyberturvallisuuskyvykkyyksiesi kypsyystason arviointia, SIEM-ratkaisun käyttöönoton ja kehittämisen sekä tuemme organisaatiotasi monimuotoisesti hallinnollisissa tietoturvatehtävissä.
Tutustu NIS2:een
Tutustu materiaaleissamme ja kurssillamme mikä NIS2 on, miksi ja miten sinun tulisi toimia ja mitkä ovat Microsoftin ratkaisut vaatimusten noudattamiseen!