← Últimos artigos
🤖 machine learning

ANVIL: Anomaly-based Vulnerability Identification without Labelled Training Data

O artigo apresenta o ANVIL, um framework de detecção de vulnerabilidades não supervisionado que utiliza Grandes Modelos de Linguagem para identificar anomalias de código por meio de reconstrução mascarada e um mecanismo de pontuação híbrido, demonstrando desempenho superior sobre detectores supervisionados e descobrindo com sucesso vulnerabilidades anteriormente desconhecidas quando integrado a fuzzers.

Autores originais: Weizhou Wang, Eric Liu, Xiangyu Guo, Xiao Hu, Ilya Grishchenko, David Lie

Publicado 2026-06-30
📖 4 min de leitura☕ Leitura rápida

Autores originais: Weizhou Wang, Eric Liu, Xiangyu Guo, Xiao Hu, Ilya Grishchenko, David Lie

Artigo original sob licença CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta é uma explicação gerada por IA do artigo abaixo. Não foi escrita nem endossada pelos autores. Para precisão técnica, consulte o artigo original. Ler aviso legal completo

Imagine que você está tentando encontrar um único tijolo levemente quebrado em uma parede enorme feita de milhões de tijolos perfeitos.

O Problema: O Dilema do "Cara ou Coroa"
Normalmente, para encontrar esses tijolos quebrados, você precisa de uma equipe de especialistas que estudaram milhares de exemplos quebrados e aprenderam exatamente como eles se parecem. É assim que a maioria dos programas de computador atuais funciona: eles são "aprendizes supervisionados". Mas há um grande problema: não temos exemplos suficientes de código quebrado para ensiná-los adequadamente.

Recentemente, surgiram esses modelos de IA superinteligentes (chamados de Grandes Modelos de Linguagem, ou LLMs) que leram quase todo o código já escrito. Você pode pensar: "Ótimo! Eles viram tudo, então devem ser capazes de identificar os tijolos quebrados". Mas, surpreendentemente, quando você apenas pergunta a eles: "Esta linha de código está quebrada?", eles não performam melhor do que jogando cara ou coroa. Eles são ótimos em escrever código, mas terríveis em criticar o código, porque foram treinados para imitar padrões, não para detectar erros.

A Solução: ANVIL (O Jogo do "Encontre a Diferença")
Os pesquisadores por trás deste artigo, o ANVIL, decidiram inverter a lógica. Em vez de tentar ensinar à IA o que um código "quebrado" parece, eles perguntaram: "O que a IA acha que uma linha de código normal deveria parecer?"

Veja como o ANVIL funciona, usando uma analogia simples:

  1. O Jogo do Mascaramento: Imagine que você pega uma frase de uma história e cobre uma linha com um marcador preto. Você então pede à IA para adivinhar qual era a linha oculta, baseando-se apenas nas frases antes e depois dela.
  2. A Expectativa: Se a linha oculta for uma linha de código normal e padrão, a IA provavelmente adivinhará corretamente (ou algo muito próximo disso) porque ela viu esse padrão um milhão de vezes.
  3. A Anomalia: Se a linha oculta for uma linha de código "vulnerável" (quebrada), ela provavelmente será estranha ou incomum em comparação ao restante dos dados de treinamento. A IA terá dificuldade em adivinhá-la. Ela pode adivinhar algo totalmente diferente, ou ficar muito incerta.
  4. A Pontuação: O ANVIL mede o quanto o palpite da IA difere da linha original. Se o palpite estiver muito fora do esperado, ou se a IA parecer confusa, o ANVL marca essa linha como "anômala" (suspeita).

O Detetive "Híbrido"
Os pesquisadores perceberam que medir apenas a diferença não é suficiente. Às vezes, uma pequena diferença (como mudar > para >=) é um erro enorme, mas a IA pode não achar que seja algo importante. Por isso, eles criaram uma "Pontuação Híbrida" que atua como um detetive com quatro ferramentas diferentes:

  • Correspondência Exata: A IA acertou 100%? Se não, isso é um sinal de alerta.
  • Medidor de Confusão: O quanto a IA estava incerta? Se a IA estiver hesitando, o código pode ser estranho.
  • Verificação de Complexidade: A linha de código é excessivamente complicada? Códigos complexos são frequentemente onde os erros se escondem.
  • A Pontuação de "Perda" (Loss): Uma medida matemática de quão "surpresa" a IA ficou com a linha de código original.

Os Resultados: Encontrando a Agulha no Palheiro
A equipe testou o ANVIL em um conjunto de dados massivo de código real.

  • Superando os Especialistas: Eles compararam o ANVIL contra as melhores ferramentas existentes que realmente exigem dados de treinamento. Mesmo sem usar nenhum dado de treinamento, o ANVIL encontrou vulnerabilidades duas vezes mais precisamente do que as outras.
  • O Truque do Contexto: Eles descobriram que dar à IA o arquivo inteiro para ler era, na verdade, confuso (como tentar encontrar uma agulha em um palheiro olhando para o celeiro inteiro). Em vez disso, o ANVIL usa uma abordagem de "contexto inteligente": ele olha apenas para o bloco específico de código (a função) ao redor da linha suspeita. Isso o tornou mais rápido e mais preciso.
  • Sucesso no Mundo Real: Para provar que funciona no mundo real, eles conectaram o ANVIL a um "fuzzer" (uma ferramenta que tenta quebrar softwares lançando dados aleatórios neles). O ANVIL ajudou o fuzzer a encontrar duas vulnerabilidades novas e anteriormente desconhecidas, sendo que uma delas era tão séria que recebeu um ID de segurança oficial (CVE).

A Conclusão
O ANVIL prova que você não precisa ensinar uma IA o que o "ruim" parece para encontrá-lo. Você só precisa perguntar à IA o que o "normal" parece. Quando o código não se encaixa no padrão "normal", é provável que esteja quebrado. É uma maneira mais inteligente, rápida e geral de encontrar brechas de segurança sem precisar de uma biblioteca massiva de erros passados para aprender.

Afogado em artigos na sua área?

Receba digests diários dos artigos mais recentes que correspondam às suas palavras-chave de pesquisa — com resumos técnicos, no seu idioma.

Experimentar Digest →