Trace Id is missing
Gå til hovedinnhold
Microsoft Sikkerhet

Hva er DevSecOps?

Finn ut hvordan du integrerer sikkerhetspraksiser i hver fase av livssyklusen for programvareutvikling på tvers av miljøet med flere skyer.

DevSecOps definert

DevSecOps, som står for utvikling, sikkerhet og drift, er et rammeverk som integrerer sikkerhet i alle faser av livssyklusen for programvareutvikling. Organisasjoner tar i bruk denne tilnærmingen for å redusere risikoen for å frigi kode med sikkerhetsproblemer. Gjennom samarbeid, automatisering og tydelige prosesser deler teamene ansvaret for sikkerhet, i stedet for å utsette det til slutten når problemer kan være mye vanskeligere og kostbart å håndtere. DevSecOps er en kritisk komponent i en sikkerhetsstrategi med flere skyer.

DevSecOps versus DevOps

I tradisjonell programvareutvikling deles prosjekter inn i spesifikke faser for planlegging, design, utvikling, integrering og testing, som skjer sekvensielt over flere måneder eller til og med år. Selv om denne tilnærmingen er svært metodisk, har mange organisasjoner funnet at den er for treg, noe som gjør det vanskelig å oppfylle kundenes forventninger til kontinuerlige produktforbedringer. I tillegg blir sikkerhet vanligvis hektet på helt på slutten, noe som setter selskaper i fare for et brudd.

For å forbli konkurransedyktig har mange selskaper tatt i bruk en DevOps-modell, som prioriterer levering av mindre pakker med kode av høy kvalitet i stedet for funksjonsrike prosjekter som tar lengre tid. I dette rammeverket samarbeider programvareutviklings- og driftsteam for å integrere testing og integrering gjennom hele prosessen. Automatisering, standardiserte prosesser og samarbeid hjelper teamene med å bevege seg raskt uten å ofre kvaliteten.

DevSecOps er en forbedring av DevOps som bygger sikkerhet inn i alle aspekter av prosessen. Målet er å løse sikkerhetsproblemer helt fra starten av prosjektet. I dette rammeverket tar hele teamet ikke bare ansvar for kvalitetssikring og kodeintegrasjon, men også sikkerhet. I praksis betyr dette at team diskuterer sikkerhetsimplikasjoner under planleggingen og begynner testing av sikkerhetsproblemer i utviklingsmiljøer, i stedet for å vente til slutten. Et annet navn for denne tilnærmingen er sikkerhet for venstre skift.

Hvorfor er DevSecOps viktig?

Det finnes mange metoder som angripere bruker for å få tilgang til en organisasjons data og ressurser, men en vanlig taktikk er å utnytte programvaresårbarheter. Disse typene brudd er kostbare, tidkrevende og, avhengig av alvorsgraden, noe som er skadelig for selskapets omdømme. DevSecOps-rammeverket reduserer risikoen for å rulle ut programvare med feilkonfigurasjoner og andre sårbarheter som uhederlige aktører kan dra nytte av.

Nøkkelkomponenter i DevSecOps

En vellykket DevSecOps-prosess inkluderer følgende komponenter:

  • Kontinuerlig integrering

    Med kontinuerlig integrering forplikter utviklere koden sin til et sentralt repositorium flere ganger om dagen. Deretter integreres og testes koden automatisk. Denne tilnærmingen gjør det mulig for team å fange opp integreringsproblemer og feil tidlig i prosessen, i stedet for å vente til slutten når det kan være flere problemer som må løses.

  • Kontinuerlig levering

    Kontinuerlig levering bygger på kontinuerlig integrering for å automatisere prosessen med å flytte kode fra bygg-miljøet til et foreløpig miljø. Når programvaren er i oppsamling, testes den, i tillegg til enhetstesting, automatisk for å sikre at brukergrensesnittet fungerer, koden er integrert, at API-ene er pålitelige, og at programvaren kan håndtere de forventede trafikkvolumene. Målet med denne tilnærmingen er konsekvent å levere produksjonsklar kode som gir verdiskapning til kundene.

  • Kontinuerlig sikkerhet

    Å bygge sikkerhet inn i hele livssyklusen for programvareutvikling er en viktig komponent i DevSecOps. Dette inkluderer trusselmodellering tidlig i prosessen og automatisert sikkerhetstesting gjennom hele livssyklusen, og starter med utviklernes egne miljøer. Ved å teste programvaren grundig for sikkerhetsproblemer tidlig og ofte, kan organisasjoner effektivt levere programvare med minimale problemer.

  • Kommunikasjon og samarbeid

    DevSecOps er svært avhengig av at enkeltpersoner og team arbeider tett sammen. Kontinuerlig integrering krever at personer samarbeider for å løse konflikter i kode, og team må kommunisere effektivt for å samle seg rundt de samme målene.

