Skip to content
Latchkey

O Que É Pipeline Poisoning? Adulterar o Próprio Build

Pipeline poisoning é qualquer ataque que faz seu pipeline de CI/CD executar código que o atacante controla, transformando seu build confiável em ferramenta dele.

Seu pipeline é confiável: ele detém secrets, assina releases e faz deploy em produção. O pipeline poisoning subverte essa confiança ao contrabandear instruções controladas pelo atacante para dentro do build. Uma vez que o pipeline as executa, o atacante herda tudo o que o pipeline pode fazer. É um dos ataques de maior alavancagem na entrega de software moderna.

Por onde o veneno entra

  • Uma definição de workflow ou pipeline modificada em um pull request.
  • Uma dependência maliciosa puxada durante o build.
  • Uma action de terceiros ou biblioteca compartilhada comprometida.
  • Um build script ou Makefile adulterado.

Poisoning direto vs indireto

O poisoning direto edita a própria definição do pipeline. O poisoning indireto deixa o pipeline intacto mas corrompe algo que ele executa: uma dependência, um script ou uma ferramenta. Ataques indiretos são mais sorrateiros porque o arquivo de pipeline parece intocado.

O ângulo do pull request

Uma variante particularmente perigosa roda as mudanças de um contribuidor com secrets completos antes de serem revisadas. O atacante submete um PR que altera o build para roubar credenciais ou injetar um backdoor, e o pipeline obedientemente o roda. Esse é o padrão de poisoned pipeline execution.

Defendendo o pipeline

Exija revisão em mudanças de pipeline, rode PRs não confiáveis sem secrets, fixe dependências e actions em versões exatas ou digests e aplique menor privilégio para que uma execução envenenada faça menos. Trate a definição do pipeline como código de produção sujeito aos mesmos controles.

Contendo uma execução envenenada

Mesmo um job envenenado deve ficar encaixotado. Runners isolados e efêmeros impedem que um build comprometido toque outros jobs ou persista no host, e a filtragem de egress o impede de telefonar para casa. O raio de dano permanece dentro do único ambiente descartável.

Principais conclusões

  • Pipeline poisoning faz um pipeline de CI/CD confiável rodar código controlado pelo atacante.
  • Pode ser direto (editando o pipeline) ou indireto (corrompendo o que ele roda).
  • Revisão, fixação de dependências, menor privilégio e isolamento são as defesas centrais.

Guias relacionados