Dela via


Security Control v3: DevOps-säkerhet

DevOps Security omfattar de kontroller som rör säkerhetsteknik och -åtgärder i DevOps-processerna, inklusive distribution av kritiska säkerhetskontroller (till exempel testning av statisk programsäkerhet, sårbarhetshantering) före distributionsfasen för att säkerställa säkerheten under hela DevOps-processen. Den innehåller även vanliga ämnen som hotmodellering och säkerhet för programvaruförsörjning.

DS-1: Utföra hotmodellering

CIS-kontroller v8 ID:n NIST SP 800-53 r4 ID:n PCI-DSS ID(er) v3.2.1
16.10, 16.14 SA-15 6.5, 12.2

Säkerhetsprincip: Utför hotmodellering för att identifiera potentiella hot och räkna upp de minimerande kontrollerna. Se till att din hotmodellering har följande syften:

  • Skydda dina program och tjänster i produktionsmiljön.
  • Skydda artefakterna, den underliggande CI/CD-pipelinen och andra verktygsmiljöer som används för att skapa, testa och distribuera.

Hotmodellering bör minst innehålla följande aspekter:

  • Definiera säkerhetskrav för programmet. Se till att dessa krav hanteras på lämpligt sätt i hotmodellering.
  • Analysera programkomponenter, dataanslutningar och deras relation. Se till att den här analysen även innehåller uppströms- och nedströmsanslutningar utanför programomfånget.
  • Lista de potentiella hot och attackvektorer som dina programkomponenter, dataanslutningar och överordnade och underordnade tjänster kan exponeras för.
  • Identifiera tillämpliga säkerhetskontroller som kan användas för att minimera de uppräknade hoten och identifiera eventuella luckor i kontrollerna (t.ex. säkerhetsrisker) som kan kräva ytterligare behandlingsplaner.
  • Räkna upp och utforma de kontroller som kan minska de identifierade säkerhetsriskerna.

Azure-vägledning: Använd verktyg för hotmodellering som Microsofts verktyg för hotmodellering med en inbäddad Mall för Azure-hotmodellering för att driva din hotmodelleringsprocess. Använd STRIDE-modellen för att räkna upp hot från både interna och externa och identifiera de kontroller som är tillämpliga. Se till att hotmodelleringsprocessen innehåller hotscenarier i DevOps-processen, till exempel skadlig kodinmatning via en osäker artefaktlagringsplats med en felkonfigurerad princip för åtkomstkontroll.

Om du inte kan använda ett verktyg för hotmodellering bör du åtminstone använda en enkätbaserad hotmodelleringsprocess för att identifiera hoten.

Se till att hotmodellerings- eller analysresultaten registreras och uppdateras när det sker en större säkerhetspåverkan i ditt program eller i hotlandskapet.

Implementering och ytterligare kontext:

Intressenter för kundsäkerhet (läs mer):

DS-2: Säkerställ säkerheten för programvaruförsörjningskedjan

CIS-kontroller v8 ID:n NIST SP 800-53 r4 ID:n PCI-DSS ID(er) v3.2.1
16.4, 16.6, 16.11 SA-12, SA-15 6.3, 6.5

Säkerhetsprincip: Se till att ditt företags SDLC (Software Development Lifecycle) eller processen innehåller en uppsättning säkerhetskontroller för att styra interna och tredje parts programvarukomponenter (inklusive både upphovsrättsskyddad programvara och programvara med öppen källkod) där dina program har beroenden. Definiera kriterier för att förhindra att sårbara eller skadliga komponenter integreras och distribueras i miljön.

