Trace Id is missing
Siirry pääsisältöön
Microsoft Security

Mitä DevSecOps tarkoittaa?

Opi integroimaan tietoturvakäytännöt ohjelmistokehityksen elinkaaren jokaiseen vaiheeseen monipilviympäristössäsi.

DevSecOpsin määritelmä

DevSecOps (joka on lyhenne sanoista Development (kehitys), Security (tietoturva) ja Operations (toiminta)) on kehys, joka integroi tietoturvan ohjelmistokehityksen elinkaaren kaikkiin vaiheisiin. Organisaatiot ottavat tämän lähestymistavan käyttöön pienentääkseen riskiä siitä, että ne julkaisisivat tietoturvahaavoittuvuuksia sisältävää koodia. Yhteistyön, automaation ja selkeiden prosessien avulla tiimit jakavat vastuun tietoturvasta sen sijaan, että sen toteutus jätettäisiin kehitysprosessin loppuun, jolloin ongelmien ratkaiseminen voi olla paljon vaikeampaa sekä kalliimpaa. DevSecOps on elintärkeä osamonipilvitietoturvastrategiaa.

DevSecOps vs. DevOps

Perinteisessä ohjelmistokehityksessä projektit jaetaan erillisiin suunnittelun, kehityksen, integroinnin ja testauksen vaiheisiin. Nämä vaiheet suoritetaan peräkkäin useiden kuukausien tai jopa vuosien aikana. Vaikka tämä lähestymistapa on hyvin järjestelmällinen, monet organisaatiot ovat havainneet sen olevan liian hidas, mikä vaikeuttaa asiakkaiden jatkuvien tuoteparannusvaatimusten täyttämistä. Lisäksi tässä tavassa tietoturva yleensä lisätään ja toteutetaan vasta aivan kehitysprosessin lopussa, mikä altistaa yritykset tietoturvamurroille.

Säilyttääkseen kilpailukykynsä monet yritykset ovat ottaneet käyttöön DevOps-mallin, joka priorisoi laadukkaan koodin pienempien pakettien toimittamisen sen sijaan, että tehtäisiin paljon ominaisuuksia sisältäviä projekteja, jotka kestävät kauemmin. Tässä kehyksessä ohjelmistokehitystiimit ja operatiiviset tiimit tekevät yhteistyötä toteuttaakseen testausta ja integrointia läpi koko prosessin. Automaatio, standardoidut prosessit ja yhteistyö auttavat tiimejä etenemään nopeasti laatua uhraamatta.

DevSecOps on DevOpsin parannus, joka sisällyttää tietoturvan prosessin kaikkiin osa-alueisiin. Tavoitteena on korjata tietoturvaongelmia heti projektin alusta alkaen. Tässä kehyksessä koko tiimi ottaa vastuun laadunvarmistuksen ja koodin integroinnin lisäksi myös tietoturvasta. Käytännössä tämä tarkoittaa sitä, että tiimit keskustelevat tietoturvavaikutuksista suunnittelun aikana ja aloittavat kehitysympäristöjen tietoturvaongelmien testauksen sen sijaan, että ne odottaisivat kehitysprosessiin loppuun. Tästä käytetään myös englanninkielistä nimitystä Shift Left Security.

Miksi DevSecOps on tärkeä?

On monia tapoja, joilla hyökkääjät pääsevät käsiksi organisaation tietoihin ja resursseihin, mutta yleinen tapa on hyödyntää ohjelmistohaavoittuvuuksia. Tämäntyyppiset tietomurrot ovat kalliita, aikaa vieviä ja vakavuudesta riippuen yrityksen maineelle haitallisia. DevSecOps-kehys vähentää riskiä ottaa käyttöön ohjelmistoja, joissa on virheellisiä määrityksiä ja muita Lisätietoja haavoittuvuuksistahaavoittuvuuksia, joita vihamieliset hyökkääjät voisivat hyödyntää.

DevSecOpsin tärkeimmät komponentit

