Um único token de workflow do GitHub abriu a porta para a cadeia de fornecimento de software

Publicada 4 min de lectura 11 leituras

Um único token de workflow do GitHub falhou na rotação e abriu a porta. Essa é a conclusão central do incidente em Grafana Labs após a recente onda de pacotes maliciosos publicados em npm que afetou a cadeia de fornecimento do ecossistema de desenvolvedores. De acordo com a pesquisa pública da empresa, um módulo roubado de um pacote comprometido para TanStack executado em suas pipelines exfiltró segredos e permitiu aos atacantes acessar repositórios privados quando um token não foi revogado a tempo.

O incidente mostra com crudeza que a superfície de ataque não está apenas na produção, mas nas ferramentas que usamos para construir e publicar software: integração contínua e gestores de pacotes. Quando um fluxo de CI consome uma dependência maliciosa, essa dependência corre com os privilégios do runner e pode filtrar o que encontra no ambiente, incluindo tokens que permitem movimentos laterais a outros ativos da organização.

Um único token de workflow do GitHub abriu a porta para a cadeia de fornecimento de software
Imagem gerada com IA.

As consequências confirmadas por Grafana combinam roubo de código e exfiltração de informações operacionais, mas, por agora, não há evidência de comprometimento de dados de clientes em produção. A empresa assegura que não pagou resgate, que o repositório de código não foi alterado e que a informação descarregada incluía nomes e e-mails profissionais usados em relações de negócio; contudo, o evento reduz a confiança na cadeia de fornecimento e obriga a rever os controles de CI/CD.

Este caso repete um padrão recente em ataques à cadeia de abastecimento: compromisso de pacotes open source (neste caso pacotes associados a TanStack), execução em ambientes de desenvolvimento ou CI e exfiltração de credenciais que apontam para infra-estruturas internas. A mitigação requer ações técnicas imediatas e mudanças organizacionais em como o software e seus segredos são gerenciados.

Para equipamentos técnicos e responsáveis pela segurança, as acções urgentes são claras: rotar e limitar o alcance de todos os tokens e credenciais usados por pipelines, auditar de forma forense quais repositórios e artefatos foram acessados ou baixados, e adicionar controles para que um único segredo comprometido não permita movimentos a outros recursos críticos. A documentação do GitHub sobre endurecimento de Actions e boas práticas para segredos é um bom ponto de partida para implementar mitigações concretas: https://docs.github.com/en/actions/security-guides/security-hardening-for-github-actions e https://docs.github.com/en/actions/security-guides/using-encrypted-secrets-in-workflows.

Para além da resposta reativa, as organizações devem incorporar controlos que reduzam a probabilidade e o impacto deste tipo de intrusões: minimizar scopes de tokens, usar credenciais efímeras e de curta vida, segmentar acesso de runners (por exemplo, runners auto-hospedados isolados por projeto), restringir o uso de tokens em workflows que não o exijam e aplicar políticas de aprovação para dependências externas em CI.

Na camada de dependências e desenvolvimento é imprescindível aplicar defesa em profundidade: Fixar versões e hashes de pacotes (package-lock ou Verificadores de integridade), utilizar digitalização automática de dependências com alertas precoces, usar políticas de bloqueio para pacotes desconhecidos ou novos autores e considerar medidas de verificação da cadeia de fornecimento como assinaturas de pacotes e SLSA. Também ajuda manter um inventário atualizado (SBOM) que facilite identificar o que pipelines consumiram que livrarias em cada build.

Do ponto de vista de detecção, convém instrumentar a telemetria para exfiltração de runners e alertas sobre comportamentos anormais no GitHub (descargas massivas de repositórios, criação de forks ou clonados repetidos por atores não habituais). Revisões periódicas de permissões em organizações do GitHub e a implementação de políticas de acesso baseadas em papéis são medidas que reduzem a superfície explorada por um token comprometido.

Um único token de workflow do GitHub abriu a porta para a cadeia de fornecimento de software
Imagem gerada com IA.

Para a comunidade open source existe também uma lição coletiva: Os projetos e manutenção devem educar usuários sobre riscos de dependências, colaborar com registries para respostas mais rápidas quando aparecem pacotes maliciosos e apoiar iniciativas de segurança que permitam vetar pacotes suspeitos antes que cheguem massivamente a pipelines automatizados.

Grafana publicou suas atualizações e o estado da pesquisa em seu blog, onde detalha as medidas tomadas e o alcance conhecido até agora: https://grafana.com/blog/grafana-labs-security-update-latest-on-tanstack-npm-supply-chain-ransomware-incident/. Aqueles que gerem plataformas e pipelines devem rever esses relatórios para extrair indicadores de compromisso e verificar se os seus ambientes partilharam vetores semelhantes.

Em suma, o incidente é uma chamada a reforçar o controle sobre os segredos na CI, a tratar a cadeia de fornecimento como uma prioridade estratégica e a aplicar soluções combinadas: melhores políticas de acesso, defesa em profundidade sobre dependências e detecção proativa para que um único token perdido deixe de ser uma porta traseira para ativos críticos.

Cobertura

Relacionadas

Mas notícias do mesmo assunto.