Upprätta ett område för utvecklingssäkerhet

Den här artikeln hjälper säkerhets- och teknikteam att upprätta och modernisera ett område för utvecklingssäkerhet. Det här området hjälper säkerhets-, teknik- och teknikteam att se till att programvara utformas, byggs, integreras och distribueras på ett säkert sätt – utan att innovationen går långsammare.

Säkerhetsdiscipliner är grupper av relaterade säkerhetsarbete som hjälper organisationer att konsekvent leverera säkerhetsresultat i hela teknikegendomen. Inom säkerhetsimplementeringsmodellen hjälper discipliner till att tillhandahålla en brygga mellan affärsscenarier och teknisk implementering, vilket säkerställer att säkerhetsinvesteringar omvandlas till verkliga mätbara resultat som en del av säkerhetsimplementeringsmodellen.

Varför denna disciplin?

Programvaran är djupt sammankopplad med identiteter, data, infrastruktur och affärsprocesser. När utvecklingssäkerheten är svag eller inkonsekvent kan varje programvaruversion introducera nya sårbarheter som angripare utnyttjar för att få åtkomst till bredare organisationstillgångar.

Utan ett effektivt område för utvecklingssäkerhet upplever organisationer ofta:

  • Ökad risk för programvarusårbarheter som introducerades under utvecklingen.
  • Programkompromettering som möjliggör lateral förflyttning mellan identiteter och data.
  • Avbrott i verksamheten och intäkter.
  • Exponering eller missbruk av kund- och reglerade data.
  • Ackumulering av tekniska skulder som ökar långsiktiga risker och reparationskostnader.

Ett starkt säkerhetsområde för utveckling säkerställer att varje version minskar risken i stället för att förvärra den.

Uppdrag och resultat

Utvecklingssäkerhetsområdet minskar organisationens risker genom att se till att all programvara, oavsett om den utvecklas internt eller av partner, utformas, byggs, integreras och distribueras i enlighet med säkerhetsstandarder, utan att fördröja leveransen eller innovationen.

Organisationer som utvecklar denna disciplin till mognad uppnår:

  • Säkerhet inbyggd i utvecklingsprocesser i stället för att läggas till sent.
  • Tidigare identifiering och reparation av design- och implementeringsfel.
  • Mer förutsägbara och säkra lanseringscykler.
  • Minskad omarbetning, akuta korrigeringar och driftstörningar.
  • Lägre ackumulering av tekniska skulder och säkerhetsskulder över tid.

Utvecklingssäkerhet säkerställer att säkerhetsstatusen förbättras kontinuerligt med varje version, i stället för att regelbundet återställas.

Ändringar i teamarbete

Det är viktigt att ett utvecklingssäkerhetsområde möter utvecklare och produktteam där de befinner sig, fokuserar n integrera säkerhet i befintliga utvecklingsarbetsflöden, i stället för att införa kontroller i sen fas, friktionsintensiva granskningsprocesser eller till och med hoppa över säkerheten i utvecklingsprocesser.

Den här metoden beskrivs ofta som att flytta åt vänster och introducera säkerhetstänkande tidigare i idé, design och implementering, när problem är enklare och billigare att åtgärda. Att flytta vänster betyder inte att säga nej tidigare i processen. I stället introduceras en säkerhetsinformerad diskussion tidigt för att förbättra produktbesluten och säkerställa att lösningarna uppfyller säkerhets- och affärskraven.

Viktiga principer är:

  • Tidig integrering: Överväg säkerhet under idé och design, inte bara testning
  • Samordning för utvecklare: Möt utvecklings- och produktteam där de redan arbetar
  • Liten, inkrementell förändring: Föredrar automatisering och förbättringar med låg friktion
  • Kontinuerlig förbättring: Behandla säkerhet som ett pågående område, inte en milstolpe

Med tiden minskar konsekvent integrering brandövningar och påskyndar leveransen i stället för att sakta ned den.

Så här tillämpar du den här disciplinen

Om du vill tillämpa utvecklingssäkerhetsområdet effektivt fokuserar du på att upprätta en konsekvent metod för att skapa och underhålla säkra program och tjänster i hela organisationen:

  1. Definiera en säker utvecklingsstrategi som är anpassad till affärsrisker
    Upprätta en tydlig metod för hur program och tjänster utformas, byggs och underhålls för att minska risken för kompromisser och skydda viktiga affärsfunktioner.
  2. Bädda in säkerhet i utveckling och tekniska processer
    Se till att säkerhetsrutinerna är integrerade i planerings-, design-, utvecklings- och distributionsaktiviteter i stället för att tillämpas i efterhand.
  3. Upprätta standardiserade metoder för säker utveckling
    Ge tydlig vägledning för att säkerställa att säkra kodnings-, testnings- och lanseringsmetoder tillämpas konsekvent i team och projekt.
  4. Anpassa utvecklingssäkerhet till kritiska tillgångar och affärsscenarier
    Prioritera skydd för program och tjänster som stöder värdefulla tillgångar och viktiga affärsåtgärder.
  5. Kontinuerligt bättre baserat på risker, sårbarheter och feedback
    Använd insikter från sårbarheter, incidenter och testresultat för att stärka utvecklingsmetoderna och minska risken över tid.