Slik implementerer du DevSecOps

Å legge til sikkerhet i DevOps-prosessen krever nøye planlegging. Start sakte med prosesser som introduserer minst friksjon for teamet og tilbyr den største sikkerhetsgevinsten. Her er noen måter å legge til sikkerhet i en typisk DevOps-sprint på.

  • Planlegging og utvikling

    Innføring av sikkerhet tidlig i utviklingssprint bidrar ikke bare til å redusere sårbarheter senere i prosessen, men det sparer også tid fordi det er enklere å løse problemer før kode er bygget og integrert. Under planlegging og utvikling kan du bruke trusselmodellering til å identifisere og redusere potensielle trusler mot programmet. Dette vil hjelpe deg med å bygge sikkerhet inn i programmet helt fra starten. Hvis du vil avdekke sikkerhetsproblemer før kode er forpliktet til det delte repositoriet, kan du implementere automatiserte kontroller, for eksempel integrerte plugin-moduler for utviklingsmiljøsikkerhet, som gir utviklere umiddelbar tilbakemelding hvis det er en potensiell sikkerhetsrisiko i koden de har skrevet. Under kodegjennomgang, kan noen med sikkerhetsekspertise gi anbefalinger for å gjøre forbedringer.

  • Kodelagring

    En av nøklene til en vellykket DevSecOps-prosess er kontinuerlig integrering. Utviklere forplikter vanligvis koden sin til et sentralt repositorium flere ganger om dagen, for å sikre at integreringsproblemer fanges opp tidlig. Det er viktig å legge til automatiserte sikkerhetskontroller i denne fasen. Dette kan omfatte skanning av tredjepartsbiblioteker og avhengigheter, enhetstesting og statisk programsikkerhetstesting. Det er også viktig å rulle ut rollebaserte tilgangskontroller for å beskytte infrastrukturen for kontinuerlig integrering og kontinuerlig levering fra angripere, som ønsker å kjøre skadelig kode eller stjele legitimasjon.

  • Bygging og testing

    Kjøring av automatiserte sikkerhetsskript i testmiljøet bidrar til å avdekke potensielle problemer, som ikke ble oppdaget tidligere. Noen av sikkerhetstestene du kan kjøre i denne fasen inkluderer dynamisk testing av programsikkerhet, skanning av infrastruktur, beholderskanning, validering av skykonfigurasjon og testing av sikkerhetsgodkjenning.

  • Produksjon

    Når programmet er rullet ut til produksjon, deltar noen organisasjoner i inntrengingstesting for å prøve å finne svakheter i det levende miljøet. I inntrengingstesting tar folk i bruk en angripers tankesett, og søker etter måter å bryte seg gjennom programmet på.

  • Drift

    Selv den beste DevSecOps-prosessen fanger ikke opp alt, så det er avgjørende å kontinuerlig overvåke programmer for sårbarheter og trusler. Analysedata kan hjelpe deg med å evaluere om sikkerhetsstillingen forbedres og fremhever områder for optimalisering.

DevSecOps-verktøy og -teknologier

