Pesquisadores desenvolvem ferramenta open-source capaz de identificar vulnerabilidades zero-day em códigos Python
O Vulnhuntr, criado pela equipe da Protect AI, utiliza o modelo Claude, da Anthropic. Segundo Dan McInerney, pesquisador principal de ameaças em IA da empresa e um dos desenvolvedores do software, a ferramenta automatiza a detecção de vulnerabilidades em arquivos que provavelmente lidam com entradas de usuários remotos, rastreando possíveis falhas.
Para cada vulnerabilidade encontrada, o modelo recebe um prompt otimizado, entrando em um ciclo no qual solicita, de forma inteligente, funções, classes e variáveis de outras partes do código até mapear completamente a cadeia de chamadas, da entrada do usuário até a saída do servidor. McInerney destaca que essa abordagem supera os analisadores de código estático tradicionais, reduzindo significativamente falsos positivos e negativos, pois consegue analisar a cadeia completa, em vez de apenas fragmentos do código.
Essa metodologia permite a detecção de vulnerabilidades complexas e em várias etapas, indo além de simplesmente identificar funções conhecidas por suas implicações de segurança, como “eval()”. Até o momento, o Vulnhuntr identificou mais de uma dúzia de vulnerabilidades zero-day em grandes projetos Python de código aberto, que ainda não haviam sido detectadas ou relatadas aos mantenedores.
A ferramenta foca em sete tipos de vulnerabilidades:
- Sobrescrita Arbitrária de Arquivos (AFO)
- Inclusão Local de Arquivos (LFI)
- Server-Side Request Forgery (SSRF)
- Cross-Site Scripting (XSS)
- Referências Diretas a Objetos Inseguros (IDOR)
- Injeção de SQL (SQLi)
- Execução Remota de Código (RCE)
Projetos afetados incluem:
- gpt_academic, 64 mil estrelas no GitHub, LFI, XSS
- ComfyUI, 50 mil estrelas, XSS
- FastChat, 35 mil estrelas, SSRF
- Ragflow, 16 mil estrelas, RCE
No entanto, o Vulnhuntr possui algumas limitações. Atualmente, funciona apenas em código Python e depende de um analisador estático dessa linguagem, o que pode gerar falsos positivos ao lidar com projetos Python que incorporam outras linguagens, como TypeScript. Ao gerar exploits de prova de conceito (PoC), o software atribui uma pontuação de confiança de 1 a 10. Uma pontuação de 7 indica alta probabilidade de ser uma vulnerabilidade válida, enquanto pontuações de 8 ou mais sugerem forte validação. Já pontuações de 6 ou menos indicam uma baixa probabilidade de validade.
Outro desafio é a natureza não determinística dos LLMs, que podem gerar resultados diferentes para o mesmo prompt em execuções distintas, exigindo múltiplas tentativas. Ainda assim, McInerney acredita que o Vulnhuntr representa um grande avanço em relação aos analisadores de código estático convencionais.
O Vulnhuntr será lançado gratuitamente no GitHub, embora a data ainda não tenha sido definida.