Hantera ändringar

Modern utvecklingssäkerhet implementeras vanligtvis via en DevSecOps-metod som kombinerar flexibel leverans med viktiga styrnings- och kvalitetsrutiner före lanseringen.

I stället för att välja mellan hastighet och säkerhet fokuserar DevSecOps på att skydda viktiga aspekter av utvecklingslivscykeln för att minska akuta risker utan att hindra snabba lanseringscykler:

Skydda designen – Använd beprövade säkerhetsdesignmönster och verifiera design genom hotmodellering. Skydda koden – Följ säkra kodningsmetoder och validera programvara och beroenden. Säkra pipelinen – Verifiera pipeline-processen och skydda CI/CD-systemen från kompromettering och obehöriga ändringar. Se till att det går att spåra ändringar i pipelinen och programvaran som går via pipelinen. Säkra åtgärder – Se till att distribuerade arbetsbelastningar följer bästa praxis för konfiguration, korrigering och drift.

Teams kan förbättra resultatet genom att kontinuerligt förfina samarbetet mellan utveckling, säkerhet och åtgärder, balansera funktionella leveransmål med tillförlitlighet och riskreducering.

DevSecOps-strategi som kombinerar traditionella utvecklingsmetoder med agila tekniker.

Den här kontinuerliga inkrementella förbättringen bör tillämpas på både arbetsproduktion (programvarukod som produceras i livscykeln) samt mognaden av själva utvecklingslivscykeln.

Definiera en DevSecOps-process

Utvecklingssäkerhet implementeras ofta via en DevSecOps-driftsmodell som utvecklas över tid i stället för att verka helt bildad. DevSecOps sammanför utveckling, säkerhet och åtgärder för att uppnå bättre resultat genom kontinuerlig förbättring.

De flesta organisationer går igenom de här stegen:

Utveckling (Dev) – Den första produktionsversionen fokuserar på att leverera en minimalt livskraftig produkt (MVP) som uppfyller viktiga affärskrav. DevOps – Efter den första versionen fokuserar teamen på snabb iteration, driftstabilitet och styrning genom kontinuerlig leverans. DevSecOps – Allt eftersom samarbetet mognar fungerar utveckling, säkerhet och åtgärder tillsammans för att kontinuerligt förfina processer och balansera hastighet, risk och tillförlitlighet.

DevSecOps-strategi som kombinerar traditionella kvalitetskontroller och flexibel utveckling.

Den här utvecklingen gör det möjligt för organisationer att förbättra säkerhetsresultaten utan att offra flexibilitet eller innovation.

Upprätta en säker MVP-baslinje

Ett viktigt steg i den här modellen är att definiera vad som utgör en minsta livskraftig produkt (MVP) ur utvecklings-, säkerhets- och driftsperspektiv. Att upprätta den här delade baslinjen skapar klarhet mellan teamen och möjliggör konsekventa förbättringar över tid.

Komponent Detaljer
Dev(elopment) Se till att programvaran uppfyller minimikraven för företag och funktioner.
Sek(urity) Se till att programvaran uppfyller minimikraven för säkerhet och efterlevnad.
Op(eration)s Se till att programvaran uppfyller minimikraven för kvalitet, tillförlitlighet och driftberedskap.

MVP-kraven varierar beroende på organisation och bransch och påverkas av riskaptit, regleringsexponering och affärskritiskhet. Dessa krav utvecklas ofta när organisationen, hotlandskapet och leveransmodellerna ändras.

Kontinuerlig programvaruförbättring

Efter den första produktionsversionen övergår arbetsbelastningarna i kontinuerliga förbättringscykler. I den här fasen förfinar utveckling, säkerhet och åtgärder både programvaran och leveransprocessen. Säkerhetsinsatser fokuserar på:

  • Integrera säkerhet internt i utvecklingsarbetsflöden med samma verktyg och prioriteringsmodeller som andra tekniska arbeten
  • Identifiera, prioritera och åtgärda säkerhetsbuggar snabbt som en del av standardversionscyklerna.

Den här metoden överensstämmer med Microsoft SFI-utbildningar (Secure Future Initiative), till exempel prPaved Paths, där säkra metoder är inbyggda i plattformar och processer i stället för att tillämpas externt.

Med tiden hjälper den här kontinuerliga inlärningen teamen att förfina kraven, effektivisera samarbetet och bättre balans mellan leveranshastighet, säkerhet och tillförlitlighet.