Onnistunut DevSecOps-prosessi sisältää seuraavat komponentit:

  • Jatkuva integrointi

    Jatkuvassa integroinnissa kehittäjät vahvistavat koodinsa keskussäilöön useita kertoja päivässä. Tämän jälkeen koodi integroidaan ja testataan automaattisesti. Tämän lähestymistavan ansiosta tiimit näkevät integrointiongelmat ja virheet prosessin alussa prosessin lopun sijasta, jolloin ratkaistavana saattaisi olla paljon enemmän ongelmia.

  • Jatkuva toimitus

    Jatkuva toimitus perustuu jatkuvaan integrointiin, joka automatisoi koodin siirtämisen koontiympäristöstä valmisteluympäristöön. Valmistelun jälkeen ohjelmisto testataan yksikkötestauksen lisäksi automaattisesti sen varmistamiseksi, että käyttöliittymä toimii, että koodi integroidaan onnistuneesti, että ohjelmointirajapinnat ovat luotettavia ja että ohjelmisto pystyy käsittelemään odotetut liikennemäärät. Tämän lähestymistavan tavoitteena on toimittaa jatkuvasti tuotantovalmista koodia, joka tarjoaa arvoa asiakkaille.

  • Jatkuva tietoturva

    Tietoturvan sisällyttäminen koko ohjelmistokehityksen elinkaareen on DevSecOpsin keskeinen osa. Tämä käsittää uhkamallinnuksen prosessin varhaisessa vaiheessa ja automaattisen tietoturvatestauksen koko elinkaaren ajan – kehittäjien omista ympäristöistä alkaen. Testaamalla ohjelmistoa perusteellisesti tietoturvaongelmien varalta usein ja aikaisessa vaiheessa organisaatiot voivat toimittaa ohjelmistoja tehokkaasti mahdollisimman vähäisin ongelmin.

  • Viestintä ja yhteistyö

    DevSecOps on erittäin riippuvainen henkilöistä ja tiimeistä, jotka tekevät läheistä yhteistyötä. Jatkuva integrointi edellyttää, että ihmiset tekevät yhteistyötä koodiristiriitojen ratkaisemiseksi, ja tiimien on viestittävä tehokkaasti, jotta päämäärät pysyvät kaikille selkeinä.

DevSecOpsin toteutus

Tietoturvan lisääminen DevOps-prosessiin edellyttää huolellista suunnittelua. Aloita hitaasti prosesseista, jotka tuottavat vähiten kitkaa tiimille ja tarjoavat eniten parannuksia tietoturvaan. Seuraavassa on muutamia tapoja lisätä tietoturva tyypilliseen DevOps-sprinttiin.

  • Suunnittelu ja kehitys

    Tietoturvan sisällyttäminen kehityssprinttien aikaisessa vaiheessa auttaa vähentämään haavoittuvuuksia myöhemmin, mutta säästää myös aikaa, koska ongelmia on helpompi ratkaista ennen koodin valmistumista ja integrointia. Käytä suunnittelun ja kehityksen aikana uhkien mallinnusta sovelluksen mahdollisten uhkien tunnistamiseksi ja ehkäisemiseksi. Tämä auttaa sisällyttämään tietoturvan sovellukseen alusta alkaen. Jos haluat selvittää mahdollisia tietoturvaongelmia ennen koodin vahvistamista jaettuun säilöön, suorita automaattisia tarkistuksia, kuten integroidun kehitysympäristön tietoturvalaajennuksia, jotka antavat kehittäjille välitöntä palautetta, jos heidän kirjoittamassaan koodissa on mahdollisia tietoturvariskejä. Pyydä kooditarkistuksen aikana henkilöä, jolla on vankkaa tietoturvaosaamista, antamaan parannussuosituksia.

  • Koodin vahvistus

    Yksi onnistuneen DevSecOps-prosessin tärkeimmistä elementeistä on jatkuva integrointi. Kehittäjät yleensä vahvistavat koodinsa keskitettyyn säilöön useita kertoja päivässä varmistaakseen, että integrointiongelmat tunnistetaan ajoissa. Tähän vaiheeseen on tärkeää lisätä automaattiset tietoturvatarkistukset. Tämä voi sisältää kolmannen osapuolen kirjastojen ja riippuvuuksien tarkistamisen, yksikkötestauksen ja staattisen sovelluksen tietoturvatestauksen. On myös tärkeää ottaa käyttöön roolipohjaiset käyttöoikeuksien hallintatoiminnot, jotka suojaavat jatkuvaa integrointia ja jatkuvaa toimitusinfrastruktuuria hyökkääjiltä, jotka haluavat suorittaa haitallista koodia tai varastaa tunnistetietoja.

  • Koostaminen ja testaaminen

    Automaattisten tietoturvakomentosarjojen suorittaminen testiympäristössä auttaa tuomaan esiin mahdollisia ongelmia, joita ei ole aiemmin havaittu. Tämän vaiheen aikana suoritettavia tietoturvatestejä ovat muun muassa dynaaminen sovelluksen tietoturvatestaus, infrastruktuurin tarkistus, säilön tarkistus, pilvimääritysten vahvistus ja tietoturvan hyväksyntätestaus.

  • Tuotanto

    Kun sovellus on otettu käyttöön tuotannossa, jotkin organisaatiot osallistuvat läpäisytestaukseen ja yrittävät löytää heikkouksia tuotantoympäristöstä. Läpäisytestauksessa ihmiset omaksuvat hyökkääjän ajattelutavan ja etsivät tapoja murtaa sovelluksen suojaus.

  • Operatiivinen toiminta

    Edes paraskaan DevSecOps-prosessi ei löydä kaikkea, joten on erittäin tärkeää valvoa sovelluksia jatkuvasti heikkouksien ja uhkien varalta. Analytiikkatietojen avulla voit arvioida, paraneeko suojaustilanteesi, ja tuoda esiin optimointia kaipaavia osa-alueita.

