Miksi tarvitsemme DevSecOpsia?

Erinäisistä sovelluksista ja ohjelmistoista paljastuu jatkuvasti tietoturvaongelmia. Loppukäyttäjälle asti päätyneen tietoturvapuutteen aiheuttamat ongelmat voivat olla merkittäviä, ja puutteen korjaaminen tehdään usein vasta siinä vaiheessa kun riski realisoituu. Tällaisten tapahtumien kustannukset ovat myös merkittäviä. Siksi onkin aika kiinnittää huomiota enemmän siihen, miten sovellusten tietoturvaa voidaan parantaa ja riskejä minimoida jo kehitysvaiheessa. Tässä kirjoituksessa käsitellään asiaa DevSecOps-kulmasta.

Mikä ihmeen DevSecOps?

DevSecOps tarkoittaa käytännössä turvallisuusnäkökulman tuomista luonnolliseksi osaksi DevOps-prosesseja alusta asti. Aiemmin sovelluskehityksen tietoturva on ollut erillisten tietoturvahenkilöiden vastuulla – tai pahimmillaan ei kenenkään vastuulla. DevSecOps tuo turvallisuuden suunnittelun ja kehittämisen osaksi koko tiimin jokapäiväistä työtä. Siihen sisältyy myös tiettyjen tietoturvaan liittyvien tehtävien automatisointi jotta kehitysprosessi ei hidastu tarpeettomasti.

Projektin alussa tulee tehdä riski- ja hyötyanalyysi kehitettävästä sovelluksesta, jossa kerrataan mitä sovelluksen on tarkoitus tehdä ja mitä mahdollisia riskejä siihen liittyy. Tärkeitä kysymyksiä jotka tulee ottaa huomioon ovat esimerkiksi mitä kaikkea dataa sovellus tulee käyttämään, miten kyseinen data suojataan, millaisia käyttäjä- ja pääsynhallinnan ratkaisuja tarvitaan ja mitkä niiden mahdolliset riskit ovat. On myös hyvä huomioida millaisia tietoturvaongelmia samantyyppisissä toteutuksissa usein on. Kun ollaan selvillä tietoturvaan liittyvistä kysymyksistä, voidaan asettaa tavoitteita valmiin sovelluksen tietoturvalle.

Mistään sovelluksesta ei tietenkään voi koskaan saada täysin turvallista, mutta tietoturvan suunnittelu etukäteen auttaa välttämään mahdollisia sudenkuoppia jotka voivat ilmestyä myöhemmin kehitysvaiheessa. Kehitysprosessissa on nimittäin paljon helpompaa, nopeampaa ja halvempaa korjata ongelmat aikaisin. Mikäli ongelmat havaitaan vasta prosessin loppupuolella (tai valmiissa tuotteessa) on niiden korjaaminen paljon hankalampaa tai pahimmillaan mahdotonta.

Projektin aikana tulee joka vaiheessa varmistaa alussa asetettujen turvallisuustavoitteiden toteutuminen, erityisesti jos projektin aikana tehdään isoja muutoksia spekseihin tai sovelluksen toimintaan. Monesti turvallinen sovelluskehitys on pitkälti samaa asiaa kuin parhaiden käytäntöjen mukainen ohjelmointi – sekava koodi jossa on paljon keskinäisiä riippuvaisuuksia ja kovakoodausta sisältää herkästi myös tietoturvaongelmia, ja niiden korjaaminen on paljon hankalampaa ellei mahdotonta.

Kun sovellus on muuten valmis toimitettavaksi, tulee varmistaa että turvallisuustavoitteet on saavutettu. Mikäli niitä ei ole saavutettu, tulee ongelmat korjata ennen kuin sovellus toimitetaan. Kaikki ongelmat eivät välttämättä suoraan liity itse sovelluksen toimintaan – monesti esimerkiksi kehitysvaiheessa käytetyt debug-työkalut unohdetaan päälle ja asiakkaalle toimitetaan sovellus jossa on suoraan hyökkääjän käytettävissä oleva takaportti. Tarkalla toiminnan dokumentoinnilla voidaan loppuvaiheessa varmistaa myös tällaiset asiat.

Toimituksen jälkeen on selvitettävä mikä DevSecOps-prosessissa onnistui hyvin ja missä on vielä parannettavaa, kirjata opitut asiat ylös ja parantaa toimintaa seuraavaan projektiin. Kun DevSecOps on kunnossa, päästään eroon siitä että tietoturvaa yritetään runnoa sisään viime metreillä (tai toimituksen jälkeen).

Mitä kannattaa siis huomioida jatkossa turvallisessa sovelluskehityksessä?

  1. Tietoturvan ajattelu kuuluu aloittaa heti projektin alussa
  2. Tietoturva kuuluu kaikille
  3. Aikainen tietoturvaongelmien havaitseminen helpottaa niiden korjaamista ja säästää resursseja
  4. Tietoturvatavoitteiden toteutumista tulee seurata joka vaiheessa projektia
  5. Tietoturvatavoitteiden toteutuminen tulee varmistaa ennen kuin sovellus toimitetaan asiakkaalle

Muut blogikirjoitukset

Etusivulle

Heräsikö kysymyksiä? Ota yhteyttä!

Työpuhelin


Kategoria Blogi