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 följande diagram ser du att DevOps-plattformsmiljön ansluter till programmiljön och till ci/CD-pipelinetillägg (continuous integration and continuous delivery ).
CI/CD-pipelinetillägg erbjuder hackare möjligheter att delta i behörighetseskaleringar 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 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. Följande diagram illustrerar ett exempel på effektiv hemlighet, lösenord, åtkomsttoken och certifikathantering.
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 hemlighets- och parameterexponering.
- 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 Connect (OIDC) kan dina GitHub Actions-arbetsflöden komma åt resurser i Azure utan att behöva lagra Azure-autentiseringsuppgifterna som github-hemligheter som länge funnits.
Fler metodtips för Säkerhet i DevOps-miljön
För att skydda dig mot säkerhetsincidenter kan du läsa följande 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 som uppfyller kraven för automatiseringssystemet.
- 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
- Skydda utvecklarmiljön hjälper dig att implementera Nolltillit principer i dina utvecklingsmiljöer med bästa praxis för minsta möjliga behörighet, grensäkerhet och förtroendeverktyg, tillägg och integreringar.
- Genom att bädda in Nolltillit säkerhet i utvecklararbetsflödet kan du snabbt och säkert förnya dig.
- Skydda DevOps-miljöer för Nolltillit beskriver metodtips för att skydda dina DevOps-miljöer med en Nolltillit metod för att hindra hackare från att kompromettera utvecklarrutor, infektera versionspipelines med skadliga skript och få åtkomst till produktionsdata via testmiljöer.
- Implementera Nolltillit principer enligt beskrivningen i memorandum 22-09 (till stöd för us executive order 14028, Improving the Nation's Cyber Security) med hjälp av Microsoft Entra ID som ett centraliserat identitetshanteringssystem.
- Påskynda och skydda din kod med Azure DevOps med verktyg som ger utvecklare den snabbaste och säkraste koden till molnupplevelsen.