Säkerhetskontrollerna för programvaruförsörjningskedjan bör åtminstone innehålla följande aspekter:

  • Identifiera de överordnade beroenden som krävs i utvecklings-, bygg-, integrerings- och distributionsfasen.
  • Inventera och spåra programvarukomponenterna internt och från tredje part för kända säkerhetsrisker när det finns en korrigering tillgänglig i överordnad.
  • Utvärdera sårbarheter och skadlig kod i programvarukomponenterna med hjälp av statisk och dynamisk programtestning för okända sårbarheter.
  • Se till att säkerhetsrisker och skadlig kod minimeras med lämplig metod. Detta kan omfatta lokal eller överordnad källkodskorrigering, funktionsundantag och/eller tillämpning av kompenserande kontroller om den direkta begränsningen inte är tillgänglig.

Om komponenter från tredje part med stängd källa används i produktionsmiljön kan du ha begränsad insyn i dess säkerhetsstatus. Du bör överväga ytterligare kontroller som åtkomstkontroll, nätverksisolering och slutpunktssäkerhet för att minimera påverkan om det finns en skadlig aktivitet eller säkerhetsrisk som är associerad med komponenten.

Azure-vägledning: För GitHub-plattformen säkerställer du säkerheten för programvaruförsörjningskedjan via följande funktioner eller verktyg från GitHub Advanced Security eller GitHubs inbyggda funktion:

  • Använd Dependency Graph för att genomsöka, inventera och identifiera alla ditt projekts beroenden och relaterade sårbarheter via rådgivande databas.
  • Använd Dependabot för att säkerställa att det sårbara beroendet spåras och åtgärdas och se till att din lagringsplats automatiskt håller jämna steg med de senaste versionerna av de paket och program som den är beroende av.
  • Använd funktionen för inbyggd GitHub-kodgenomsökning för att genomsöka källkoden när du hämtar koden från extern.
  • Använd Azure Defender för molnet för att integrera sårbarhetsbedömning för containeravbildningen i CI/CD-arbetsflödet.

För Azure DevOps kan du använda tillägg från tredje part för att implementera liknande kontroller för inventering, analysera och åtgärda programvarukomponenter från tredje part och deras sårbarheter.

Implementering och ytterligare kontext:

Intressenter för kundsäkerhet (läs mer):

DS-3: Säker DevOps-infrastruktur

CIS-kontroller v8 ID:n NIST SP 800-53 r4 ID:n PCI-DSS ID(er) v3.2.1
16.7 CM-2, CM-6, AC-2, AC-3, AC-6 2.2, 6.3, 7.1

Säkerhetsprincip: Se till att DevOps-infrastrukturen och DevOps-pipelinen följer rekommenderade säkerhetsmetoder i olika miljöer, inklusive bygg-, test- och produktionssteg. Detta inkluderar vanligtvis säkerhetskontrollerna för följande omfång:

  • Artefaktlagringsplatser som lagrar källkod, skapade paket och bilder, projektartefakter och affärsdata.
  • Servrar, tjänster och verktyg som är värdar för CI/CD-pipelines.
  • KONFIGURATION av CI/CD-pipeline.

Azure-vägledning: Som en del av tillämpningen av Azure Security Benchmark på säkerhetskontrollerna för DevOps-infrastrukturen prioriterar du följande kontroller:

  • Skydda artefakter och den underliggande miljön för att säkerställa att CI/CD-pipelines inte blir vägar för att infoga skadlig kod. Granska till exempel din CI/CD-pipeline för att identifiera eventuella felkonfigurationer i kärnområden i Azure DevOps, till exempel organisation, projekt, användare, pipelines (build & release), anslutningar och byggagent för att identifiera eventuella felkonfigurationer som öppen åtkomst, svag autentisering, osäker anslutningskonfiguration och så vidare. För GitHub använder du liknande kontroller för att skydda organisationens behörighetsnivåer
  • Konfigurera identitets-/rollbehörigheter och berättigandeprinciper i Azure AD, interna tjänster och CI/CD-verktyg i din pipeline för att säkerställa att ändringar i pipelines har auktoriserats.
  • Undvik att ge permanent "stående" privilegierad åtkomst till mänskliga konton, till exempel utvecklare eller testare, med hjälp av funktioner som Hanterade Azure-identifierare, just-in-time-åtkomst.
  • Ta bort nycklar, autentiseringsuppgifter och hemligheter från kod och skript som används i CI/CD-arbetsflödesjobb och behåll dem i nyckelarkiv eller Azure Key Vault.
  • Om du kör lokalt installerade bygg-/distributionsagenter följer du Azure Security Benchmark-kontroller som nätverkssäkerhet, hållning och sårbarhetshantering samt slutpunktssäkerhet för att skydda din miljö.

