A cadeia de suprimentos do código
O que fazer com dependências
Bloqueio de versão em um lockfile, uma atualização periódica agendada em vez de grandes saltos uma vez por ano e varredura automática de vulnerabilidades na pipeline de build.
Verifique antes de adicionar: quando foi atualizado pela última vez, quantos mantenedores tem e quantas dependências arrasta. Um pacote que puxa dezenas de pacotes para uma função não é uma economia.
A própria pipeline é um alvo
Ferramentas de build têm acesso a segredos e à produção. Limite permissões, não execute código não confiável em um contexto privilegiado e estabeleça que scripts de instalação não rodam em servidores de build sem controle.
Saber o que está rodando
Uma lista de componentes atualizada por publicação. Quando uma vulnerabilidade grave é publicada, a primeira pergunta é 'temos isso?' — e quem não tem lista perde um dia na busca.
Indo mais fundo
Assine pacotes e imagens, e verifique a assinatura antes do deploy. E no repositório: exija revisão por pares, bloqueie pushes diretos para o branch principal e verifique a identidade de quem faz push. A maioria dos incidentes de cadeia de suprimentos começa com uma conta de desenvolvedor comprometida, não com uma vulnerabilidade no código.