DevSecOpsin työkalut ja tekniikat

Kun valitset tietoturvatyökaluja, on tärkeää valita ne, jotka toimivat hyvin nykyisen DevOps-tekniikkasi kanssa. Tämä helpottaa tietoturvan sisällyttämistä koko prosessiin. Seuraavassa on muutamia työkaluja, joita saatat tarvita:

  • Infrastruktuuri koodina -tarkistus

    Tehokkuuden parantamiseksi DevSecOps-tiimit käyttävät yleensä avoimen lähdekoodin työkaluja, kuten Terraformia, infrastruktuurin (kuten verkon, virtuaalikoneiden ja kuormituksentasainten) hallintaan ja valmisteluun koodin kautta sen sijaan, että ne tekisivät tämän manuaalisesti. Terraform auttaa varmistamaan, että infrastruktuuri määritetään ja päivitetään yhdenmukaisesti sadoissa tai tuhansissa palvelimissa. Jotta voidaan vähentää riskiä siitä, että vääriä määritykset otetaan käyttöön tuotantoympäristössä, infrastruktuuri koodina -tarkistustyökalut tarkistavat automaattisesti infrastruktuurin kooditasolla siltä varalta, että se ei vastaisi tietoturvakäytäntöjä ja -standardeja.

  • Staattinen sovelluksen tietoturvatestaus

    Ennen koodin kääntämistä DevSecOps-kehittäjät alkavat testata mukautettua koodiaan tietoturvahaavoittuvuuksien varalta. Tämä auttaa korjaamaan ongelmia sen vaikuttamatta koontiversioon. Staattiset sovellusten tietoturvatestaustyökalut helpottavat prosessia automaattisilla tarkistuksilla ja reaaliaikaisella palautteella. Monet työkalut tunnistavat tarkalleen, mikä koodi on riskialtista, ja tarjoavat niille ehdotettuja korjauksia.

  • Ohjelmistokoostumusanalyysi

    Yksi tapa, jolla tiimit voivat kehittää sovelluksia ja ominaisuuksia tehokkaammin, on kolmannen osapuolen laajennusten sekä kehysten käyttö. Nämä käyttövalmiit työkalut säästävät aikaa, mutta ne voivat myös aiheuttaa riskejä, esimerkiksi käyttöoikeuksiin liittyviä ongelmia, huonosti kirjoitettua koodia tai tietoturvahaavoittuvuuksia. Ohjelmistokoostumusanalyysityökalut tunnistavat sovellusten avoimen lähdekoodin komponentit ja vertaavat niitä omistusoikeudellisiin tai maksuttomiin tietokantoihin käyttöoikeusrikkomusten sekä tietoturva- ja laatuongelmien havaitsemiseksi.

  • Vuorovaikutteinen sovelluksen tietoturvatestaus

    Vuorovaikutteiset sovellusten tietoturvatyökalut tarkistavat laadunvalvontavaiheessa tai sovellusta käytettäessä koodin haavoittuvuuksien löytämiseksi ja tarjoavat raportteja, joiden avulla voidaan tunnistaa, missä koodin kohdassa ongelma on.

  • Dynaaminen sovelluksen tietoturvatestaus

    Dynaaminen sovelluksen tietoturvatestaus jäljittelee menetelmiä, joita hyökkääjä saattaa käyttää sovellukseen hyökätäkseen. Tämä testaus tapahtuu sovelluksen ollessa käynnissä ja perustuu ennalta määritettyihin käyttötapauksiin.

  • Säilötarkistus

    Säilöjä käytetään laajalti DevSecOpsissa, koska ne auttavat kehittäjiä ottamaan helposti käyttöön itsenäisiä koodiyksiköitä. Säilön sisällä on säilön näköistiedosto, joka sisältää koodin, joka suorittaa säilön prosesseja. Nämä näköistiedostot kuitenkin luodaan usein olemassa olevien näköistiedostojen pohjalta – tai ne perustuvat julkisista säilöistä saatavilla oleviin näköistiedostoihin. Säilötarkistustyökalut tarkistavat säilöt ja vertaavat niitä julkisiin tai omistusoikeudellisiin haavoittuvuustietokantoihin mahdollisten tietoturvaongelmien selvittämiseksi.