Implementering och ytterligare kontext:

Intressenter för kundsäkerhet (läs mer):

DS-4: Integrera säkerhetstestning för statiska program i DevOps-pipeline

CIS-kontroller v8 ID:n NIST SP 800-53 r4 ID:n PCI-DSS ID(er) v3.2.1
16.12 SA-11 6.3, 6.5

Säkerhetsprincip: Se till att SAST (Static Application Security Testing) är en del av styrningskontrollerna i CI/CD-arbetsflödet. Inställningen kan anges baserat på testresultaten för att förhindra att sårbara paket checkar in på lagringsplatsen, bygger in i paketen eller distribuerar till produktionen.

Azure-vägledning: Integrera SAST i din pipeline så att källkoden kan genomsökas automatiskt i DITT CI/CD-arbetsflöde. Azure DevOps Pipeline eller GitHub kan integrera verktyg nedan och SAST-verktyg från tredje part i arbetsflödet.

  • GitHub CodeQL för källkodsanalys.
  • Microsoft BinSkim Binary Analyzer för Windows och *nix binär analys.
  • Azure DevOps Credential Scanner och inbyggd GitHub-hemlighetsgenomsökning efter genomsökning av autentiseringsuppgifter i källkoden.

Implementering och ytterligare kontext:

Intressenter för kundsäkerhet (läs mer):

DS-5: Integrera dynamisk programsäkerhetstestning i DevOps-pipeline

CIS-kontroller v8 ID:n NIST SP 800-53 r4 ID:n PCI-DSS ID(er) v3.2.1
16.12 SA-11 6.3, 6.5

Säkerhetsprincip: Se till att dynamisk programsäkerhetstestning (DAST) ingår i styrningskontrollerna i CI/CD-arbetsflödet. Inställningen kan ställas in baserat på testresultaten för att förhindra att sårbarheter byggs in i paketen eller distribueras till produktionen.

Azure-vägledning: Integrera DAST i din pipeline så att körningsprogrammet kan testas automatiskt i din CI/CD-arbetsflödesuppsättning i Azure DevOps eller GitHub. Automatiserad penetrationstestning (med manuell assisterad validering) bör också ingå i DAST.

Azure DevOps Pipeline eller GitHub stöder integrering av DAST-verktyg från tredje part i CI/CD-arbetsflödet.

Implementering och ytterligare kontext:

Intressenter för kundsäkerhet (läs mer):

DS-6: Framtvinga arbetsbelastningssäkerhet under Hela DevOps-livscykeln

CIS-kontroller v8 ID:n NIST SP 800-53 r4 ID:n PCI-DSS ID(er) v3.2.1
7.5, 7.6, 7.7, 16.1, 16.7 CM-2, CM-6, AC-2, AC-3, AC-6 6.1, 6.2, 6.3

