Koddistributioner
Eftersom säkerhetsuppdateringar har hög prioritet bör du utforma en pipeline som stöder regelbundna uppdateringar och kritiska säkerhetskorrigeringar.
En version är vanligtvis associerad med godkännandeprocesser med flera signeringar, kvalitetsgrindar och så vidare. Om arbetsbelastningsdistributionen är liten med minimala godkännanden kan du vanligtvis använda samma process och pipeline för att släppa en säkerhetskorrigering.
En godkännandeprocess som är komplex och tar lång tid kan fördröja en korrigering. Överväg att skapa en katastrofprocess för att påskynda korrigeringar med hög prioritet. Processen kan vara affärs- och kommunikationsprocess mellan team. Ett annat sätt är att skapa en pipeline som kanske inte innehåller alla gated-godkännanden, men som ska kunna skicka ut korrigeringen snabbt. Pipelinen bör möjliggöra snabba distributioner av återställningar som åtgärdar säkerhetskorrigeringar, kritiska buggar och koduppdateringar utanför den normala distributionslivscykeln.
Viktigt
Att distribuera en säkerhetskorrigering är en prioritet, men det bör inte ske på bekostnad av en regression eller bugg. När du utformar en nödpipeline bör du noga överväga vilka automatiserade tester som kan kringgås. Utvärdera värdet för varje test mot körningstiden. Enhetstester slutförs till exempel vanligtvis snabbt. Integrerings- eller end-to-end-tester kan köras under en längre tid.
Involvera säkerhetsteamet i planeringen och utformningen av DevOps-processen. Din automatiserade pipelinedesign bör ha flexibiliteten att stödja både vanliga distributioner och nöddistributioner. Detta är viktigt för att stödja snabb och ansvarsfull tillämpning av både säkerhetskorrigeringar och andra brådskande, viktiga korrigeringar.
Föreslagen åtgärd
Implementera en automatiserad distributionsprocess med stöd för återställningsscenarier via Azure App Services-distributionsfack.
Läs mer
Konfigurera mellanlagringsmiljöer i Azure App Service
Genomsökning av autentiseringsuppgifter
Autentiseringsuppgifter, nycklar och certifikat beviljar åtkomst till de data eller tjänster som används av arbetsbelastningen. Lagring av autentiseringsuppgifter i kod utgör en betydande säkerhetsrisk. Se till att verktygen för statisk kodgenomsökning är en integrerad del av processen för kontinuerlig integrering (CI).
Är kodgenomsökningsverktygen en integrerad del av processen för kontinuerlig integrering (CI) för den här arbetsbelastningen?
För att förhindra att autentiseringsuppgifter lagras i källkoden eller konfigurationsfilerna integrerar du kodgenomsökningsverktygen i CI/CD-pipelinen:
- Under designtiden använder du kodanalysverktyg för att förhindra att autentiseringsuppgifter skickas till källkodslagret. Analysverktygen för .NET Compiler Platform (Roslyn) inspekterar till exempel din C# eller Visual Basic kod.
- Under byggprocessen använder du pipeline-tillägg för att fånga upp autentiseringsuppgifter i källkoden. Några alternativ är GitHub Advanced Security och OWASP:s verktyg för källkodsanalys.
- Sök igenom alla beroenden, till exempel bibliotek från tredje part och ramverkskomponenter, som en del av CI-processen. Undersök sårbara komponenter som flaggas av verktyget. Kombinera den här uppgiften med andra kodgenomsökningsuppgifter som inspekterar kodomsättning, testresultat och täckning.
- Använd en kombination av dynamisk programsäkerhetstestning (DAST) och statisk programsäkerhetstestning (SAST). DAST testar programmet när det används. SAST söker igenom källkoden och identifierar sårbarheter baserat på dess design eller implementering. Vissa teknikalternativ tillhandahålls av OWASP. Mer information finns i SAST-verktyg ochsårbarhetsgenomsökningsverktyg.
- Använd genomsökningsverktyg som är specialiserade på tekniker som används av arbetsbelastningen. Om arbetsbelastningen till exempel är containeriserad kör du containermedvetna genomsökningsverktyg för att identifiera risker i containerregistret, före användning och under användning.
Föreslagna åtgärder
Införliva Secure DevOps på Azure-verktygslådan och vägledningen som publicerats av Organization for Web App Security Project (OWASP), eller en motsvarande vägledande organisation.
Läs mer
Community-länkar
Gå tillbaka till huvudartikeln: Säker distribution och testning i Azure
De automatiserade bygg- och versionspipelineerna bör uppdatera en arbetsbelastning till en ny version sömlöst utan att bryta beroenden. Utöka automatiseringen med processer som gör att korrigeringar med hög prioritet kan distribueras snabbt.
Organisationer bör dra nytta av befintlig vägledning och automatisering när de skyddar program i molnet, i stället för att börja från noll. Med hjälp av resurser och lärdomar från externa organisationer som är tidiga användare av dessa modeller kan du påskynda förbättringen av en organisations säkerhetsstatus med mindre utgifter för arbete och resurser.
Huvudpunkter
- Involvera säkerhetsteamet i planeringen och utformningen av DevOps-processen för att integrera förebyggande och detektivkontroller för säkerhetsrisker.
- Utforma automatiska distributionspipelines som möjliggör snabb distribution av återställning och återställning för att åtgärda kritiska buggar och koduppdateringar utanför den normala distributionslivscykeln.
- Integrera kodgenomsökningsverktyg i CI/CD-pipeline.
Återställning och återställning
Om något går fel bör pipelinen återställas till en tidigare fungerande version. N-1 och N+1 refererar till versioner av återställning och återställning. Med automatiska distributionspipelines kan du snabbt distribuera och återställa för att åtgärda kritiska buggar och koduppdateringar utanför den normala distributionslivscykeln.
Kan N-1- eller N+1-versioner distribueras via automatiserade pipelines där N är den aktuella distributionsversionen i produktion?