Palvelu: Secure Software Development Lifecycle

Secure Software Development Lifecycle lyhyesti

Turvallisessa sovelluskehitysprosessissa yhdistyy koodaajien ohjeistukset, tietoturvapolitiikan asettamat vaatimukset, johdon haluamat raportit sekä erilaisten standardien asettamat reunaehdot.

Tietoturvan parantamisella ja lisäämisellä kehitysprosessiin pyritään tehokkaasti luomaan siltoja tietoturvan, sovelluskehityksen ja liiketoimintaprosessien välille. Samalla kun parannetaan tietoturvaa, tarjotaan mittareita ylöspäin johdolle ja käytännön ohjeita alaspäin tekijöille. Mitattavuudella voidaan ohjata sekä tietoturvatavoitteita että -budjetteja.

Tietoturvaprosessin luominen alkaa kehitystyön ja kehitysmallin analysoinnilla. Löydämme yhdessä avainkohdat jossa turvallisuus on olennaisinta. Kehitysprosessin tueksi luodaan prosessimallit niistä turvallisuuteen liittyvistä aktiviteeteistä joita tulee suorittaa sovelluskehtiyksen aikana. Luomme myös tarvittavat materiaalit joita voi hyödyntää myynnissä ja markkinoinnissa - haluathan näytää olevasi ajan tasalla turvallisuusasioissa.

Mitä Mint Security toimittaa

Kehityksen alussa pyritään lyhyen aikavälin voittoihin sekä tarkentamaan pidemmän aikavälin prosessitavoitteita. Lopputuloksessa pyritään luomaan tehokas liityntä yrityksen tietoturvaan ja riskienhallintajärjestelmään, tietoturvavaatimuksiin sekä asiakaslupauksiin.

Tietoturvallisen sovelluskehitysprosessin luominen alkaa kehitystyön ja kehitysmallin analysoinnilla. Tarvittaessa nykyinen toiminta auditoidaan ja voimme myös jalkautua organisaatioon tekemään havaintoja tai haastattelemaan eri rooleissa toimivia ihmisiä. Löydämme yhdessä avainkohdat jossa turvallisuus on olennaisinta. Kehitysprosessin tueksi luodaan prosessimallit niistä turvallisuuteen liittyvistä aktiviteeteistä joita tulee suorittaa sovelluskehityksen aikana. Prosessimallit räätälöidään valmiista aihioista sopimaan sekä perinteistä, ketterää tavoittelevaa, jo nyt ketterää, että erittäin ketterää kehitystä tekeville organisaatiolle. Jos sinulla on tarvetta vastata esim. PCI-DSS tai ISO27002 vaatimuksiin, on näihinkin valmiita malleja.

Tietoturvallinen sovelluskehitysprosessin parantamisessa hyödynnämme mm. OWASPin malleja, hyviä käytäntöjä, valmiita aihoita ja koestettuja ideoita. Avoimissa standardeissa hyvänä puolena on riippumattomuus.

Yksinkertaistettuna tavoitteenamme on korottaa asiakkaitteme valmiutta ja kyvykkyyttä toimia uusien vaatimusten edessä omassa prosessissaan luottavaisesti ja rutinoidusti. Kokemukseme koodaamisesta, arkkitehtuurista auttaa meitä puhuttelemaan ja ymmärtämään koodaajien kaipaamaa konkretiaa. Kokemuksemme tietoturvasta, hallinnosta ja mittaamisesta auttaa meitän tuottamaan johtoportaan kaipaamaa läpinäkyvyyttä.

Asiakkaiden tarpeet ja ratkaistavat haasteet

Tarpeet voivat olla moninaisia, mutta loppujen lopuksi aika geneerisiä.

  • Hallita tietoturvavaatimuksia sovelluskehityksessä
  • Formalisoida tiettyjä sovelluskehityksen prosesseja ja toimia niiden mukaisesti
  • Yhtenäistää hyväksymistestauksen kriiteeristöä tietoturvan suhteen
  • Arvioida sovelluskehitykseen ja sen tuloksiin liittyviä uhkia ja riskejä
  • Tuottaa luottamuksellisuutta ja arvoa asiakassuhteisiin
  • Mitata tietoturvaa – yhdistää tietolähteitä ja käyttää olemassa olevaa tietoa tehokkaammin