Når du velger sikkerhetsverktøy, er det viktig å velge de som fungerer bra med din nåværende DevOps-teknologi. Dette vil gjøre det enklere å innlemme sikkerhet i hele prosessen. Det følgende er noen av verktøytypene du kanskje trenger:

  • Infrastruktur som kodeskanning

    For å forbedre effektiviteten bruker DevSecOps-team vanligvis åpen kilde-verktøy som Terraform til å administrere og klargjøre infrastruktur som nettverk, virtuelle maskiner og belastningsfordelinger gjennom kode, i stedet for å gjøre det manuelt. Terraform bidrar til å sikre at infrastrukturen konfigureres og oppdateres konsekvent på tvers av hundrevis eller tusenvis av servere. For å redusere risikoen for at feilkonfigurasjoner rulles ut til produksjonsmiljøet, kontrollerer infrastruktur som kodeskanningsverktøy automatisk infrastrukturen på kodenivået for manglende samsvar med sikkerhetspolicyer og standarder.

  • Statisk programsikkerhetstesting

    Før koden kompileres, begynner DevSecOps-utviklere å teste den egendefinerte koden for sikkerhetsproblemer. Dette hjelper dem med å løse problemer uten å påvirke bygget. Statiske verktøy for programsikkerhetstesting gjør denne prosessen enklere med automatiske kontroller og tilbakemeldinger i sanntid. Mange verktøy identifiserer nøyaktig hvilken kode som er risikabel og tilbyr foreslåtte løsninger.

  • Analyse av programvaresammensetning

    Én måte team bygger programmer og funksjoner mer effektivt på, er ved å bruke tredjeparts plugin-moduler og rammeverk. Disse forhåndsbygde verktøyene sparer tid, men de kan også føre til risikoer, for eksempel problemer med lisensiering, dårlig skrevet kode eller sikkerhetsproblemer. Verktøy for analyse av programvaresammensetning identifiserer åpen kilde-komponenter i programmer og evaluerer dem mot proprietære eller gratis databaser for å oppdage lisensbrudd og sikkerhets- og kvalitetsproblemer.

  • Interaktiv programsikkerhetstesting

    Under testing av kvalitetssikring eller når et program brukes, skanner interaktive programsikkerhetsverktøy koden for å finne sårbarheter og gi rapporter som identifiserer hvor i koden problemet er.

  • Dynamisk programsikkerhetstesting

    Dynamisk programsikkerhetstesting emulerer metodene en uhederlig aktør kan bruke til å angripe et program. Denne testingen forekommer mens programmet kjører og er basert på forhåndsdefinerte brukstilfeller.

  • Beholderskanning

    Beholdere brukes mye i DevSecOps fordi de hjelper utviklere med enkelt å rulle ut selvstendige kodeenheter. I en beholder finner du en beholderavbildning, som inneholder koden som kjører prosesser for beholderen. Disse avbildningene bygges imidlertid ofte ved hjelp av eksisterende avbildninger eller hentes fra offentlige repositorier. Skanneverktøy for beholdere, skann beholdere og sammenlign dem mot offentlige eller proprietære databaser for sikkerhetsproblemer for å avdekke potensielle sikkerhetsproblemer.

Anbefalte fremgangsmåter for DevSecOps

DevSecOps handler like mye om kulturendring som prosess og verktøy. Her er noen anbefalte fremgangsmåter for å gjøre det så enkelt som mulig å ta i bruk dette rammeverket.

  • Endre kulturen

    Vær klar over at folk kan ha problemer med å endre måten de arbeider på, og konflikter kan oppstå. For å hjelpe dem med å tilpasse seg, kan du tydelig kommunisere organisasjonens mål og forventninger, gi mange muligheter for åpen dialog og forutse at du må være fleksibel inntil teamene finner verktøyene, prosessen og frekvensen som fungerer best for dem.

  • Definer krav og måledata

    Opprett en minimumssikkerhetsgrunnlinje. For veiledning, se bransje- og forskriftskrav eller The Åpent verdensomspennende programsikkerhetsprosjekt® (OWASP) topp ti kritiske risikoer for nettprogrammer ogSANS Top 25-programvarefeil. Når du har definert kravene, kan du bestemme hvilke måledata du vil spore for å hjelpe deg med å overvåke fremdriften.

  • Start i det små

    Verktøy for sikkerhetsautomatisering tilbyr mange alternativer for å kontrollere kode for problemer, men hvis du aktiverer dem alle, spesielt tidlig i innføringen av DevSecOps, kan det overvelde teamet ditt. Vær forsiktig med hvilke verktøy du implementerer, og hvor mange problemer du søker etter.

  • Utfør trusselmodellering

    Utvikle en prosess for trusselmodellering, som kan være så enkel eller så detaljert og teknisk som du trenger. Bruk denne fremgangsmåten til å dokumentere en realistisk sikkerhetsvisning av programmet som inkluderer:

    • Hvordan angripere kan misbruke programmets utforming.
    • Slik løser du sårbarheter.
    • Prioritet for ulike problemer.
  • Implementer automatisering

    Automatisering er nøkkelen til å aktivere både kvalitet og hastighet i DevSecOps-prosessen. Ved å bygge inn automatiserte sikkerhetsskanninger i alle faser av kontinuerlig integrering og kontinuerlig leveringslivssyklus, vil du kunne forbedre sikkerheten til programmene uten å redusere prosessen betraktelig.

  • Behandle avhengigheter

    De fleste utviklere bruker tredjepartspakker og biblioteker til effektivt å bygge programmer. Problemet er at noen av disse løsningene har sikkerhetsfeil, og utviklere er ikke alltid opptatt av å holde dem oppdatert. Hvis du vil redusere risikoen, må du sørge for at komponentene du bruker, er vurdert for sikkerhetsrisikoer og utvikle en standardisert prosess for å oppdatere dem.

  • Evaluer og forbedre

    Vurder regelmessig hvordan prosessen fungerer, og juster etter behov for å sikre at organisasjonen oppfyller målene. Etter at en sprint er fullført, kan en diskusjon uten anklager i etterkant bidra til å avdekke forbedringsmuligheter. Analysedata og trusselinformasjon kan også hjelpe deg med å finne ut om det finnes sikkerhetsbehov som ikke oppfylles av den nåværende tilnærmingen.

