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
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.
- Os macetes mais valiosos no Google para quem trabalha com programação
- Como usar o GitHub? [guia para iniciantes]
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.
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.