Skydda DevOps-plattformsmiljön för Nolltillit

Den här artikeln hjälper dig som DevOps-teammedlem att implementera Nolltillit principen om lägsta behörighet och skydda DevOps-plattformsmiljön. Den innehåller innehåll från vår e-bok Skydda Enterprise DevOps-miljöer och visar bästa praxis för hantering av hemligheter och certifikat.

Moderna företag förlitar sig på DevOps-plattformar för distribution, inklusive pipelines och produktionsmiljöer som utvecklare behöver för att vara produktiva. Tidigare beaktade inte programsäkerhetsmetoder den ökade attackytan som dagens pipelines och produktionsmiljöer exponerar. När hackare flyttas åt vänster och riktar in sig på överordnade verktyg behöver du innovativa metoder för att skydda dina DevOps-plattformsmiljöer.

I diagrammet nedan ser du att DevOps-plattformsmiljön ansluter till programmiljön och till ci/CD-pipelinetillägg (continuous integration and continuous delivery ).

Diagrammet illustrerar DevOps-plattformsmiljöer och säkerhetshot enligt beskrivningen i ovan länkad e-bok och sammanfattas i relaterade artiklar som är länkade häri.

CICD-pipelinetillägg erbjuder hackare möjligheter att delta i privilegiereskaleringar från programmiljön. Tillägg och integreringar ökar sårbarheter på attackytan. Det är viktigt att skydda mot intrångshot mot skadlig kod.

Hur och varför angripare riktar in sig på pipelines

Pipelines och produktionsmiljöer kan vara oberoende av standardmetoder och processer för programsäkerhet. De kräver vanligtvis autentiseringsuppgifter på hög nivå som kan ge djup och meningsfull åtkomst till angripare.

Angripare hittar nya sätt att kompromettera system, men de vanligaste attackvektorerna för pipelines är:

  • Extraherar körningsvariabler och argumentinmatning.
  • Skript som hämtar tjänstprinciper eller autentiseringsuppgifter från pipelines.
  • Felkonfigurerade personliga åtkomsttoken som gör att alla med nyckeln kan komma åt DevOps-plattformsmiljön.
  • Sårbarheter och felkonfigurationer i integrerade verktyg från tredje part som kräver åtkomst till koden (ofta skrivskyddad, men ibland skrivåtkomst). Integrerade verktyg kan omfatta testramverk, statisk programsäkerhetstestning (SAST) och dynamisk programsäkerhetstestning (DAST).

Metodtips för hantering av hemligheter och certifikat

Att undvika ett oåterkalleligt intrång kan vara så enkelt som effektiv hantering av hemligheter. Diagrammet nedan visar ett exempel på effektiv hemlighet, lösenord, åtkomsttoken och certifikathantering.

Diagrammet illustrerar hemlighets- och certifikathantering enligt beskrivningen nedan.

Som du ser i diagrammet ovan startar utvecklaren en version för en kundbegäran. GitHub startar sedan en löpare med roll-ID och hemligt ID för valvapprollen. Den betrodda entiteten begär regelbundet ett nytt hemligt ID från valvet och hämtar GitHub Secret-hemligt ID från GitHub. Valvet använder roll-ID för GitHub Secrets och hemligt ID för att logga in och hämta kodsigneringstillgångar. Runner anpassar och kodsignar mobilappen.

Följande metodtips hjälper dig att skapa en säker konfiguration som minimerar exponering av hemligheter och parametrar.

  • Tillhandahålla säker lagring för hemligheter och certifikat i varje fas av programmets livscykel. Utveckla alltid som om det vore ett projekt med öppen källkod. Se till att team lagrar hemligheter i nyckelvalv i stället för i koden eller i teammiljöer. Använd Azure Key Vault-molntjänsten för säker lagring och åtkomst till hemligheter.
  • Konfigurera Azure för att lita på GitHubs OIDC som en federerad identitet. Med OpenID-Anslut (OIDC) kan dina GitHub Actions-arbetsflöden komma åt resurser i Azure utan att behöva lagra Azure-autentiseringsuppgifterna som github-hemligheter med lång livslängd.

Fler metodtips för Säkerhet i DevOps-miljön

För att skydda dig mot säkerhetsincidenter finns nedan fler metodtips för att stärka dina DevOps-plattformsmiljöer. Hitta en detaljerad beskrivning av dessa rekommendationer i vår eBook för att skydda Enterprise DevOps-miljöer .

  • Utrusta varje DevOps-plattformsmiljö med spårningsspår.Granska granskningsloggar för att spåra vem som fick åtkomst, vilken ändring som inträffade och datum/tid för alla aktiva system. Inkludera specifikt DevOps-plattformar med CI/CD-pipelines som flödar in i produktion. Granskningsloggar för DevOps-verktyg ger robusta sätt att åtgärda hot snabbare, hitta och varna om misstänkta aktiviteter för eventuella överträdelser eller sårbarheter och hitta potentiella data eller missbruk av privilegier. Se till att detaljerade kontroll- och granskningsloggar är tillgängliga i varje miljö.
  • Skydda programvaruförsörjningskedjan. Med varje bibliotek som du tar med i din kodbas expanderar du leverantörskedjan för programvara och ärver beroenden från varje projekt eller verktyg med öppen källkod. Ta med försiktighet bort onödiga bibliotek och komponenter med öppen källkod för att minska angreppsytan i din programvaruförsörjningskedja.
  • Automatisera genomsökningar av IaC-mallar (Infrastruktur som kod). Med IaC-miljöer är det enkelt att söka efter felkonfigurationer, efterlevnadsgranskningar och principproblem. Genom att implementera efterlevnadskontroller och åtkomstkontroller ökar säkerhetsstatusen för hela infrastrukturen. Kontrollera säkerheten för verktygsintegreringar från tredje part som uppfyller systemkraven för automatisering.
  • Automatisera arbetsflöden för godkännanden. För att alla arbetsflöden för godkännande ska kunna skicka kod till produktion måste vissa automatiska eller manuella kontroller bekräfta säkerhet, affärsvärde, status och kvalitet för varje begäran. Dessa kontroller fungerar som en grind mellan utveckling och produktion för att förhindra överbelastningsattacker och hackare som matar in kod i produktionsmiljöer utan att flagga eller utlösa en avisering.
  • Tillåt endast verifierade DevOps-verktygsintegreringar. Precis som i utvecklarmiljöer levereras DevOps-verktyg med tillägg och integreringar för att göra DevOps-teamet effektivt och säkert. Bekräfta att verifierade integreringar kräver minsta möjliga behörighet för att utföra sitt arbete. Implementera åtkomst med minsta möjliga behörighet när det är möjligt och säkerställa rätt nivå för läs-/skrivbehörigheter. Lär dig hur du inaktiverar eller begränsar GitHub Actions för din organisation.

Nästa steg