Yksi suurista haasteista on se, että yrityksen tietoturvaosastolla ja sovelluskehityksellä on liian löyhä kytkös. Tietoturvalla ei ole aikaa tai mahdollisuuksia - tai aina edes osaamista - jalkautua itse sovelluskehitysprosessiin. Erilaisilla virtuaaliorganisaatiorakenteilla, tiimivastuuilla ja ketterään tekemiseen sopivilla nykyaikaisilla champion/coach –rooleilla voidaan luoda vahvempia sidoksia tietoturvaan. Jakamalla vastuuta tuotetaan uudenlaista ruohonjuuritasoisempaa omistajuutta projektien tietoturvaan ja riskienhallintaan. Monesti prosesseja on muokattava siten, että tietoturva ja riskienhallinta integroituvat niihin tiukemmin. Kun tietoturva on kiinteänä osana sovelluskehitystä, sitä ei koeta ulkoiseksi asiaksi.

Lopuksi myös Tietoturvaan liittyviä mittareita ja portteja on suunniteltava ja mietittävä. Malli, jossa organisaatio kokee tietoturvan olevan tiettyjen pakollisten asioiden kautta suorittamista, jotta raportit näyttäisivät hyviltä, kaivaa maata varsinaisen asian, eli tietoturvan ja riskienhallinnan alta. Ketterissä organisaatioissa definition of done –käsitettä tukeva definition of secure takaa myös sprintteihin konkreettista tekemistä ja mitattavuutta.

Tarkemmin menetelmistämme ja työkaluistamme

Good enough -lähestymistapana

Jotta oikeanlaiset panokset saadaan oikeille alueille, määritellään tietoturvatoimialueet. Toimialueitten tehtävä on huolehtia siitä, että oikeat mittarit ohjaavat oikeaa tekemistä ja että tarvittavat osa-alueet saavat oikeanlaista huomiota. Vastaavasti tehtävänä on myös huolehtia siitä, ettei tapahdu ylipanostusta niille alueille joiden kriittisyysaste ei ole kovin korkea. Jokainen asia ei voi olla tärkein. Toimialueiden tietoturvan vaatimusmäärittelyssa voidaan käyttää esim. OWASP ASVS -kehystä.

Konkreettisesti määritellään muun muassa seuraavia:

  • Tietoturvatoiminnot
  • Tietoturvavaatimukset ja minimitasot
  • Auditointivaatimukset
  • Lokitus ja lokienhallintavaatimukset
  • Koodiauditointivaatimukset

Owasp SAMM

Jotta sovelluskehitysprosessille asetettuja vaatimuksia voitaisiin mitata neutraalilla tavalla ajan yli on syytä käyttää tunnettua yhteistä ja kiistämätöntä kolmannen osapuolen mittaristoa. Owasp SAMM on kypsyystasopohjainen mittaristo sovelluskehitysprosessille. Owasp SAMM soveltuu parhaiten mittaamaan strategisia tavoitteita ja sitä voidaan käyttää sekä haastettelutyökaluna että erilaisten tietoturvaroadmappien arvioimiseen.

Valmennus

Kun sovelluskehitystiimi kehittyy ja tietoturvaa pyritään integroimaan yhä tiiviimmin luonnolliseksi ja luontevaksi osaksi tekemistä, on erittäin tehokasta nostaa tiimistä esille virtuaalisia vastuuhenkilöitä joita valmennetaan heidän omien kiinnostusalueittensa mukaisesti. Valittavat alueet riippuu täysin organisaation tarpeesta. Alueina voidaan ajatella esimerkiksi seuraavia:

  • Tekninen tietoturva ja arkkitehtuuri
  • Tekninen tietoturva web-sovelluksissa
  • Hackerointi
  • Hallinnollinen tietoturva ja valtion standardikehikot (Vahti ja Katakri)
  • Hallinnollisen tietoturvan yleiset ja kaupalliset standardit (ISO27002 ja ISO31000)
  • Hallinnollisen tietoturvan avoimet mallit (OWASP)
  • Yksityisyydensuoja (GDPR)
  • Uhkamallinnus
  • Riskienhallinta
  • Insidenttienhallinta

