Yanni, analista de segurança, necessita prever e testar tipos potenciais de entradas não padronizadas que poderiam ser exploradas por um atacante para subverter um programa. Nesse contexto, Yanni afirma que:
- A)a técnica de fuzzing é um protocolo de teste de software que usa dados gerados aleatoriamente como entradas para um programa;
Errada: fuzzing e uma tecnica de teste automatizado, nao um protocolo, e nem depende apenas de dados puramente aleatorios.
- B)a técnica de fuzzing é também usada por atacantes para identificar bugs potencialmente úteis em softwares comumente utilizados;
Certa: atacantes tambem usam fuzzing para descobrir falhas e bugs exploraveis em softwares amplamente utilizados.
- C)a principal desvantagem da técnica de fuzzing é sua complexidade e o fato de ser livre de suposições sobre a entrada esperada por qualquer programa;
Errada: a grande vantagem do fuzzing e justamente trabalhar com pouca ou nenhuma suposicao sobre a entrada, nao uma desvantagem.
- D)a capacidade de aplicação em argumentos passados em linhas de comando e protocolos de rede são algumas vulnerabilidades da técnica de fuzzing;
Errada: argumentos de linha de comando e protocolos de rede sao alvos comuns do fuzzing, nao vulnerabilidades da tecnica.
- E)as saídas também podem ser geradas de acordo com algum gabarito. Tais gabaritos são projetados para examinar cenários com baixa probabilidade de bugs.
Errada: os “gabaritos” ou oraculos no fuzzing servem para comparar resultados esperados e identificar falhas, nao para focar em cenarios de baixa probabilidade de bugs.
Gabarito: B
Fuzzing é uma tecnica de teste que envia entradas inesperadas, malformadas ou aleatorias para ver se o sistema quebra, trava ou revela falhas. A ideia é simples e eficiente: se o programa aceita dados, vale tentar “cutucar” com formatos estranhos para descobrir bugs de validacao, estouro, falhas de memoria ou comportamentos nao previstos. Em provas, a banca costuma cobrar a definicao basica e o uso pratico da tecnica. A afirmacao correta e a letra B porque o fuzzing nao serve so para laboratorios e defensores. Atacantes tambem usam essa tecnica para encontrar falhas exploraveis em softwares populares, especialmente os mais difundidos e com muitos usuarios. Quanto mais comum o programa, maior o premio para quem achar um bug util antes dos outros. Importante nao confundir: fuzzing nao e um protocolo, e sim uma tecnica de teste automatizado. Ele pode usar entradas aleatorias, mas tambem entradas mutadas, geradas por modelos ou guiadas por cobertura de codigo. Ou seja, a ideia de “jogar lixo aleatorio” ajuda, mas o conceito vai um pouco alem disso. Em resumo, voce pode pensar no fuzzing como um “teste de stress com criatividade”. Ele tenta fazer o programa engasgar com dados esquisitos para revelar fragilidades que um teste comum talvez nao enxergue.