DevSecOpsin parhaat käytännöt

DevSecOpsissa on kyse yhtä paljon kulttuurin muutoksesta kuin prosessista ja työkaluista. Seuraavassa on joitakin parhaita käytäntöjä, joiden avulla tämän kehyksen käyttöönotto sujuu mahdollisimman saumattomasti.

  • Kulttuurin muuttaminen

    Tunnusta se, että ihmisten voi olla vaikea muuttaa työskentelytapaansa, ja ristiriitoja voi ilmetä. Voit auttaa heitä mukautumaan kertomalla selkeästi organisaation tavoitteista ja odotuksista, tarjoamalla paljon mahdollisuuksia avoimeen vuoropuheluun ja varautumalla siihen, että sinun on oltava joustava, kunnes tiimit löytävät heille parhaiten toimivat työkalut, prosessit sekä aikataulut.

  • Määritä vaatimukset ja mittarit

    Määritä tietoturvan vähimmäistaso. Saat ohjeita tähän alan ja säädösten vaatimuksista tai verkkosovellusten kriittisten riskien Open Worldwide Application Security Project® (OWASP) Top Ten -listalta ja SANS Top 25 -ohjelmistovirhelistalta. Kun olet määrittänyt vaatimukset, määritä, mitä mittareita haluat seurata, jotta voit seurata edistymistäsi.

  • Aloita pienestä

    Tietoturva-automaatiotyökalut tarjoavat useita vaihtoehtoja koodin tarkistamiseen ongelmien varalta, mutta niiden käyttöönotto, erityisesti DevSecOpsin käyttöönoton aikaisessa vaiheessa, saattaa olla liikaa tiimillesi. Mieti harkiten, mitä työkaluja otat käyttöön ja kuinka monta ongelmaa etsit.

  • Suorita uhkamallinnus

    Kehitä uhkien mallinnusprosessi, joka voi olla juuri niin yksinkertainen tai yksityiskohtainen ja tekninen kuin tarvitset. Tämän lähestymistavan avulla voit dokumentoida sovelluksellesi realistisen tietoturvanäkymän, joka sisältää seuraavat:

    • Miten hyökkääjät voivat väärinkäyttää sovellusta?
    • Miten haavoittuvuudet korjataan?
    • Miten eri ongelmat priorisoidaan?
  • Hyödynnä automaatiota

    Automaatio on avain sekä laadun että nopeuden takaamiseksi DevSecOps-prosessissa. Kun upotat automatisoituja tietoturvatarkistuksia jatkuvan integroinnin ja jatkuvan toimituksen elinkaaren kaikkiin vaiheisiin, voit parantaa sovellustesi tietoturvaa hidastamatta prosessia merkittävästi.

  • Hallitse riippuvuuksia

    Useimmat kehittäjät käyttävät kolmannen osapuolen paketteja ja kirjastoja luodakseen sovelluksia tehokkaasti. Ongelma on siinä, että joissakin näistä ratkaisuista on tietoturvapuutteita, eivätkä kehittäjät aina muista olla tarkkana niiden pitämisessä ajan tasalla. Voit pienentää riskiä varmistamalla, että käyttämäsi komponentit on tarkastettu tietoturvariskejä varten, sekä kehittämällä standardoidun prosessin niiden päivittämiseksi.

  • Arvioi ja paranna

    Arvioi säännöllisesti, miten prosessi toimii, ja muokkaa sitä tarvittaessa, jotta organisaatiosi täyttää tavoitteet. Sprintin suorittamisen jälkeen toteutettu jälkikatsaus voi auttaa tuomaan esiin parannusmahdollisuuksia. Analytiikkatiedot ja uhkatiedot voivat myös auttaa sinua määrittämään, onko olemassa joitain tietoturvatarpeita, joita nykyinen lähestymistapasi ei täytä.

DevSecOps pilvinatiivisovelluksille

