Siirry pääsisältöön

Viisi askelta tietoturvalliseen ohjelmointiin

Aikaisemmassa kirjoituksessani kerroin polveilevasta tiestäni tietoturvan opiskelun parissa. Olen käyttänyt iltoja, kuukausia, vuosia perehtyen ohjelmistokehityksen tietoturvaan ja silti kysyn itseltäni, osaanko riittävästi. Kyse on niin laajasta kokonaisuudesta, että sen täydellinen hallitseminen on mahdotonta.

Yksi käytännön työssä ja opiskeluissa vastaan tullut teema on erilaiset tarkistulistat: OWASP Top 10, SANS Top 25 jne. Minulle on vuosien mittaan muodostunut oma tarkistuslistani, jonka mukaiset ohjenuorani jaan tässä muillekin aiheesta kiinnostuneille. Listan kohdat ovat satunnaisessa järjestyksessä.

  1. Huolehdi salasanoista ja varmenteista

Huolehdi siitä, että salasanat ovat riittävän hyvin muodostettuja ja tarpeeksi pitkiä. Säilytä kirjautumistunnuksia, varmenteita ja muita salaisiksi tarkoitettuja asioita turvallisesti henkilökohtaisella koneellasi tai erilaisissa ympäristöissä, esimerkiksi pilvipalveluissa.

  1. Epäile aina

Pohdi, miten murtautuisit kehittämääsi järjestelmään, onko siellä aukkoja. Jos et ymmärrä, kysy tyhmiä kysymyksiä. Liian monimutkaiseen koodiin voi helposti jäädä haavoittuvuus. Uskalla sanoa, jos pelkäät, että omassa tai jonkun toisen tekemässä koodissa on tietoturvallisuuteen liittyvä puute.

  1. Automatisoi

Käytä automaattitestejä tietoturvan varmistamiseen. Niillä voidaan varmistaa esimerkiksi, että tiettyä rajapinnan palvelua voidaan kutsua vain oikeilla käyttöoikeusrooleilla. Liitä staattisia skannereita ja hyökkäystyökaluja ohjelmistokehitysputkeesi, jolloin ohjelmistosi tietoturva varmistetaan jokaisen version automaattisen luomisen yhteydessä.

  1. Päivitä ohjelmistot

Päivitä ohjelmistokirjastot, palvelimen ohjelmistot jne. säännöllisesti. Yksi tärkeimmistä opeista yliopiston kurssilla oli harjoitus, jossa murtauduttiin testijärjestelmään, jonka sovelluksessa oli vanhoja kirjastoja. Ei tarvittu lainkaan yksityiskohtaista tietämystä jostakin haavoittuvuudesta. Helposti käytettävällä työkalulla pystyi kokeilemaan erilaisia haavoittuvuuksia varten kehitettyjä
exploit-ohjelmia, ja muutamassa tunnissa pääsi yhdessä sovelluskirjastossa olleesta aukosta käyttöjärjestelmätasolle sisään.

  1. Käytä valmiskirjastoja

Vaikka olisit suorastaan nero, tietoturvatoteutusta ei kannata ohjelmoida itse, jos valmis kirjasto tai palvelu löytyy. Tietoturva-aukko voi olla niin monessa paikassa, että yksittäinen kehittäjä ei millään pysty huomioimaan kaikkea.

Mitä sinun tarkistuslistallesi kuuluu?

Mika Tapanainen
Full stack developer