Um módulo malicioso em Go que se faz passar por golang.org/x/crypto rouba senhas e exibe um backdoor em Linux

Publicada 4 min de lectura 122 leituras

Nas últimas semanas, a comunidade de segurança deu a voz de alarme por uma campanha que explora a confiança na cadeia de abastecimento do ecossistema Go. Pesquisadores identificaram um módulo malicioso hospedado no GitHub que se faz passar pela livraria oficialgolang.org/x/cryptoe introduz código para capturar senhas, abrir acessos persistentes por SSH e, finalmente, colocar um backdoor sobre sistemas Linux.

O repositório detectado, localizado em github.com/xinfeisoft/crypto e ainda visível em pkg.go.dev, aproveita a confusão entre nomes de espaço e a prática habitual de tratar o GitHub como espelho dos subrepositorios de Go. Segundo a equipe de Socket, o ator malicioso explora precisamente esta ambiguidade para que a dependência pareça legítima nos grafos de dependências e passar desapercibida em revisões superficiais; você pode ler a análise completa no blog de Socket aqui.

Um módulo malicioso em Go que se faz passar por golang.org/x/crypto rouba senhas e exibe um backdoor em Linux
Imagem gerada com IA.

O que faz o código malicioso é simples e particularmente perigoso: modifica o arquivo equivalente à implementação do terminal para a função que lê senhas em modo oculto. Cada vez que uma aplicação invoca essa rotina para solicitar entradas sensíveis, o módulo intercepta o introduzido pelo usuário e envia-o para um servidor controlado pelo atacante. Essa informação não fica no repositório: a seguir, o módulo obtém de um recurso externo um script de shell que atua como etapa inicial de intrusão.

Esse programa baixado funciona como um stager típico: acrescenta a chave SSH do atacante ao arquivo de autorizações do usuário (por exemplo, /home/ubuntu/.ssh/authorized_keys), tenta relaxar políticas de firewall para facilitar comunicações entrantes e descarga cargas adicionais disfarçadas com a extensão .mp5. Uma dessas cargas parece ser um pequeno programa de assistência que verifica a conectividade e tenta falar com um servidor remoto na direção 154.84.63.184 através do porto TCP 443; seu comportamento se encaixa com o de um componente de reconhecimento ou carregador que prepara o terreno para fases posteriores.

A segunda carga é especialmente preocupante: trata-se de Rekoobe, um troianos para Linux conhecido há anos. Há registros públicos e análises que documentam a presença de Rekoobe desde pelo menos 2015, e publicações técnicas têm detalhado como este backdoor permite executar comandos à distância, baixar novos binários, roubar arquivos e estabelecer shells inversos. Vários relatórios têm relacionado suas variantes com grupos ligados a operações de espionagem, incluindo atores com motivações estatais; você pode consultar pesquisas sobre Rekoobe em fontes como Dr.Web, Intezer e análise técnica como o de TechEvo.

Este caso ilustra dois vectores perigosos combinados: por um lado, a suplantação de um módulo de alto valor — um que reside num ponto crítico como a leitura de senhas em consola — e, por outro, o uso de hospedagem dinâmico (raw.githubusercontent.com e recursos externos) como mecanismo de rotação para a infraestrutura maliciosa. Segundo os pesquisadores, esse padrão é barato de implementar para os atacantes e com alto impacto, pelo que é provável que vejamos imitações que apontem para outras bibliotecas responsáveis por manejar credenciais: auxiliares SSH, prompts de CLI para autenticação ou conectores de bases de dados, entre outros.

Um módulo malicioso em Go que se faz passar por golang.org/x/crypto rouba senhas e exibe um backdoor em Linux
Imagem gerada com IA.

A comunidade e os mantenedores do ecossistema Go reagiram bloqueando o pacote malicioso nos pontos de controle conhecidos, mas o incidente serve como lembrete: a mera presença de um módulo em um índice público não garante sua integridade. As dependências transitórias podem abrir lacunas críticas, e as equipes devem assumir que qualquer interface que toque segredos merece proteção adicional.

Para desenvolvedores e responsáveis pela segurança isso implica, entre outras coisas, validar e fixar versões de dependências, revisar com atenção mudanças em módulos de terceiros que interagem com credenciais, usar proxies e mecanismos de verificação de soma (go.sum) e monitorar alertas de segurança sobre pacotes impessoados. Também é importante auditar canais de fornecimento externo (scripts baixados por curl | sh, conteúdos em raw.githubusercontent.com, etc.) e reduzir a confiança em downloads sem assinatura ou verificação.

Em suma, o episódio é uma chamada para reforçar práticas de higiene na cadeia de fornecimento de software: quando uma livraria toca a borda onde se tratam segredos, uma pequena modificação maliciosa pode se tornar rapidamente uma intrusão completa. As publicações dos equipamentos de pesquisa e os repositórios que documentam essas campanhas são recursos valiosos para entender a técnica e preparar-se melhor; consulta o relatório de Socket para detalhes técnicos e exemplos de como foi realizada a campanha aqui, e as análises sobre Rekoobe se você quiser aprofundar as capacidades do backdoor em campo nas ligações anteriores.

Cobertura

Relacionadas

Mas notícias do mesmo assunto.