Repositórios no GitHub entregam falsas PoCs de exploits com malware

Nos últimos anos, as provas de conceito (PoCs) de explorações para vulnerabilidades conhecidas têm sido amplamente compartilhadas em sites e plataformas dedicadas, ou mesmo em repositórios de código público como o GitHub. No entanto, não existe garantia de que todas as PoCs desses repositórios tenham vindo de fontes confiáveis. De acordo com as investigações de pesquisadores do Instituto Leiden de Ciência da Computação Avançada, milhares de repositórios no GitHub oferecem falsas PoCs de vários exploits, algumas delas incluindo malware.

Para detectar se realmente oferecem a funcionalidade esperada, a equipe usou provas de conceito de explorações para vulnerabilidades conhecidas descobertas entre os anos 2017 e 2021. Eles observaram se sintomas como chamadas para endereços IP maliciosos, código malicioso codificado, ou inclusão de binários trojanizados, eram verificados no conjunto de dados coletados.

Ao aplicar esta abordagem, os pesquisadores descobriram 4893 repositórios maliciosos de 47313 analisados. Desta forma, a chance de se infectar com um malware em vez de obter uma PoC pode chegar a 10,3%, excluindo falsificações comprovadas e brincadeiras — o número mostra uma prevalência preocupante de PoCs maliciosos perigosos entre os códigos de exploração distribuídos no GitHub.

Coleta e análise de dados

Os pesquisadores aplicaram três mecanismos para análise dos mais de 47.300 repositórios:

Análise de endereço IP: comparando o IP do editor do PoC com as listas de blocos públicos e VT e AbuseIPDB.

Análise binária: executar verificações VirusTotal nos executáveis fornecidos e seus hashes.

Análise hexadecimal e de Base64: decodificar arquivos ofuscados antes de executar verificações binárias e de IP.

Método de análise de dados usado. Imagem: Arxiv.org

Dos 150.734 IPs únicos extraídos, 2.864 entradas da lista de blocos correspondentes, 1.522 foram detectados como maliciosos nas verificações antivírus no Virus Total, e 1.069 deles estavam presentes no banco de dados do AbuseIPDB.

A análise binária examinou um conjunto de 6.160 executáveis e revelou um total de 2.164 amostras maliciosas hospedadas em 1.398 repositórios.

No total, 4.893 repositórios dos 47.313 testados foram considerados maliciosos, sendo a maioria deles relativos a vulnerabilidades a partir de 2020.

Repositórios maliciosos identificados por ano. Imagem: Arxiv.org

O relatório contém um pequeno conjunto de repositórios com falsas PoCs que entregaram malware. No entanto, os pesquisadores compartilharam com a BleepingComputer pelo menos 60 outros exemplos que ainda estão ativos e em processo de serem derrubados pelo GitHub.

Malwares na PoC

Ao analisar com mais atenção alguns desses casos, os pesquisadores encontraram uma infinidade de diferentes malwares e scripts nocivos, desde trojans de acesso remoto até Cobalt Strike.

Um dos casos mostrados foi a de uma PoC para CVE-2019-0708, comumente conhecido como “BlueKeep”. Ele carrega um script Python de base64 ofuscado que busca um VBScript do Pastebin. No caso, um Houdini RAT, antigo trojan baseado em JavaScript que auxilia a execução de comandos remotos pelo CMD do Windows.

Em outro caso, os pesquisadores detectaram um falso PoC que era um infostealer que coletava informações do sistema, endereço IP e agente do usuário.

No entanto, isso foi criado antes como um experimento de segurança por outro pesquisador, encontrá-lo com a ferramenta automatizada foi uma confirmação aos pesquisadores de que sua abordagem funcionava.

Exemplo de exfiltração de uma falsa PoC. Imagem: Arxiv.org

Um dos pesquisadores, El Yadmani Soufian, também pesquisador de segurança na Darktrace, forneceu exemplos adicionais não incluídos no relatório técnico, vistos abaixo:

PoC de PowerShell contendo um binário codificado em base64 marcado como malicioso no Virus Total.

PoC em Python contendo uma linha única que decodifica uma carga útil codificada em base64 sinalizada como maliciosa no Vírus Total.

Falso exploit BlueKeep contendo um executável que é sinalizado pela maioria dos motores antivírus como malicioso, e identificado como Cobalt Strike.

Um script se camufla dentro de uma falsa PoC, carregando componentes maliciosos inativos que podem causar danos.

Como se proteger

Assim como qualquer outro material encontrado na web, não é indicado também confiar cegamente em um repositório no GitHub de uma fonte não verificada, visto que o conteúdo não é moderado. Portanto, cabe a revisão dos usuários antes de usá-los.

Neste caso, os testadores de software são aconselhados a examinar cuidadosamente as PoCs que baixam e executar várias verificações possíveis antes de executá-las. Sofian deu três dicas para facilitar o trabalho dos testadores:

Leia cuidadosamente o código que está prestes a executar em sua rede ou na rede do cliente.

Se o código for muito ofuscado e precisar de muito tempo para analisá-lo manualmente, armazene-o em um ambiente (ex.: uma Máquina Virtual isolada) e verifique sua rede quanto a qualquer tráfego suspeito.

Use ferramentas de inteligência de código aberto como o VirusTotal para analisar os binários.

Embora os pesquisadores tenham relatado todos os repositórios maliciosos que descobriram no GitHub, levará algum tempo até que todos eles sejam revisados e removidos, portanto muitos ainda permanecem disponíveis ao público.

O estudo, como explicou o pesquisador, visa não apenas uma ação de limpeza única no GitHub, mas atuar como ponto de partida para desenvolver uma solução automatizada que poderia ser usada para sinalizar instruções maliciosas no código carregado.

A ferramenta de detecção perde o código com um ofuscamento mais forte, entretanto, os pesquisadores têm trabalhado nesta primeira versão da pesquisa para aperfeiçoá-la.

Via BleepingComputer