Skip to main content
Todos os Termos Glossary

Fuzzing (Client-Side)

Definition

O fuzzing client-side é uma técnica de teste que insere dados aleatórios, malformados ou inesperados em aplicações baseadas no navegador para identificar vulnerabilidades de segurança e bugs. Ele ajuda a descobrir problemas no tratamento de entradas, na manipulação do DOM e na execução de JavaScript. As ferramentas modernas de fuzzing costumam combinar a geração de entradas aleatórias com algoritmos guiados por cobertura para maximizar a eficácia dos testes.

Como funciona o fuzzing do lado do cliente

Fuzzing é uma técnica de teste automatizada que alimenta um programa com grandes volumes de entradas aleatórias, malformadas ou deliberadamente inesperadas para ver o que quebra. Aplicado ao lado do cliente, ele tem como alvo o navegador e as aplicações baseadas em navegador: analisadores de HTML e CSS, o motor JavaScript, as APIs do DOM, os decodificadores de imagens e fontes e o código de tratamento de entrada dos apps web. Um fuzzer gera ou modifica casos de teste, os executa e observa falhas, travamentos, erros de memória ou falhas de asserção que sinalizam um bug. Os fuzzers modernos são guiados por cobertura: eles instrumentam o código e favorecem entradas que alcançam novos caminhos de execução, explorando de forma constante mais partes do programa do que o teste aleatório cego faria.

Por que o fuzzing importa para a segurança

O fuzzing é uma das maneiras mais produtivas de encontrar bugs sérios antes dos atacantes. Os fornecedores de navegadores executam fuzzing contínuo em grande escala para descobrir falhas de corrupção de memória em motores e analisadores, e as mesmas técnicas são o que atacantes e pesquisadores usam para descobrir dias zero exploráveis. Para desenvolvedores de aplicações web, aplicar fuzzing a manipuladores de entrada e analisadores do lado do cliente revela casos extremos, como dados malformados que disparam XSS baseado em DOM ou provocam falhas, que os testes baseados em exemplos deixam passar. Como ele explora entradas que uma pessoa nunca pensaria em escrever, o fuzzing repetidamente encontra defeitos em código maduro e bem revisado, e é por isso que faz parte padrão do desenvolvimento seguro e da pesquisa de vulnerabilidades.

Como usar o fuzzing de forma eficaz

Trate o fuzzing como parte de um ciclo de vida de desenvolvimento seguro em vez de algo pontual. Escolha ferramentas guiadas por cobertura, forneça a elas um bom conjunto de entradas semente e um alvo que falhe de forma visível (asserções mais sanitizadores como o ASan para código nativo) e execute-as continuamente para que o código novo continue sendo exercitado. Combine o fuzzing com sanitizadores para capturar erros de memória silenciosos, e faça a triagem e a correção de cada falha reproduzível, já que uma falha frequentemente marca uma condição explorável. Para apps web, aplique fuzzing a qualquer código que analise entradas não confiáveis e o combine com análise estática e revisão de código. O fuzzing complementa, mas não substitui, o monitoramento do que o código de terceiros realmente faz em produção.

Definição

O fuzzing é um ataque ou uma defesa?

Ambos usam a mesma técnica. Os defensores aplicam fuzzing ao próprio software para encontrar e corrigir bugs antes do lançamento, enquanto atacantes e pesquisadores aplicam fuzzing a software amplamente usado para descobrir vulnerabilidades que possam explorar ou reportar. O método é neutro; o resultado depende de quem o executa e do que faz com as falhas que encontra.

Definição

O que é fuzzing guiado por cobertura?

É o fuzzing que instrumenta o alvo para medir quais caminhos de código cada entrada alcança e, então, prioriza e modifica as entradas que abrem novos caminhos. Esse laço de realimentação explora muito mais do programa do que a entrada aleatória sozinha, encontrando bugs mais profundos mais rapidamente. AFL e libFuzzer são exemplos conhecidos.

Got more questions

Talk to a security expert

We answer client-side security questions every day. Bring yours.

Agende uma demonstração

Quer ver isso em detalhe com um engenheiro?

Trinta minutos, no seu próprio site. Sem slides.

Agende uma demo personalizada para ver:

Como alcançar a conformidade com os requisitos 6.4.3 e 11.6.1 do PCI DSS em 1 dia
Por que scripts de terceiros são um risco de segurança para você e seus visitantes
Como monitorar vazamentos de privacidade e consentimento (RGPD, CCPA) em cada terceiro
Como conter abuso de cadastros, compartilhamento de contas e fraude de chargeback com device intelligence
Como detectar e controlar agentes de IA e bots que acessam seu site em tempo real

Prefere só mandar uma pergunta?

Procurando horários livres…

Apenas humanos de verdade. A gente saberia.

Problemas para agendar? Abrir o agendador em uma nova aba

O que você está tentando resolver?

Conte em uma linha e voltamos com algo útil, não com um discurso genérico.

Costumamos ajudar com:

Ver quais scripts de terceiros rodam no seu site
Evidências para PCI DSS 6.4.3 e 11.6.1
Bots, agentes de IA e roubo de contas

Prefere agendar um horário? Escolher um horário