Como se não bastasse o fato do problema afetar o serviço da Microsoft, o GitLab também é afetado por falha do GitHub.
Recentemente houve relatos de como uma falha do GitHub, ou possivelmente uma decisão de design, está sendo abusada por agentes de ameaças para distribuir malware usando URLs associados a repositórios da Microsoft, fazendo com que os arquivos pareçam confiáveis.
Acontece que o GitLab também é afetado por esse problema e pode sofrer abusos de maneira semelhante.
GitLab também é afetado por falha do GitHub
Embora a maior parte da atividade associada ao malware se baseasse nos URLs do Microsoft GitHub, essa “falha” poderia ser abusada com qualquer repositório público no GitHub ou GitLab, permitindo que os agentes de ameaças criassem iscas muito convincentes.
No último sábado, o site BleepingComputer relatou como os agentes de ameaças têm abusado dos comentários do GitHub para enviar malware, ao mesmo tempo que fazem parecer que os arquivos maliciosos estão hospedados em repositórios oficiais de código-fonte de organizações confiáveis.
Os seguintes URLs, por exemplo, que foram usados no ataque fizeram parecer que esses ZIPs estavam presentes no repositório de código-fonte da Microsoft:
https://github[.]com/microsoft/vcpkg/files/14125503/Cheat.Lab.2.7.2.zip
https://github[.]com/microsoft/STL/files/14432565/Cheater.Pro.1.6.0.zip
Após nossa investigação, no entanto, descobrimos que esses arquivos, que são malware, não foram encontrados em nenhum lugar do repositório de código da Microsoft.
Em vez disso, eles existiam no CDN do GitHub e provavelmente foram carregados por um agente de ameaça que abusou do recurso de “comentários” da plataforma.
Ao deixar um comentário em um commit ou pull request, um usuário do GitHub pode anexar um arquivo (arquivos, documentos, etc.), que será carregado no CDN do GitHub e associado ao projeto relacionado usando uma URL exclusiva neste formato: ‘https: //www.github.com/{project_user}/{repo_name}/files/{file_id}/{file_name}
.’
Para vídeos e imagens, os arquivos serão armazenados no caminho /assets/.
Em vez de gerar o URL após a publicação de um comentário, o GitHub gera automaticamente o link de download após você adicionar o arquivo a um comentário não salvo, conforme mostrado abaixo.
Isso permite que os agentes de ameaças anexem seu malware a qualquer repositório sem que eles saibam.
Mesmo que o comentário nunca seja postado ou excluído posteriormente pelo usuário (ou por um invasor), o link para o arquivo permanece ativo.
Sergei Frankoff, do serviço automatizado de análise de malware UNPACME, transmitiu ao vivo sobre esse bug no mês passado, dizendo que os agentes da ameaça estavam abusando ativamente dele.
Pouco depois de nossa reportagem, os leitores apontaram que o GitLab também não estava imune a esse problema.
O site BleepingComputer pode confirmar que os usuários podem realmente abusar do recurso de “comentários” no GitLab de maneira semelhante.
Em testes, eles conseguiram fazer upload de arquivos que seriam carregados no CDN do GitLab, mas parecia que eles existiam nos repositórios do GitLab de projetos populares de código aberto, como Inkscape e Wireshark:
https://gitlab[.]com/inkscape/inkscape/uploads/edfdbc997689255568a7c81db3f3dc51/InkScape-2024-Latest.exe
https://gitlab[.]com/wireshark/wireshark/uploads/b4162053fbb4dc6ee4f673c532009e16/WireShark-v4.2.4-stable-release.exe
O arquivo usado no teste é uma imagem JPG benigna, renomeada para .exe para demonstrar como, ao abusar desse recurso, os agentes de ameaças podem induzir os usuários a baixar versões de software falsificados contendo malware.
O formato seguido por esses arquivos carregados no CDN do GitLab é:
https://gitlab.com/{project_group_namr}/{repo_name}/uploads/{file_id}/{file_name}
O file_id aqui se parece com um hash MD4 ou MD5 em oposição a um identificador numérico mais simples.
Assim como no GitHub, os links dos arquivos gerados pelo GitLab permaneceriam ativos mesmo que o comentário nunca fosse postado pelo invasor ou excluído posteriormente.
O GitLab solicita que os usuários façam login antes de fazer upload ou download desses arquivos, mas isso não impede que os agentes de ameaças carreguem esses arquivos.
Como praticamente todas as empresas de software usam GitHub ou GitLab, essa falha permite que os agentes de ameaças desenvolvam iscas extraordinariamente astutas e confiáveis.
Por exemplo, um agente de ameaça pode carregar um executável de malware no repositório do instalador de driver da NVIDIA que finge ser um novo driver que corrige problemas em um jogo popular.
Ou um agente de ameaça pode enviar um arquivo em um comentário ao código-fonte do Google Chromium e fingir que é uma nova versão de teste do navegador da web.
Essas URLs também parecem pertencer aos repositórios da empresa, tornando-as muito mais confiáveis.
Infelizmente, mesmo que uma empresa descubra que seus repositórios são usados de forma abusiva para distribuir malware, não conseguirá encontrar nenhuma configuração que lhes permita gerenciar ou excluir arquivos anexados a seus projetos.