PilvinatiivisovelluksetPilvinatiivisovellukset on kehitetty pilveen. Lisäksi ne ovat yleensä toimittajariippumattomia, joten ne voidaan siirtää pilvestä toiseen. Ne on suunniteltu erittäin skaalautuviksi ja joustaviksi. Kehitystiimit luovat niitä yleensä mikropalveluilla, säilöillä ja automaatiolla, joten ne sopivat erinomaisesti DevSecOps-prosessiin. Jatkuvan tietoturvan, jatkuvan integroinnin ja jatkuvan toimituksen sisällyttäminen pilvinatiivisovellusten kehitysprosessiin mahdollistaa skaalattavuuden tietoturvasta tinkimättä. Käytä automaattisia tietoturvaratkaisuja, esimerkiksi Microsoft Defender for DevOpsia, suojataksesi koodisi ja koko DevOps-putken. Kun olet ottanut sovelluksesi käyttöön pilvessä, jatka sen valvontaa riskien varalta. Pilvipalvelujen kuormituksen suojausympäristöt (CWPP)Pilvipalvelujen kuormituksen suojausympäristöt (CWPP) auttavat suojaamaan näitä sovelluksia ja pohjana olevia tietoja havaitsemalla ja ehkäisemällä työkuormiin kohdistuvia uhkia monipilviympäristöissä. Pilvipalvelujen suojaustason hallinta (CSPM)Pilvipalvelujen suojaustason hallintaratkaisut (CSPM) havaitsevat ja korjaavat ympäristösi virheellisiä määrityksiä sekä haavoittuvuuksia.

Lue lisää Microsoft Securitysta

Microsoft Defender for Cloud

Suojaa monipilviympäristöt ja hybridiympäristöt pilvipohjaisella sovellusten suojauksella (CNAPP) aina kehitysvaiheesta suoritusvaiheeseen.

Microsoft Defender for Cloud Apps

Nykyaikaista sovellustesi suojausta, suojaa tietojasi ja paranna sovellustesi tietoturvatilaa ohjelmisto palveluna -ratkaisulla.

Microsoft Defenderin pilvipalvelujen suojaustason hallinta

Keskity kriittisimpään riskiisi kaikissa monipilviympäristössäsi kontekstuaalisen pilvipalvelujen suojaustason hallinnan avulla.

Microsoft Defender for DevOps

Hanki yhdistetty DevOps-tietoturvahallinta kaikkiin monipilviympäristöihin ja moniputkiympäristöihin.

Usein kysytyt kysymykset

  • DevSecOps on prosessi, joka integroi tietoturvan koko ohjelmistokehityksen elinkaareen. Organisaatiot ottavat tämän lähestymistavan käyttöön pienentääkseen riskiä siitä, että ne julkaisisivat tietoturvahaavoittuvuuksia sisältävää koodia. Yhteistyön, automaation ja selkeiden prosessien avulla tiimit jakavat vastuun tietoturvasta sen sijaan, että sen toteutus jätettäisiin kehitysprosessin loppuun, jolloin ongelmien ratkaiseminen voi olla paljon vaikeampaa ja kalliimpaa.

  • DevSecOps on lyhenne sanoista Development (kehitys), Security (tietoturva) ja Operations (toiminta). Se viittaa prosessiin, jossa tietoturva integroidaan ohjelmistokehityksen kaikkiin vaiheisiin.

  • Shift Left on DevSecOpsin konsepti, joka tarkoittaa tietoturvakäytäntöjen sisällyttämisestä kehitysprosessin alusta alkaen.

  • DevSecOps-kehys sisältää jatkuvan integroinnin, jatkuvan toimituksen ja jatkuvan suojauksen. Se on tapa, jolla tietoturvatiimit ja operatiiviset tiimit tekevät yhteistyötä sekä jakavat vastuun laadukkaiden ohjelmistojen nopeasta toimittamisesta ja tietoturvahaavoittuvuuksien vähentämisestä.

  • Ei ole olemassa mitään yhtä tiettyä DevSecOps-prosessia, mutta yleinen tapa suorittaa näitä projekteja on jakaa työ sprintteihin, joista jokainen sisältää seuraavat osat: suunnittelu ja kehitys, koostaminen ja testaaminen sekä tuotanto. Koko sprintin ajan tiimit käyttävät automaatiota jatkuvaan laadunvarmistukseen, jatkuvaan integrointiin ja tietoturvariskien jatkuvaan testaamiseen.

Seuraa Microsoftia