DevOps toi tullessaan CI/CD -putket (suom. jatkuvan integraation ja jatkuvan toimituksen putket), jotka tehostavat ohjelmistokehittäjien työtä. Putket vähentävät automaation avulla toistuvaa manuaalista työtä ja nopeuttavat uusien versioiden julkaisua. Automaatio karsii kehitysprosessista myös paikkoja inhimillisille virheille, jolloin tuotteen laatu paranee.
Jatkuva toimittaminen (CD) vaatii että kehitettävän tuotteen tietoturva on koko ajan kunnossa. Jos aiemmin teetettiin aina manuaalinen tietoturvatestaus ennen tuotteen julkaisua, se ei enää ole mahdollista.
Kuinka sitten pysyä kartalla tuotteen tietoturvasta CI/CD -putkien armottomassa tahdissa?
– Tietoturvan varmennus täytyy automatisoida ja integroida osaksi putkia.
Varmennus automatisoidaan käytännössä konfiguroimalla CI/CD putket ajamaan automaattisia tietoturvatyökaluja kehitettävää tuotetta vasten.
Pelkästään teknisellä ratkaisulla ei saada tuloksia. Silloin tällöin näkee toteutuksia, joissa tietoturvatyökaluja on tuotu osaksi putkia, mutta joiden tekemistä havainnoista ei tiedä kukaan, eikä ota selkoa, saati koppia. Tietoturva jää silloin retuperälle.
Toinen sudenkuoppa on yrittää integroida liian monia työkaluja. Useampi työkalu ei tee putken tuotoksista automaattisesti tietoturvallisempia. Ne hidastavat putkia ja tekevät päällekkäisiä havaintoja. Vajavaisesti konfiguroituna tulee vielä paljon vääriä hälytyksiä. Nämä yhdessä vaikeuttavat kehittäjien työtä ja laskevat siten motivaatiota omaksua työkaluja.
Näillä vinkeillä onnistut tietoturvan integroinnissa osaksi CI/CD -putkiasi.
Valitse oikeat työkalut
Automaattiset tietoturvatyökalut jaetaan karkeasti kolmeen kategoriaan: Static Application Security Testing (SAST), Dynamic Application Security Testing (DAST), ja Software Composition Analysis (SCA).
Näiden ympärille on ilmestynyt myös uusia kategorioita, kuten Secret Scanning, Interactive Application Security Testing (IAST) ja IaC Scanning, jotka pyrkivät pyrkivät parantamaan sovelluksen ympäristön tietoturvaa. Nämä voidaan tulkinnasta riippuen niputtaa SAST-DAST-SCA jakoon.
SAST-työkalut pyrkivät löytämään bugeja analysoimalla lähdekoodia. DAST-työkalut ajavat kohdesovelluksen ja tekevät automatisoituja hyökkäyksiä sitä vastaan. SCA-työkalut analysoivat lähdekoodin perusteella käytetyt riippuvuudet ja kirjastot tunnettujen lisenssiongelmien tai haavoittuvuuksien varalta.
Mitä aiemmin kehitysprosessissa tietoturvaongelmat havaitaan, sitä helpompaa ja halvempaa niiden korjaus on. SAST- ja SCA-työkalut havaitsevat ongelmat DAST-työkaluja ennen. Ne ovat myös DAST-työkaluja helpompia ottaa käyttöön. Siksi kannattaa aloittaa tietoturvan integrointi CI/CD prosessiin niistä.
Vasta kun SAST- ja SCA-työkalujen tekemien havaintojen korjaus käy sujuvasti, kannattaa yhtälöön lisätä DAST-työkaluja.
Kohtele tietoturvahavaintoja softabugien tapaan
Jos työkalujen tekemiä havaintoja ei käsitellä, niillä ei ole mitään arvoa. Sen takia on tärkeää, että havainnot tuodaan kehittäjien nenän eteen. Hyvä paikka havainnoille on bugijärjestelmä, joka on jo käytössä “normaaleihin” bugeihin. Sieltä kehittäjien on luontevaa poimia tietoturvaongelmat korjattavaksi kuten minkä tahansa softabugin. Muista priorisointi!
Luo prosessi
Luo selkeä ja mielellään kevyt kirjallinen prosessi tietoturvatyökalujen automaattiseen käyttöön. Prosessin olisi hyvä ottaa kantaa ainakin seuraaviin kysymyksiin:
- Mitä tietoturvatyökaluja käytetään?
- Missä kohtaa ja missä CI/CD putkissa työkaluja ajetaan?
- Miten tulokset vaikuttavat julkaisuun?
- Mihin havainnot kerätään?
- Kuka on vastuussa korjauksista?
- Mistä korjausten tekijä saa tarvittaessa apua havaintojen kanssa?
Prosessin idea on yksiselitteisesti avata tietoturvatyö kehittäjätiimille. Keskity tekemään kehittäjien työstä mahdollisimman helppoa ja ota kehittäjien mielipiteet huomioon. Tärkeintä on saada heidät sitoutumaan prosessin noudattamiseen.
Valvo ja kehitä prosessia
Noudata prosessia sprintti tai pari. Tuleeko työkaluista havaintoja? Millaisia? Korjataanko kriittisimmät? Ovatko korjausten tekijät saaneet tarvittavan tuen? Tee prosessiin parannuksia tulosten ja palutteen perusteella.
Tee tuotteeseen manuaalinen tietoturvatestaus. Vastaavatko testauksen tulokset sitä mitä automaattiset työkalut antavat ymmärtää? Löytyykö havaintoja alueelta joka on automaattisten työkalujen katveessa? Tee työkalujen konfiguraatioihin ja prosessiin taas tulosten perusteella parannuksia.
Iteraatioiden myötä prosessi helpottuu ja tulokset antavat tarkemman täsmäkuvan tuotteesi tietoturvasta.
Automatisointi ei missään vaiheessa poista manuaalisen tietoturvatestauksen tarvetta. Automaattiset murtotyökalut eivät osaa ajatella laatikon ulkopuolelta, jolloin osa ongelmista jää niiltä huomaamatta. Niiden ansiosta perusteet tulevat kuitenkin kuntoon, jolloin manuaalisen testauksen tarve pienenee.
Me Molemmat Oy:llä avustamme tietoturvan integroimisessa CI/CD -putkiin, sekä teemme tietoturvatestauksia. Ota yhteyttä ja katsotaan teidän tilanne kuntoon.