35 mil códigos no GitHub foram clonados para espalhar malware

Ataque dos clones: desenvolvedor descobriu que arquivos foram clonados e alterados com código malicioso; GitHub já removeu repositórios

Emerson Alecrim

Clonagem de repositórios de código aberto não é uma prática incomum. Na verdade, isso é até incentivado. Mas uma ação do tipo descoberta pelo engenheiro de software Stephen Lacy foge de qualquer boa intenção: mais de 35 mil arquivos no GitHub foram copiados e adulterados com código malicioso.

Clone Troopers (imagem ilustrativa: reprodução/Lucasfilm)
Clone Troopers (imagem ilustrativa: reprodução/Lucasfilm)

Via Twitter, Lacy conta que descobriu o problema ao revisar o código-fonte de um projeto encontrado no GitHub a partir de uma busca no Google. Com esse trabalho, ele descobriu um link no código que leva para um malware.

Intrigado, o engenheiro buscou pelo link em outros repositórios. O resultado foi surpreendente. O mesmo endereço foi encontrado em mais de 35 mil arquivos armazenados em repositórios no GitHub.

No começo, Lacy pensou que esses repositórios haviam sido comprometidos de alguma forma. Ele até listou alguns: “crypto, golang, python, js, bash, docker e k8s”.

Mas logo ficou claro que os projetos afetados eram, na verdade, clones de outros repositórios. Os originais permaneciam íntegros, inclusive os mencionados por ele.

Foi um alívio, certo? Nem tanto. Se um desenvolvedor chegar a um dos clones maliciosos, pode simplesmente usar aquele projeto sem perceber que, ao fazê-lo, estará ajudando a espalhar um malware. As consequências podem ser desastrosas.

O que o malware faz?

Um desenvolvedor chamado James Tucker descobriu que o tal link leva a um backdoor que, quando ativo, pode executar ações arbitrárias no computador afetado.

Entre elas estão, presumivelmente, instruções para coleta de dados sigilosos. Até porque o código malicioso também possibilita a captura de variáveis de ambiente. Estas incluem dados como chaves de API, chaves criptográficas e credenciais da Amazon Web Services, por exemplo.

Isso significa que qualquer projeto que tiver como base um ou mais arquivos comprometidos poderá expor a aplicação a um perigo que parte de uma origem inesperada.

O código malicioso em um arquivo (imagem: Twitter/Stephen Lacy)
O código malicioso em um arquivo (imagem: Twitter/Stephen Lacy)

GitHub agiu rápido, mas fica o alerta

É importante esclarecer que o código malicioso foi encontrado em 35 mil arquivos, mas não na mesma quantidade de repositórios. Uma busca feita pelo BleepingComputer mostrou que cerca de 13 mil desses arquivos pertenciam a um único repositório (redhat-operator-ecosystem), só para dar um exemplo.

Felizmente, esse repositório foi removido rapidamente pelo GitHub. O mesmo vale para os outros clones problemáticos. Mas o episódio serve de alerta. Embora não seja uma tarefa fácil, é importante checar a origem de um repositório antes de usá-lo e, claro, dar preferência a projetos oficiais.

O próprio Stephen Lacy afirma que esse tipo de situação é a razão pela qual ele não instala pacotes encontrados aleatoriamente na internet.

Ao BleepingComputer, o GitHub enviou uma recomendação que está alinhada com o cuidado tomado pelo engenheiro:

Como boa prática, lembre-se de utilizar software a partir dos repositórios oficiais do projeto e atente-se sobre possíveis erros de digitação ou forks/clones que podem parecer idênticos aos originais, mas ocultam um malware.

Relacionados

Escrito por

Emerson Alecrim

Emerson Alecrim

Repórter

Emerson Alecrim cobre tecnologia desde 2001 e entrou para o Tecnoblog em 2013, se especializando na cobertura de temas como hardware, sistemas operacionais e negócios. Formado em ciência da computação, seguiu carreira em comunicação, sempre mantendo a tecnologia como base. Em 2022, foi reconhecido no Prêmio ESET de Segurança em Informação. Em 2023, foi reconhecido no Prêmio Especialistas, em eletroeletrônicos. Participa do Tecnocast, já passou pelo TechTudo e mantém o site Infowester.