Disciplinroller och medarbetare

Dev Security-disciplinen körs vanligtvis av team som utvecklar appar och produkter.

Primära roller i det här området omfattar vanligtvis:

  • Teknikleverans och produktchefer
  • Programvaruutvecklare (inklusive AI-utveckling)
  • Programvarusäkerhetstekniker
  • DevOps och plattformstekniker
  • Testnings- och kvalitetstekniska roller
  • Säkerhetsroller för leveranskedja och beroenden

Viktiga medarbetare är:

  • Företags- och teknikledarskap – Tillhandahålla sponsring och prioritering
  • Arkitekturroller – Vägleda beslut om säker design och integrering
  • Roller för säkerhetsstrategi, integrering och styrningsdisciplin – Tillhandahålla policy, utbildning och tillsyn
  • Infrastruktur- och plattformsteam – Aktivera säkra utvecklingsmiljöer
  • Security Operations (SecOps) – Övervaka och svara när program attackeras

Anpassning till andra områden

Utvecklingssäkerhet är nära integrerat med andra SAF-områden:

  • Åtkomst och identiteter – Skyddar utvecklar-, arbetsbelastnings- och tjänstidentiteter.
  • Infrastruktursäkerhet – Skyddar plattformar som kör program och pipelines.
  • Datasäkerhet – Säkerställer att känsliga data skyddas under hela programvarans livscykel.
  • SecOps – Identifierar och svarar på attacker på programnivå.
  • Säkerhetsstrategi, integrering och styrning – anpassar utvecklingsmetoderna till företagets riskprioriteringar.

Tillsammans säkerställer dessa områden att programvarusäkerhet stöder bredare affärs- och säkerhetsresultat.

Anpassning till teknikpelarna

För att genomföra strategin för utvecklingssäkerhetsområdet krävs säkerhetskontroller i flera teknikpelare.

Utvecklingssäkerhet - mappning till teknikpelare.

Anpassningen till teknikpelarna omfattar:

  • Identiteter: Skyddar utvecklar- och arbetsbelastningsidentiteter och autentiseringsuppgifter.
  • Slutpunkter: Skyddar utvecklararbetsstationer och byggsystem.
  • Infrastruktur: Skyddar plattformar som är värdar för kod, pipelines och arbetsbelastningar.
  • Appar: Utgör ett huvudsakligt fokus för säkerhetsrutiner inom utveckling.
  • Data: Skyddar data som används, genereras och lagras av program.
  • Nätverk: Utformar programvara för säker drift på ej betrodda nätverk.
  • AI: Skyddar AI-komponenter och modeller som används i moderna program.

Den här bredden säkerställer att disciplinen hanterar verkliga angreppsvägar.

Vad händer härnäst?

Ytterligare vägledning för utvecklingsstrategi finns i strategin för utvecklingssäkerhet.

Gå en workshop

Microsoft Unified erbjuder expertledda workshops som hjälper organisationer att modernisera sin dev-säkerhetsdisciplin. Dessa workshops omfattar:

  • Arkitektur- och strategiworkshopsSecurity Adoption Framework (SAF) – Arkitekturdesignsession: Infrastruktur- och utvecklingssäkerhetsworkshop fokuserar på att påskynda modernisering och integrering av utvecklingssäkerhet med infrastruktursäkerhet. Den här workshopen är tillgänglig som en diskussion på mindre än fyra timmar som fokuserar på viktiga lärdomar och bästa praxis.
  • Technology adoption workshops: Microsoft Unified har workshops som hjälper organisationer att lära sig om, planera, implementera och optimera användningen av Microsoft Development Security Technology enligt det här diagrammet.

Workshops för utvecklingsteknikimplementering

Granska Microsofts säkerhetsutvecklingslivscykel

Livscykeln för Microsoft kontinuerlig säkerhetsutveckling ger en metod för att på ett säkert sätt utveckla programvara. SDL (Security Development Lifecycle) är den metod Microsoft använder för att integrera säkerhet i DevOps-processer (kallas ibland en DevSecOps-metod). Säkerhetsvägledningen för SAF-utveckling hjälper dig att anpassa SDL-metoden och -metoderna till din organisation.

Du kan använda de metoder som beskrivs i SDL-metoden för alla typer av programvaruutveckling och alla plattformar, från klassiska vattenfall till moderna DevOps-metoder. Den här allmänt tillämpliga programvarusäkerhetsmetoden fungerar för alla typer av programvara och plattformar.

Mer information finns i Microsoft Security Development Lifecycle (SDL).

Effektiv utvecklingssäkerhet kräver att du följer en säkerhetsutvecklingslivscykel (SDL) som Microsoft Security Development Lifecycle (SDL)

Nästa steg

Lär dig mer om övergången från DevOps till DevSecOps.