Säkerhetspodcasten #261 - CI/CD Security
Lyssna
- mp3, längd: 01:20:46
Plugs
- Konferenser
- Tillbakablickar
GitHub själv-hostad Runner litar blint på bidragare!
John Stawinski med flera hackar GitHub, Microsoft, … via konstiga CI/CD fel i GitHub Self-Hosted Runners.
Konstiga grejer som triggade oss:
Contributator
(bidragare) skall vara en kul grej, inte ett säkerhetshål!
Dubbelkolla vilka regler som gäller för din Runner
(joggare) om du satt upp en egen!
- John Stawinski IV: Fixing Typos and Breaching Microsoft’s Perimeter
- John Stawinski IV: Playing With Fire – How we Executed a Critical Supply Chain Attack On Pytorch
- Adnan Khan: One Supply Chain Attack to Rule Them All – Poisoning GitHub’s Runner Images
SIP/SOP/SAP - Tre sätt att se på CI/CD säkerhet
Security In the Pipeline - Säkerhet i pipeline.
- Traditionell applikationssäkerhet.
- Linta kod, IoC.
- Scanna efter säkerhetshål på olika sätt
Security Of the Pipeline - Säkerhet av pipeline.
- Skydda din pipeline mot onda angripare som vill skapa ondska i din pipeline.
- Förgiftad pipeline exekvering - Poisoned Pipeline Execution
- Direkt förgiftning: fienden kan skriva sönder din pipeline.
- Indirekt förgiftning: fienden kan skriva sönder saker som körs i din pipeline, ex:
- byggsteg (t.ex.
Makefile
,pom.xml
) - teststeg (t.ex.
JUnit
, enhetstester, acceptanstester, integrationstest) - verktyg (t.ex.
codecov
Codecov supply chain breach - explained step by step)
- byggsteg (t.ex.
- Publik förgiftning: publikt förslag (
pull request
/merge request
) körs av din pipeline.
- Otillräcklig access kontroll i pipeline - Insufficient PBAC
- Ond kod som körs i ett pipeline steg har för mycket rättigheter.
- Ex. kan skriva sönder
Artifactory
ellerimage repository
. - Ex. åtkomst till Microsoft domänen…
- Ex. access till Kubernetes service-konton.
- Ex. Priviligerad docker image, eller osäker uppsättning av Docker-i-Docker.
Security Around the Pipeline - Säkerhet runt/omkring pipeline.
- Det skall inte gå att kringgå pipelinen.
- Det som skapas av pipelinen skall bara kunna komma från pipelinen, inte från någon mystisk alternativ väg.
- Det skall inte gå att ansluta direkt till
artifactory
,image repository
eller likande för att kringgå pipelinen.
CI/CD Top 10
Omer Gil, Head of Research, Cider Security Daniel Krivelevich, CTO and Co-Founder, Cider Security
Rooted in research done by cross-referencing and analyzing some of the most notorious CI/CD security breaches, such as CodeCov, SolarWinds, and PHP, this talk will present the Top 10 CI/CD risks that were distilled from the most common patterns found in these attacks.
Exempel på skydd som finns i CI/CD och SCM
- Protected branches
- CODEOWNERS
- approval processer
- Secrets/vars enbart kopplade till protected branch pipeline execution
- kortlivade hemligheter, tokens
Användarkoncept och roller i en del system
- Administratör (för systemet)
Maintainer
- underhållare/chef för ett projekt, repository, mjukvara eller liknande.Code owner
- någon som har lite högre rättigheter i en del av projektet / repot, än en vanlig utvecklare.- About code owners
- Se
CODEOWNERS and branch protection
kring hur det jackar in i en helhet.
Developer
- utvecklare. Någon som fått rättigheter av administratör eller maintainer.Contributor
- någon som bidragit via github, gitlab eller liknande.Public
,Guest
eller liknande - någon pöbel som bara fått logga in eller är anonym “lurker” ute på internet.
Vad är CI/CD
- Wikipedia: Continous delivery
Continuous delivery (CD) är en mjukvaruutvecklingsprincip där:
- man producerar mjukvara i korta cykler
- garanterar att mjukvaran alltid är produktionsduglig
- Continous Delivery: CONTINUOUS DELIVERY SIMPLY EXPLAINED
- Redhat: What is a CI/CD pipeline