Valmistautuminen kolmannen osapuolen koodiauditointiin

Auditoinnilla tarkoitetaan yleensä kolmannen asiantuntijaosapuolen koodikatselmointia. Auditoinnin lopputuloksena saatavan raportin avulla parannetaan tuotekehitystä sekä poistetaan mahdollisia toistuvia ongelmatekijöitä. Onnistunut auditointi on osa tietoturvaprosessia, jolloin kerran havaitut virheet eivät enää toistu. Autamme määrittelemään auditoinnin tarpeet sekä saamaan suurimman mahdollisen hyödyn irti auditoinnista. Auditointiraporttia otetaan kaikki mahdollinen irti, ei jätetä sitä pölyttymään. Analysoimme yhdessä lopputulokset ja raportit sekä suunnittelemme mahdollisia jatkotoimenpiteitä.

Continuous Integration & Delivery ja automatisointi

Ammattimaisessa sovelluskehityksessä käytetään nykypäivänä erilaisia release management-työkaluja. Continuous integration ja delivery on kumpikin ns. buzzword. Monessa organisaatiossa on varsinaiset kehityksen työkalut paikallaan, mutta niihin ei liity mitään tietoturva-aspekteja. Prosessiin voidaan tuoda mukaan turvallisuuteen liittyviä mittareita sekä mahdollisia automatisoituja tietoturvatarkastuksia. Oikeilla mittareilla, toimintamalleilla ja työkaluilla saavutetaan helppoa ja läpinäkyvää tietoturvaa.

Ohjelmistoturvallisuuden jatkuva mittaaminen

Ohjelmistoturvallisuuteen liitetään liian harvoin mittaaminen. Mittaamisella voidaan parantaa kehitysprosesseja ja osoittaa kehityksen olevan tehokasta ja turvallista. Mittaamisessa käytetään erilaisten järjestelmien tuottamia lokeja ja tietoja joista aggregoidaan haluttuja näyttöjä ja raportteja. Mittaaminen edellyttää organisaatiolta tiettyjä kyvykkyyksiä, kuten mittarien innovointi ja lokien ja mittausdatan hallintaa.

Mitä seuraavaksi

  • Pääkäyttäjävaltuushallinta
  • Uhkamallinnus
  • SecOps - DevOps - Arkkitehtuuri
  • SIEM ja lokitapahtumienhallinta
  • Veracode

Ohjelmistokehityksen tietoturva

Veracode

Staattinen koodin tietoturvaskannaus. Parantaa tietoturvaa, automatisoi prosessit ja huolehtii raportoinnista. Ei sokeita pisteitä enää.

Security Domains

Määrittelemällä tietoturvan tasolle omat vaatimusalueet, security domaineja, voidaan välttyä sekä ali- että ylisuorittamasta tietoturvaa. Kaikki vaatimukset pyritään johtamaan ylhäältä organisaatiotason vaatimuksista.

Uhkamallinnus

Uhkamallinnus on olennainen osa modernin ja ketterän sovelluskehitysprosessin tietoturvaa. Työkaluna voidaan käyttää Microsoftin EOP -korttipeliä. Korttipeli on erityisen soveltuva agile-malliseen työskentelyyn, sillä tiimit ovat jo tottuneet erilaisiin pelillisiin lähestymistapoihin. Peli on hauska, ja sillä saa hyviä tuloksia aikaiseksi (tekemättä mitään oikeita töitä).

OWASP tuottaa avoimen lähdekoodin periaatteella materiaaleja kaikkien käytettäväksi. OWASPin materiaaleja ei ohjaa kaupallisuus ja materiaalien ideointiin, suunnitteluun ja toteutukseen osallistuu parhaimmat tekijät. Tästä syystä on helppoa suositella erilaisten OWASP-peräisten mallien käyttöönottoa. Jos on kiinnostusta voi itse kukin osallistua erilaisiin OWASP-työryhmiin. Tällä tavoin on mahdollista itse vaikuttaa siihen, miltä työkalujen seuraavat versiot näyttävät ja mitä ne sisältävät.