Passo 1Mapear a linha
Repos, workflows, runners, secrets e destinos de deploy.
ATALAIAVamos listar primeiro cada workflow, runner e secret.
PLATAFORMA23 workflows, dois runners partilhados e secrets em todos os repos.
Sai da salaMapa: 23 workflows, 4 runners, 31 secrets
Passo 2Seguir as chaves
Que passo chega a que secret e a que ambiente.
ATALAIAEste token de deploy é visível para todos os jobs, incluindo os testes.
PLATAFORMAÉ um token para todos os ambientes. Mais fácil de rodar.
ATALAIAE mais fácil de roubar. Um passo de teste pode fazer deploy em produção.
Sai da sala1 token chega a prod a partir de qualquer job
Passo 3Quebrar no papel
Como se moveria um PR, action ou runner malicioso.
ATALAIAUm PR de fork corre no runner partilhado, e o runner guarda a cache.
DEV LEADEntão um PR malicioso podia envenenar o próximo build?
ATALAIASim. E esta action está fixada a uma tag. Quem a detém pode mover a tag.
Sai da salaCaminho de ataque: PR de fork → runner → prod
Passo 4Reforçar os templates
Actions fixadas, tokens limitados, runners efémeros, workflows protegidos.
PLATAFORMANovo template: actions fixadas por SHA, um token por ambiente.
ATALAIARunners efémeros para forks e CODEOWNERS nos ficheiros de workflow.
DEV LEADAplicamos aos 23 repos, um PR cada.
Sai da salaTemplate: SHAs fixados, tokens limitados, runners efémeros
- ATALAIA
- PLATAFORMA
- DEV LEAD
- PROGRAMADOR