← Últimos artigos
💻 computer science

On Interaction Effects in Greybox Fuzzing

O artigo propõe o MuoFuzz, um fuzzer cinza que aprende e seleciona sequências de mutadores com base em seus efeitos interativos, demonstrando desempenho superior ao AFL++ e ao MOPT em benchmarks como FuzzBench e MAGMA ao encontrar bugs adicionais e alcançar maior cobertura de código.

Autores originais: Konstantinos Kitsios, Marcel Böhme, Alberto Bacchelli

Publicado 2026-04-24
📖 4 min de leitura☕ Leitura rápida

Autores originais: Konstantinos Kitsios, Marcel Böhme, Alberto Bacchelli

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ê é um detetive tentando encontrar um segredo escondido dentro de uma máquina complexa (um software). Para achar o segredo, você precisa tentar abrir a máquina de milhões de maneiras diferentes, como se estivesse batendo em todas as portas, girando todas as maçanetas e apertando todos os botões.

No mundo da segurança de computadores, isso é chamado de "Fuzzing" (ou "testes de fuzz"). O objetivo é encontrar bugs (erros) que fazem a máquina quebrar ou travar, revelando falhas de segurança.

Aqui está a história do que os autores descobriram e como eles criaram uma nova ferramenta chamada MuoFuzz, explicada de forma simples:

1. O Problema: O Caos Aleatório

Imagine que você tem uma caixa de ferramentas com 32 tipos diferentes de martelos, chaves de fenda e alicates (os "mutadores"). Para testar a máquina, você pega um objeto (um "semente" ou seed) e começa a bater nele com essas ferramentas.

  • O jeito antigo (AFL++): O fuzzer escolhe as ferramentas aleatoriamente. Ele pode pegar um martelo, depois um alicate, depois um martelo de novo. É como tentar abrir um cadeado girando as rodas de números completamente ao acaso. Funciona, mas é lento e ineficiente.
  • O jeito intermediário (MOPT): Eles tentaram aprender quais martelos funcionam melhor sozinhos. Se o martelo "A" abre muitas portas, eles usam mais o martelo "A". Mas eles ainda tratavam cada martelo como se estivesse sozinho, sem considerar o que veio antes.

2. A Grande Descoberta: A Dança das Ferramentas

Os autores do artigo notaram algo interessante: a ordem importa.

Eles descobriram que certas ferramentas funcionam muito melhor quando usadas em uma sequência específica.

  • Analogia: Pense em cozinhar. Se você colocar o sal na água antes de ferver, é ótimo. Se você colocar o sal depois de colocar o macarrão, pode não ficar tão bom. O efeito do sal depende do que veio antes.
  • No software, eles viram que, por exemplo, se você primeiro "deletar um pedaço" de um arquivo e depois "inverter um bit", você tem uma chance muito maior de encontrar um erro do que se fizer o contrário ou usar essas ferramentas aleatoriamente.

Existe uma "interação" entre as ferramentas. O sucesso de uma depende da outra.

3. A Solução: MuoFuzz (O Chef Inteligente)

Para aproveitar essa descoberta, eles criaram o MuoFuzz. Pense nele como um chef de cozinha que aprendeu a receita perfeita, em vez de apenas jogar ingredientes na panela.

O MuoFuzz funciona em duas fases:

  1. Fase de Treinamento (Aprendizado):

    • O fuzzer começa a testar o software de forma "caótica" (como os outros) por algumas horas.
    • Durante esse tempo, ele anota em um caderno: "Quando usei a ferramenta X e depois a ferramenta Y, conseguimos abrir uma porta nova!".
    • Ele cria um mapa de probabilidades: "Se eu usei a ferramenta X, qual é a chance de a ferramenta Y funcionar bem em seguida?".
  2. Fase Guiada (A Execução):

    • Agora que ele aprendeu o mapa, ele para de chutar.
    • Quando ele escolhe uma ferramenta, ele olha para o caderno e pergunta: "Ok, acabei de usar o martelo. Qual é a próxima ferramenta que tem mais chance de funcionar bem depois do martelo?".
    • Ele segue essa "dança" de ferramentas, criando sequências muito mais inteligentes e eficientes.

4. Os Resultados: Quem Ganhou?

Eles testaram o MuoFuzz contra os campeões atuais (AFL++ e MOPT) em vários programas reais.

  • Cobertura de Código: O MuoFuzz conseguiu explorar mais partes do software (achou mais "caminhos" dentro da máquina) do que os outros em 9 de 13 programas testados.
  • Velocidade: Para chegar ao mesmo nível de descoberta que os outros levavam 24 horas para atingir, o MuoFuzz fez isso em média em 15 horas. Ele é mais rápido porque não perde tempo tentando combinações que não funcionam.
  • Bugs Encontrados: O MuoFuzz encontrou 4 bugs que o AFL++ não viu e 1 bug que nem o AFL++ nem o MOPT viram.

5. Conclusão Simples

A lição principal é: Não basta apenas escolher as melhores ferramentas; é preciso saber a ordem certa de usá-las.

Assim como um músico não toca notas aleatórias, mas segue uma melodia onde cada nota prepara a próxima, o MuoFuzz aprende a "melodia" das ferramentas de teste. Ao entender que uma ferramenta influencia a próxima, ele se torna um detetive muito mais esperto, encontrando falhas de segurança mais rápido e com menos esforço.

Em resumo: O MuoFuzz transformou o teste de software de um "jogo de sorte" em um "jogo de estratégia", usando a inteligência das interações entre as ferramentas para vencer.

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 →