Malware camuflado nos links “oficiais” do GitHub e do GitLab

É possível detectar malware ao baixar arquivos dos repositórios da Microsoft no GitHub? Sim, é possível. Então, fique alerta!

Uma das dicas mais consagradas em segurança é: “baixe o software somente de fontes oficiais”. Geralmente, as “fontes oficiais” são as principais lojas de aplicativos em cada plataforma. Porém, para milhões de aplicativos de código aberto, úteis e gratuitos, a fonte mais “oficial” é o repositório do desenvolvedor em um site dedicado, como GitHub ou GitLab. Nesses sites, é possível encontrar o código-fonte do projeto, correções e adições ao código, e muitas vezes, uma compilação do aplicativo pronta para uso. Esses sites são familiares para qualquer pessoa que se interessa por computadores, software e programação. Por isso, foi uma descoberta desagradável para muitas pessoas, inclusive para os especialistas em segurança de TI e os próprios desenvolvedores, que um arquivo acessível em um link como github{.}com/{Nome_do_Usuário}/{Nome_do_Repositório}/files/{Id_do_arquivo}/{nome_do_arquivo} possa ser publicado por alguém que não seja o desenvolvedor e conter… qualquer coisa.

E, é claro, imediatamente, os criminosos virtuais passaram a tirar proveito disso.

Dissecando o problema

O GitHub e seu parente mais próximo, o GitLab, foram criados com o intuito de fornecer colaboração para os projetos de desenvolvimento de software. Um desenvolvedor pode carregar seu código e outros profissionais podem oferecer adições, correções ou até mesmo criar ramificações, isto é, as versões alternativas do aplicativo ou da biblioteca. Se um usuário encontrar um bug em um aplicativo, ele poderá informá-lo ao desenvolvedor ao criar um relatório de problema. Outros usuários poderão confirmar o problema ao fazer comentários. Também é possível comentar as novas versões do aplicativo. Caso seja necessário, existe a possibilidade de anexar arquivos nos comentários, como capturas de tela para mostrar erros ou documentos que travam o aplicativo. Esses arquivos são armazenados nos servidores do GitHub com o uso de links do tipo descrito acima.

No entanto, o GitHub tem uma peculiaridade: se um usuário preparar um comentário e carregar os arquivos que o acompanham, mas não clicar em “Publicar”, as informações permanecerão “presas” no rascunho e ficarão invisíveis para o proprietário do aplicativo e para outros usuários da plataforma. Porém, um link direto para o arquivo carregado no comentário é criado. Ele ficará totalmente operacional e qualquer pessoa que clicar nele receberá o arquivo na CDN do GitHub.

Um link para o download de um arquivo malicioso é gerado depois da adição do arquivo com um comentário não publicado no GitHub

Um link para o download de um arquivo malicioso é gerado depois da adição do arquivo com um comentário não publicado no GitHub

Enquanto isso, os proprietários do repositório no qual o arquivo foi publicado com os comentários não podem excluí-lo ou bloqueá-lo. E eles nem sabem o que está acontecendo! Além disso, não há configurações para restringir o carregamento desses arquivos para o repositório como um todo. A única solução seria desativar completamente os comentários. No GitHub, é possível fazer isso por até seis meses, mas isso impediria que os desenvolvedores compartilhassem suas avaliações.

O mecanismo de comentários do GitLab é semelhante. Ele permite que os arquivos sejam publicados pelos comentários de rascunho. Os arquivos ficam acessíveis por meio de um link como gitlab.com/{Nome_do_Usuário}/{Nome_do_Repositório}/uploads/{Id_do_arquivo}/{nome_do_arquivo}.

No entanto, o problema aqui é menos grave. Somente usuários registrados e logados no GitLab podem carregar os arquivos.

Um presente para as campanhas de phishing

Os criminosos virtuais, então, encontram uma brecha para difundir ataques de phishing muito convincentes, pois é possível publicar arquivos aleatórios nos links que começam com o GitHub/GitLab. Como eles contêm os nomes de desenvolvedores respeitados e projetos populares, um comentário não publicado com um arquivo pode ser deixado em qualquer repositório. Campanhas maliciosas já foram descobertas em “comentários” deixados nos repositórios da Microsoft. Eles continham aplicativos de jogos fraudulentos.

Um usuário mais atento poderia se perguntar por que um aplicativo de jogo fraudulento estaria no repositório da Microsoft: https://github{.}com/microsoft/vcpkg/files/…../Cheat.Lab.zip. Mas é muito mais provável que as palavras-chave “GitHub” e “Microsoft” tranquilizem a vítima, que não examinará mais o link. Criminosos mais espertos podem disfarçar o malware com ainda mais cuidado. Por exemplo, ele pode ser apresentado como uma nova versão de um aplicativo distribuído pelo GitHub ou GitLab, e os links podem ser publicados pelos “comentários” naquele aplicativo.

Como garantir a proteção contra conteúdo malicioso no GitHub e no GitLab

Enquanto essa falha de desenvolvimento permanecer sem correção e qualquer pessoa puder carregar livremente arquivos aleatórios para a CDN do GitHub e do GitLab, os usuários dessas plataformas precisarão manter muita cautela.

  • Não baixe os arquivos pelos links diretos do GitHub/GitLab encontrados em fontes externas, como de outros sites, e-mails ou salas de bate-papos. Em vez disso, abra a página do projeto (github{.}com/{Nome_do_Usuário}/{Nome_do_Repositório} ou gitlab{.}com/{Nome_do_Usuário}/{Nome_do_Repositório}) e verifique se realmente é possível baixar o arquivo dessas fontes. Os arquivos oficiais dos desenvolvedores devem ser publicados e estar visíveis no repositório.
  • Verifique e confirme se foi feito o acesso correto na página do desenvolvedor. No GitHub, GitLab e em outros repositórios de código aberto, o typosquatting é comum, ou seja, a criação de projetos falsos com nomes diferentes do original por uma ou duas letras (por exemplo, Chaddev em vez de Chatdev).
  • Evite baixar aplicativos com poucas estrelas (curtidas) e que foram criados recentemente.
  • Use proteção contra malware e phishing em todos os seus computadores e smartphones. O Kaspersky Premium fornece proteção abrangente para jogadores e entusiastas em computação.
Dicas