Tietoturva on keskeisessä roolissa puolustus- ja turvallisuusalan ohjelmistohankkeissa. Tässä joitakin kokemuksen myötä löytyneitä tärppejä meidän johtamisjärjestelmäprojektiemme pohjalta, jotka olisi hyvä huomioida aina turvallisessa ohjelmistokehityksessä.
Ylläpidä riittävää osaamista
Keskeisin asia turvallisessa ohjelmistokehityksessä on henkilöstön riittävä tietoturvaosaaminen. Kaikkien ei tarvitse olla tietoturva-asiantuntijoita, mutta jokaiselta projektijäseneltä tulisi löytyä perusymmärrys tietoturvasta roolista riippumatta.
Tietoturvakoulutus virittää ihmiset sopivaan ”epäilevään mielentilaan”, joka edesauttaa yhdessä tietoturvaongelmien perusosaamisen kanssa löytämään mahdollisia ongelmakohtia ohjelmistosta. Koulutuksen vaikutus kuitenkin haihtuu ajan myötä, joten koulutuksen ja oppimisen tulisi olla jatkuva prosessi.
Pidä mielessä yleisimmät sudenkuopat
Valtaosa hyökkäyksistä tapahtuu käyttäen tunnettuja haavoittuvuuksia. Kun nämä haavoittuvuudet tietää ja ymmärtää, niin ohjelmistosta saa jo pienellä vaivalla keskivertoa turvallisemman.
Tietoturvakoulutusten kautta tekijöille karttuu tietämystä siitä, mitä asioita suunnittelussa ja toteutuksessa tulee huomioida, ja mitkä ovat oman ohjelmiston herkät paikat. Jotta asiat pysyvät paremmin mielessä, on tärpit hyvä kerätä tarkastuslistaksi, jota voi tarvittaessa vilkaista nopeasti työn lomassa.
Määrittele tietoturvavaatimukset
Projektin alussa ja uusia ominaisuuksia määriteltäessä on hyvä kirjata ylös myös kaikki tietoturvavaatimukset. Kun tietoturva on huomioitu vaatimuksista lähtien, tulee tietoturva paremmin huomioitua kaikissa projektin vaiheissa.
Valvo kolmannen osapuolen riippuvuuksia
Ennen kuin ottaa tuotteeseen mukaan uusia kolmannen osapuolen komponentteja, on hyvä tarkastaa, löytyykö niistä tunnettuja haavoittuvuuksia. On myös hyvä katsoa, onko kirjasto edelleen aktiivisessa ylläpidossa, jotta komponenttiin tulee mahdollisesti saataville tietoturvakorjauksia.
Usein ohjelmistoissa on sen verran paljon kolmannen osapuolen komponentteja, ettei kaikkien kirjastojen haavoittuvuuksien seuraaminen ole enää mahdollista käsin. Tästä syystä CI-ympäristömme skannaa ohjelmistomme Java-kirjastoriippuvuudet läpi joka yö etsien tunnettuja haavoittuvuuksia. Ja luonnollisesti pelkkä valvonta ei riitä, vaan pitää olla myös varautunut siihen, että komponentteja tarvitsee päivittää havaintojen seurauksena.
Prosessi auttaa
Ohjelmistojen tietoturvan parantamiseksi on kehitetty erilaisia prosessimalleja, kuten SDL, joiden tarkoituksena on huomioida tietoturva prosessin eri vaiheissa. Jos suuren prosessikehyksen käyttöönotto ei tunnu luontevalta, voi tietoturvan huomiointia prosessissa auttaa pienilläkin teoilla. Joskus yksinkertainen kysymys ”onko tietoturva huomioitu?” esimerkiksi katselmuspöytäkirjassa voi olla se riittävä heräte, joka laittaa miettimään tietoturva-asioita vielä kerran ennen prosessin seuraavaa vaihetta.
Pyydä apua tarvittaessa
Jokaisen projektijäsenen ei tarvitse olla tietoturva-ammattilainen, mutta jokaisella jäsenellä tulee olla perustason ymmärrys yleisimmistä tietoturvaongelmista. Tietoturvan perustaidot auttavat tunnistamaan ne kohdat toteutuksesta, joissa tarvitaan erityistä tietoturvan huomiota, vaikka osaaminen ei välttämättä riittäisikään vaadittujen mekanismien toteuttamiseksi. Meidänkin projekteissamme saamme aina tarvittaessa apua kyberturvallisuusyksikkömme tietoturva-ammattilaisilta.
Tarkistuta ohjelmiston tietoturva ulkopuolisella taholla
Turvallisuuskriittisissä ohjelmistoissa vaaditaan yleensä tilaajan toimesta ulkopuolista tietoturva-auditointia toimitettavalle ohjelmistolle, mutta tietoturva-auditoinnin ei tarvitse olla pelkästään ohjelmiston tilaajan työkalu. Me käytämme kyberturvallisuusyksikkömme auditointiosaamista myös omassa kehitystyössä varmistamaan, että lopputulos vastaa tietoturvaltaan sille asettuja vaatimuksia. Vaikka tietoturva onkin jo huomioitu toteutusvaiheessa, saattaa ylimääräinen silmäpari löytää vielä asioita, joita ei olekaan osattu ottaa huomioon. Tietoturva-asioissa on aina parempi ottaa varman päälle kuin katua.
Luitko jo muut Markon asiantuntijablogit?
AsiantuntijablogitKatso avoimet työmahdollisuutemme.
Avoimet työpaikatMarko Latvala
Kirjoittaja työskentelee Instan puolustusliiketoiminnassa ohjelmistoarkkitehtina.