DevSecOps for skyopprinnelige programmer

Skyopprinnelige programmer er utformet for skyen og er vanligvis leverandørnøytrale, slik at de kan overføres fra én sky til en annen. Utviklingsteam er utformet for å være svært skalerbare og robuste, og bygger dem vanligvis ved hjelp av mikrotjenester, beholdere og automatisering, noe som gjør dem ideelt egnet for en DevSecOps-prosess. Utvikling av kontinuerlig sikkerhet, kontinuerlig integrering og kontinuerlig levering i utviklingsprosessen for skyopprinnelige programmer, muliggjør skalerbarhet uten at det går på bekostning av sikkerheten. Bruk automatiserte sikkerhetsløsninger som Microsoft Defender for DevOps, for å hjelpe deg med å sikre koden og hele DevOps-datasamlebåndet. Når du har rullet ut programmet til skyen, fortsetter du å overvåke det for risikoer. Plattformer for beskyttelse av skyarbeidsbelastninger (CWPP) bidrar til å beskytte disse programmene og de underliggende dataene ved å oppdage og redusere trusler mot arbeidsbelastninger på tvers av miljøer med flere skyer. Løsninger for administrasjon av skysikkerhetsstatus (CSPM) oppdager og løser feilkonfigurasjoner og sårbarheter i hele miljøet.

Mer informasjon om Microsoft Sikkerhet

Microsoft Defender for Cloud

Beskytt multisky- og hybridmiljøer fra utvikling til kjøretid med omfattende skybasert plattform for programbeskyttelse (CNAPP).

Microsoft Defender for Cloud Apps

Moderniser hvordan du sikrer programmene, beskytter dataene og forhøyer statusen for programsikkerhet med denne programvare som tjeneste-løsningen.

Microsoft Defender administrasjon av status for skysikkerhet

Fokuser på de mest kritiske risikohendelsene på tvers av multiskymiljøer med kontekstavhengig administrasjon av status for skysikkerhet.

Microsoft Defender for DevOps

Få enhetlig DevOps-sikkerhetsadministrasjon på tvers av miljøer med flere skyer og flere datasamlebånd.

Vanlige spørsmål

  • DevSecOps er en prosess som integrerer sikkerhet i hele livssyklusen for programvareutvikling. Organisasjoner tar i bruk denne tilnærmingen for å redusere risikoen for å frigi kode med sikkerhetsproblemer. Gjennom samarbeid, automatisering og tydelige prosesser deler teamene ansvaret for sikkerhet, i stedet for å utsette det til slutten når det kan være mye vanskeligere og kostbart å løse problemer.

  • DevSecOps står for utvikling, sikkerhet og drift. Det refererer til prosessen med å integrere sikkerhet i alle faser av programvareutvikling.

  • Skift til venstre er et konsept i DevSecOps som refererer til å innlemme sikkerhetspraksiser helt fra begynnelsen av utviklingsprosessen.

  • DevSecOps-rammeverket inkluderer kontinuerlig integrering, kontinuerlig levering og kontinuerlig sikkerhet. Det er en metode som sikkerhets-, drifts- og sikkerhetsteam samarbeider med, og deler ansvaret for rask levering av kvalitetsprogramvare, samtidig som sikkerhetssårbarheter reduseres.

  • Det finnes ingen enkeltstående DevSecOps-prosess, men en vanlig måte å kjøre disse prosjektene på er ved å dele arbeidet inn i sprinter som inkluderer følgende komponenter: planlegging og utvikling, bygging og testing og produksjon. I løpet av sprinten bruker team automatisering for kontinuerlig å løse kvalitetssikringsproblemer, kontinuerlig integrere og kontinuerlig teste for sikkerhetsrisikoer.

Følg Microsoft