Pacotes maliciosos em Ruby e Go exploram pipelines CI/CD para roubo de credenciais e persistência via SSH
- Cyber Security Brazil
- há 2 dias
- 3 min de leitura

Uma nova campanha de ataque à cadeia de suprimentos de software está colocando desenvolvedores e ambientes de integração contínua (CI/CD) sob risco ao distribuir pacotes maliciosos disfarçados como bibliotecas legítimas nos ecossistemas Ruby e Go. A operação, atribuída à conta “BufferZoneCorp”, utilizou técnicas avançadas para comprometer pipelines, roubar credenciais sensíveis e estabelecer persistência nos sistemas afetados.
De acordo com análise da Socket, os invasores publicaram múltiplos pacotes — incluindo Ruby Gems e módulos Go — que imitavam bibliotecas amplamente utilizadas, como activesupport-logger, devise-jwt e go-retryablehttp. Essa técnica de mascaramento tem como objetivo enganar desenvolvedores e ferramentas automatizadas, aumentando as chances de instalação em projetos reais.
A campanha segue um modelo sofisticado de ataque com uso de “sleeper packages”, ou seja, bibliotecas aparentemente benignas que permanecem inativas até receberem atualizações maliciosas. Esse tipo de abordagem é especialmente perigoso, pois permite que os pacotes passem por verificações iniciais e sejam incorporados a pipelines antes da ativação do código malicioso.
A cadeia de ataque começa no momento da instalação do pacote. No caso dos Ruby Gems, o código malicioso é executado automaticamente durante o processo de instalação, coletando variáveis de ambiente e arquivos sensíveis do sistema. Entre os dados capturados estão chaves SSH, credenciais da AWS, arquivos de configuração como .npmrc e .netrc, tokens do GitHub CLI e credenciais do próprio RubyGems. Essas informações são então exfiltradas para servidores controlados pelos hackers por meio de endpoints externos.
Já os módulos Go apresentam um nível ainda mais avançado de comprometimento, focando diretamente em pipelines de CI/CD, especialmente aqueles baseados em GitHub Actions. Esses pacotes manipulam o ambiente de execução ao explorar funções como init(), permitindo que o código seja executado automaticamente ao importar o módulo.
Uma das técnicas mais críticas envolve a manipulação de variáveis como GITHUB_ENV e GITHUB_PATH, além da redefinição de proxies HTTP e HTTPS. Os módulos maliciosos criam um executável falso do Go dentro de diretórios de cache e alteram o PATH do sistema para que esse binário seja executado antes do legítimo.
Na prática, isso permite interceptar e modificar comandos executados durante o pipeline sem interromper o funcionamento do processo. O wrapper malicioso atua como um intermediário invisível, capturando informações, alterando comportamentos e repassando a execução ao binário legítimo para evitar suspeitas — uma técnica clássica de evasão.
Além disso, os invasores implantam persistência adicionando uma chave pública SSH diretamente no arquivo ~/.ssh/authorized_keys, garantindo acesso remoto contínuo ao ambiente comprometido. Essa abordagem transforma um ataque inicial de cadeia de suprimentos em um comprometimento persistente de infraestrutura.
O impacto é significativo, especialmente em ambientes corporativos que dependem fortemente de automação de builds e deploys. Um único pacote comprometido pode expor segredos críticos, permitir acesso a repositórios privados, comprometer pipelines de entrega de software e abrir caminho para ataques mais amplos, incluindo movimentação lateral e inserção de código malicioso em aplicações distribuídas.
Esse tipo de campanha reflete uma tendência crescente no cenário de ameaças: ataques direcionados à cadeia de suprimentos de software, com foco em desenvolvedores e pipelines CI/CD como vetores estratégicos. Em vez de atacar diretamente a infraestrutura final, os hackers comprometem o processo de desenvolvimento, atingindo múltiplos alvos de forma escalável.
Como medidas de mitigação, especialistas recomendam remover imediatamente os pacotes comprometidos, revisar arquivos sensíveis, validar alterações no arquivo authorized_keys, rotacionar todas as credenciais potencialmente expostas e analisar logs de rede em busca de comunicações suspeitas. Também é fundamental adotar práticas como verificação de dependências, uso de ferramentas de análise de segurança em pipelines e políticas de confiança zero para ambientes de desenvolvimento.