Säkerhetsprincip: Se till att arbetsbelastningen skyddas under hela livscykeln under utvecklings-, testnings- och distributionsfasen. Använd Azure Security Benchmark för att utvärdera kontrollerna (till exempel nätverkssäkerhet, identitetshantering, privilegierad åtkomst och så vidare) som kan ställas in som skyddsräcken som standard eller flyttas åt vänster före distributionsfasen. Se särskilt till att följande kontroller finns på plats i DevOps-processen:

  • Automatisera distributionen med hjälp av Azure- eller tredjepartsverktyg i CI/CD-arbetsflödet, infrastrukturhantering (infrastruktur som kod) och testning för att minska mänskliga fel och angreppsyta.
  • Se till att virtuella datorer, containeravbildningar och andra artefakter skyddas från skadlig manipulering.
  • Genomsöka arbetsbelastningsartefakter (med andra ord containeravbildningar, beroenden, SAST- och DAST-genomsökningar) före distributionen i CI/CD-arbetsflödet
  • Distribuera sårbarhetsbedömning och hotidentifiering i produktionsmiljön och använd dessa funktioner kontinuerligt under körningen.

Azure-vägledning: Vägledning för virtuella Azure-datorer:

  • Använd Azure Shared Image Gallery för att dela och kontrollera åtkomsten till dina bilder av olika användare, tjänstens huvudnamn eller AD-grupper i din organisation. Använd rollbaserad åtkomstkontroll i Azure (Azure RBAC) för att säkerställa att endast behöriga användare kan komma åt dina anpassade avbildningar.
  • Definiera de säkra konfigurationsbaslinjerna för de virtuella datorerna för att eliminera onödiga autentiseringsuppgifter, behörigheter och paket. Via anpassade avbildningar, Azure Resource Manager-mall och/eller Azure Policy gästkonfiguration för att distribuera och framtvinga dessa konfigurationsbaslinjer.

Vägledning för Azure-containertjänster:

  • Använd Azure Container Registry (ACR) för att skapa ditt privata containerregister där en detaljerad åtkomst kan begränsas via Azure RBAC, så att endast auktoriserade tjänster och konton kan komma åt containrarna i det privata registret.
  • Använd Defender för Azure Container Registry för sårbarhetsbedömning av bilderna i din privata Azure Container Registry. Dessutom kan du använda Azure Defender för molnet för att bearbeta genomsökning av containeravbildningar som en del av dina CI/CD-arbetsflöden.

För serverlösa Azure-tjänster använder du liknande kontroller för att säkerställa att säkerhetskontroller flyttas till fasen före distributionen.

Implementering och ytterligare kontext:

Intressenter för kundsäkerhet (läs mer):

DS-7: Aktivera loggning och övervakning i DevOps

CIS-kontroller v8 ID:n NIST SP 800-53 r4 ID:n PCI-DSS ID(er) v3.2.1
8.2, 8.5, 8.9, 8.11 AU-3, AU-6, AU-12, SI-4 10.1, 10.2, 10.3, 10.6

Säkerhetsprincip: Se till att loggnings- och övervakningsomfånget omfattar icke-produktionsmiljöer och CI/CD-arbetsflödeselement som används i DevOps (och andra utvecklingsprocesser). De sårbarheter och hot som riktas mot dessa miljöer kan medföra betydande risker för produktionsmiljön om de inte övervakas korrekt. Händelser från CI/CD-kompilerings-, test- och distributionsarbetsflödet bör också övervakas för att identifiera avvikelser i CI/CD-arbetsflödesjobben.

Azure-vägledning: Aktivera och konfigurera granskningsloggningsfunktionerna i icke-produktions- och CI/CD-verktygsmiljöer (till exempel Azure DevOps och GitHub) som används under hela DevOps-processen.

Händelser från Azure DevOps och GitHub CI/CD fungerar för bygg-, test- och distributionsjobben bör också övervakas för att identifiera eventuella undantagsresultat i CI/CD-jobben.

Mata in ovanstående loggar och händelser i Azure Sentinel eller andra SIEM-verktyg via loggningsströmmen eller API:et för att säkerställa att säkerhetsincidenterna övervakas korrekt och prioriteras för hantering.

Följ Azure Security Benchmark – Loggning och hotidentifiering som vägledning för att implementera dina loggnings- och övervakningskontroller för arbetsbelastningen.

Implementering och ytterligare kontext:

Intressenter för kundsäkerhet (läs mer):