- Para verificar a viabilidade da detecção de malware baseada em IA, foram inseridos backdoors artificialmente em vários binários de servidores open source e realizados experimentos de detecção com agentes de IA e Ghidra
- Modelos recentes, como Claude Opus 4.6, encontraram alguns backdoors simples, mas a taxa de detecção foi de 49% e a taxa de falso positivo foi de 28%, um nível inadequado para uso prático
- O experimento usou projetos baseados em C e Rust, como lighttpd, dnsmasq, Dropbear e Sozu, e a IA realizou a análise apenas com ferramentas de engenharia reversa, sem código-fonte
- Alguns modelos mostraram falta de discernimento, confundindo chamadas claramente maliciosas (
execl("/bin/sh", ...)) com funcionalidades normais ou focando em trechos de código irrelevantes
- Os pesquisadores avaliaram que a IA ainda não é uma ferramenta de segurança completa, mas evoluiu a um ponto em que até não especialistas conseguem fazer verificações iniciais de segurança
Contexto da pesquisa
- Casos recentes, como o ataque à cadeia de suprimentos Shai Hulud 2.0 e o incidente de comprometimento de binário do Notepad++, destacaram os riscos de executáveis não confiáveis
- Os atacantes inserem código malicioso em softwares legítimos para roubar credenciais ou executar comandos remotamente
- Também foram relatados casos de módulos de comunicação ocultos ou contas com backdoor em firmware e dispositivos de hardware
- Para responder a essas ameaças, foi testado se a IA consegue detectar comportamentos maliciosos no nível de binário
Visão geral da análise de binários
- A programação comum lida com código-fonte, mas a análise de malware precisa interpretar binários em nível de linguagem de máquina
- No processo de compilação, informações de alto nível, como nomes de funções e variáveis, desaparecem, e a otimização distorce a estrutura do código
- A análise passa por um processo de engenharia reversa que converte
linguagem de máquina → assembly → pseudo-C
- Ferramentas open source: Ghidra, Radare2
- Ferramentas comerciais: IDA Pro, Binary Ninja
- Essas ferramentas restauram o significado do código, mas o resultado fica repleto de identificadores sem sentido, como
FUN_00130550 e bVar49
Estrutura do benchmark BinaryAudit
- Foram inseridos backdoors de teste em vários servidores open source (lighttpd, dnsmasq, Dropbear, Sozu)
- Ex.: executar comandos via cabeçalho HTTP ou disparar comandos de shell por meio de opções DHCP
- À IA foram fornecidos apenas executáveis compilados, sem código-fonte, para análise com Ghidra, Radare2, binutils etc.
- O objetivo era identificar se havia backdoor e o endereço inicial da função correspondente
- Algumas tarefas foram projetadas para apenas determinar qual binário, entre vários, estava infectado
Casos de sucesso na detecção
- O backdoor baseado no cabeçalho
X-Forwarded-Debug, inserido no servidor lighttpd, foi detectado pelo Claude Opus 4.5 em 5 minutos
- Ele encontrou a chamada
popen() e confirmou a lógica de execução de comandos por engenharia reversa com Radare2
- Também identificou a estrutura que retornava o resultado pelo cabeçalho de resposta
X-Request-Trace
- O modelo executou um procedimento automatizado de análise, combinando comandos
nm, strings, grep e r2
Casos de falha na detecção
- O Claude Opus 4.6 classificou erroneamente como funcionalidade normal um backdoor de execução de
/bin/sh inserido no código de processamento DHCP do dnsmasq
- Ele encontrou a chamada
execl("/bin/sh", "sh", "-c", ...), mas a confundiu com a execução de scripts DHCP
- Na prática, tratava-se de um código vulnerável que executava diretamente o conteúdo dos pacotes do cliente
- Mesmo encontrando a localização exata, o modelo negou a periculosidade e passou para outra função, deixando a detecção escapar
Limitações da IA e problema de falsos positivos
- Com taxa média de falso positivo de 28%, houve muitos casos em que binários limpos foram incorretamente apontados como contendo backdoor
- Ex.: Gemini 3 Pro confundiu um código normal de parsing de opções de linha de comando com um “backdoor de execução de comandos”
- A comunidade de segurança também aponta a queda de qualidade em relatórios gerados por IA como um problema
- O projeto curl afirmou que a maioria dos relatórios de bugs gerados por IA é inútil
- Para uso como ferramenta prática de segurança, seria necessária uma taxa de falso positivo abaixo de 0,001%
Limitações das ferramentas open source
- Ghidra e Radare2 são úteis para analisar código C, mas têm queda de desempenho em binários Rust e Go
- Ex.: o servidor Caddy, baseado em Go (50 MB), levou 40 minutos para carregar no Ghidra, com resultados imprecisos
- O IDA Pro carregou em 5 minutos e forneceu código preciso
- No experimento, para excluir diferenças de qualidade entre ferramentas, o foco ficou em binários baseados em C
Resultados e perspectivas
- Taxas de detecção registradas: Claude Opus 4.6: 49%, Gemini 3 Pro: 44%, Claude Opus 4.5: 37%
- Eles continuam vulneráveis a binários grandes ou a backdoors que imitam funcionamento normal
- Ainda assim, a IA evoluiu ao ponto de manipular diretamente o Ghidra para realizar engenharia reversa
- Até não especialistas já podem fazer uma checagem inicial de executáveis suspeitos
- Como direções futuras, são apontados a integração com ferramentas comerciais e a análise de segurança baseada em modelos locais
- O benchmark completo e os resultados estão disponíveis no GitHub em QuesmaOrg/BinaryAudit
1 comentários
Opiniões do Hacker News
Embora digam que não houve ofuscação, se ocultarem imports ou símbolos e ofuscarem strings, a taxa de detecção cai imediatamente para 0%
Nesse caso, o que o LLM detecta é apenas um padrão linguístico anômalo associado a comportamento malicioso, então isso não é tão impressionante
Por exemplo, os únicos modelos que entendem ferramentas como Ghidra ou Radare2 são Opus 4.5, 4.6, Gemini 3 Pro e GLM 5
O benchmark relacionado pode ser visto aqui
Isto é apenas um ponto de partida para a IA trabalhar com binários, e ainda estamos longe de uma solução completa
Em engenharia reversa de software real, ele às vezes fica andando em círculos por um tempo, mas quando percebe que há ofuscação, daí em diante o processo flui bem, atualizando resultados em documentos como CLAUDE.md
Como exemplo, dá para consultar os patches dnsmasq-backdoor e dropbear-brokenauth
Mas o que lidei não era um backdoor de nível estatal, e sim algo mais no nível de um crack de software
O que de fato derruba o LLM é lógica complexa, mas os bons modelos ao menos reconhecem essa complexidade e a sinalizam
Apresento meu projeto ghidra-cli
Fiz engenharia reversa do formato de arquivo do Altium (a parte em Delphi) com Ghidra, e o resultado foi surpreendente
Os modelos não conseguem escrever um parser completo do zero, mas antes dos LLMs eu nem teria tentado algo assim
Eu não confiaria nisso para auditoria de segurança, mas os modelos atuais já são bem utilizáveis para engenharia reversa de formato de arquivo
Por exemplo, deixo com eles geração de diagramas, mapeamento de superfície de ataque e exploração de código, enquanto eu me concentro na análise manual
Como o LLM assume o trabalho repetitivo e entediante, a velocidade aumenta. Mas, se você delegar demais, cai numa armadilha de produtividade
Usando uma combinação de agentes com o conjunto certo de “skills”, a eficiência realmente aumenta
A maior limitação do Ghidra era a lentidão excessiva na análise de código Go
Eu já usei GhidrAssistMCP, analyzeHeadless, PyGhidra etc.,
e, em especial, uma abordagem com SKILL.md explícito tem alta compatibilidade com agentes de IA
O ponto central desta thread é a discussão metodológica
Dizer que “com ofuscação a taxa de sucesso vira 0%” está correto, mas o objetivo do experimento é ver se a IA consegue lidar com binários não ofuscados como faria um engenheiro reverso experiente
Isso é um cenário realmente utilizável, como auditoria interna ou análise de código legado
O que importa de verdade é a definição do modelo de ameaça. Se o nível for o de um atacante automatizado, isso já é útil o bastante,
mas, para um atacante avançado que já pensa em escapar da detecção por IA, este teste é insuficiente
A validação prática seria medir o desempenho sob ofuscação leve (ocultação de imports, codificação de strings)
Fica a dúvida se um robô que não consegue colher maçãs quando o tempo está nublado pode mesmo ser chamado de “especialista experiente em colher maçãs”
O GPT é estável com taxa de falso positivo de 0%, mas a taxa de detecção fica em torno de 18%
Já o Claude Opus 4.6 tem taxa de detecção mais alta, de 46%, mas a taxa de falso positivo é de 22%
Talvez fosse mais interessante combinar vários modelos, fazendo um desenhar o procedimento de verificação e outro executar o teste de exploit de fato
Mas parece que todo mundo esqueceu disso com a chegada dos modelos generativos
O ponto principal é que, embora seja difícil para a IA fazer detecção completa de malware, ficou muito mais fácil para desenvolvedores realizarem uma auditoria de segurança inicial
Até desenvolvedores sem experiência em engenharia reversa agora conseguem fazer uma análise preliminar de um binário suspeito
Isso pode se expandir não só para segurança, mas também para várias áreas como otimização, depuração, engenharia reversa de hardware e portabilidade de arquitetura
No fim, o importante é encarar a IA não como um analisador perfeito, mas como uma ferramenta de geração de hipóteses
Os executáveis do benchmark são compostos por centenas ou milhares de funções, e o backdoor ocupa apenas algumas linhas entre elas
Portanto, é preciso explorar estrategicamente os caminhos críticos, como parsers de rede e rotinas de tratamento de entrada
Uma possibilidade seria fornecer esse tipo de estratégia ao LLM em forma de arquivo .md
Uma única nuance no prompt pode mudar o resultado
No fim, a complexidade do desenho experimental explode, e a robustez do resultado cai
Com orientação de especialistas, isso pode gerar um forte efeito de amplificação de desempenho
Fazer a IA realmente seguir o pensamento estratégico humano continua sendo algo difícil
O link direto do benchmark está aqui,
e o código open source pode ser consultado no repositório no GitHub
O resultado de que o Gemini tem a maior taxa de falso positivo bate com a minha experiência
Já usei ChatGPT, Claude e Gemini, e o Gemini é o mais enviesado para respostas positivas
Ele sempre dá a resposta mais otimista
Eu estava procurando um benchmark que mostrasse numericamente essa característica, e este resultado pode servir como evidência disso
Não sou especialista, mas acho que, para reduzir o problema de falsos positivos, talvez o modelo pudesse executar o backdoor ele mesmo para verificar
Por isso é difícil fazer comparação cruzada entre modelos, e em vez disso pede-se que o modelo indique explicitamente onde está o backdoor
Se você customizar ou fizer fine-tuning do modelo diretamente, a abordagem sugerida pode ser útil
O fato de o melhor modelo detectar só cerca de 50% não é ruim. Pode até ser melhor que humanos
Mas fico curioso sobre por que os outros 50% passaram despercebidos
É interessante que o Claude Opus 4.6 encontre o backdoor e ainda assim conclua “sem problemas”
No fim, isso mostra que a IA ainda tem dificuldade de chegar a uma compreensão completa sem o apoio do julgamento humano