Ataque à Cadeia de Suprimentos Visa Desenvolvedores com Gems Ruby e Módulos Go Maliciosos
Um novo ataque à cadeia de suprimentos de software foi descoberto, utilizando gems Ruby e módulos Go maliciosos para atingir desenvolvedores e ambientes CI/CD. O ataque, atribuído à conta GitHub **BufferZoneCorp**, visa roubar credenciais, adulterar o GitHub Actions e estabelecer persistência SSH.

### Pacotes Maliciosos Identificados
A conta GitHub controlada pelo atacante "**BufferZoneCorp**" publicou uma série de pacotes maliciosos nos ecossistemas RubyGems e Go module. Embora os pacotes já tenham sido removidos do RubyGems e bloqueados, é crucial entender o escopo do ataque. Os seguintes pacotes foram identificados:
* **Ruby:**
* knot-activesupport-logger
* knot-devise-jwt-helper
* knot-rack-session-store
* knot-rails-assets-pipeline
* knot-rspec-formatter-json
* knot-date-utils-rb (Sleeper gem)
* knot-simple-formatter (Sleeper gem)
* **Go:**
* github[.]com/BufferZoneCorp/go-metrics-sdk
* github[.]com/BufferZoneCorp/go-weather-sdk
* github[.]com/BufferZoneCorp/go-retryablehttp
* github[.]com/BufferZoneCorp/go-stdlib-ext
* github[.]com/BufferZoneCorp/grpc-client
* github[.]com/BufferZoneCorp/net-helper
* github[.]com/BufferZoneCorp/config-loader
* github[.]com/BufferZoneCorp/log-core (Sleeper module)
* github[.]com/BufferZoneCorp/go-envconfig (Sleeper module)
Esses pacotes foram projetados para imitar módulos legítimos e conhecidos, como `activesupport-logger`, `devise-jwt`, `go-retryablehttp`, `grpc-client` e `config-loader`, aumentando a probabilidade de desenvolvedores baixá-los inadvertidamente.
### Vetores de Ataque e Detalhes do Payload
De acordo com o pesquisador de segurança da **Socket**, Kirill Boychenko, "A conta faz parte de uma campanha de cadeia de suprimentos de software visando desenvolvedores, executores de CI e ambientes de build em dois ecossistemas."
As gems Ruby são projetadas para coletar automaticamente informações sensíveis, incluindo variáveis de ambiente, chaves SSH, segredos **AWS**, `.npmrc`, `.netrc`, configuração do **GitHub** CLI e credenciais RubyGems durante a instalação. Esses dados roubados são então exfiltrados para um endpoint de webhook controlado pelo atacante.
Os módulos Go exibem uma gama mais ampla de capacidades maliciosas. Isso inclui adulterar fluxos de trabalho do **GitHub** Actions, injetar wrappers Go falsos, roubar dados de desenvolvedores e adicionar uma chave pública SSH hardcoded ao arquivo `~/.ssh/authorized_keys`, concedendo acesso remoto não autorizado. Os payloads diferem entre os módulos.
Boychenko explicou ainda: "O módulo executa através do init(), detecta GITHUB_ENV e GITHUB_PATH, define HTTP_PROXY e HTTPS_PROXY, grava um executável Go falso em um diretório de cache e anexa esse diretório ao caminho do workflow para que o wrapper seja selecionado antes do binário real. Esse wrapper pode então interceptar ou influenciar execuções Go posteriores, enquanto ainda passa o controle para o binário legítimo para evitar quebrar o job."
### Passos de Remediação
Usuários que instalaram qualquer um dos pacotes identificados são fortemente aconselhados a tomar as seguintes medidas:
* Remover imediatamente os pacotes de seus sistemas.
* Revisar minuciosamente os sistemas em busca de quaisquer sinais de acesso não autorizado a arquivos sensíveis ou modificações no arquivo `~/.ssh/authorized_keys`.
* Rotacionar todas as credenciais potencialmente expostas, incluindo chaves SSH, tokens de API e senhas.
* Inspecionar cuidadosamente os logs de rede em busca de qualquer tráfego HTTPS de saída direcionado ao ponto de exfiltração identificado.