Os macetes mais valiosos no Google para quem trabalha com programaçãoComo 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. 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: