Pular para o conteúdo principal

Questão de Segurança da Informação — Práticas de Segurança e Ameaças em Programação — CESPE / CEBRASPE 2024

Segurança da InformaçãoPráticas de Segurança e Ameaças em Programação
Código
ce404069
Banca
CESPE / CEBRASPE
Órgão
BACEN
Ano
2024
Cargo
Ana ( )

Em relação aos principais tipos de ataques a aplicações web e a sua prevenção, julgue o seguinte item.


Fuzzing é um tipo de teste de prevenção de ataques que consiste na inserção de poucos dados não aleatórios em uma aplicação web com a expectativa de se obter um código de erro 500.

  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoE — Errado

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Fuzzing: técnica de teste de segurança

❌ ERRADO. O fuzzing é uma técnica de teste de software que consiste na injeção massiva de dados aleatórios ou semi-aleatórios em uma aplicação, com o objetivo de encontrar falhas de implementação, estabilidade e segurança — e não na inserção de "poucos dados não aleatórios" com a expectativa de obter um código de erro 500. O erro 500 é apenas uma possível consequência, não o objetivo do teste.

O fuzzing (ou fuzz testing) é uma técnica de teste de software, geralmente classificada como teste de caixa-preta (black box), que visa descobrir vulnerabilidades e bugs em uma aplicação. A ideia central é submeter o programa a uma grande quantidade de entradas inesperadas, malformadas ou aleatórias, para observar como ele se comporta. Se a aplicação falhar, travar ou apresentar um comportamento inesperado, isso indica uma possível vulnerabilidade que pode ser explorada por um atacante.

A definição correta envolve três elementos-chave que a assertiva distorce:

  1. Quantidade de dados: o fuzzing utiliza muitos dados (injeção massiva), não "poucos dados".

  2. Natureza dos dados: os dados são aleatórios ou semi-aleatórios, não "não aleatórios".

  3. Objetivo: o objetivo é encontrar falhas e vulnerabilidades (como crashes, vazamentos de memória, erros não tratados), não especificamente "obter um código de erro 500". O erro 500 (Internal Server Error) pode ser um dos resultados observados, mas não é a finalidade do teste.

O fuzzing é uma ferramenta importante no desenvolvimento seguro de software, pois permite identificar problemas que poderiam ser explorados por ataques como buffer overflow, SQL injection e outros. Ele pode ser aplicado em diferentes camadas: fuzzing de protocolos, de arquivos, de interfaces de programação (APIs), entre outros.

A banca explora aqui uma confusão clássica: o candidato que conhece superficialmente o termo "fuzzing" pode associá-lo a "teste de prevenção" e "erro 500", mas a definição técnica é bem mais específica. O fuzzing não é um "teste de prevenção" em si, mas uma técnica de detecção de vulnerabilidades — ele ajuda a prevenir ataques ao revelar falhas antes que sejam exploradas, mas sua natureza é de teste, não de prevenção direta.

NÃO CAIA NESSA!

A banca inverte três características essenciais do fuzzing de uma só vez: troca "muitos dados aleatórios" por "poucos dados não aleatórios" e ainda atribui um objetivo específico (erro 500) que não é o propósito do teste. O candidato que memorizou apenas a palavra "fuzzing" sem entender o conceito cai facilmente. Lembre-se: fuzzing = injeção massiva de dados aleatórios para encontrar falhas.

1Natureza
Técnica de teste black box
Detecção de vulnerabilidades
2Características
Injeção massiva de dados
Dados aleatórios/semi-aleatórios
Automatizado
3Objetivo
Encontrar falhas e bugs
Forçar comportamento inesperado
4Possíveis resultados
Crash
Erro 500 (sintoma, não meta)
Vazamento de memória
Fuzzing (fuzz testing)
LEVELsoulevel.com.br
Fuzzing (fuzz testing): Natureza (Técnica de teste black box, Detecção de vulnerabilidades); Características (Injeção massiva de dados, Dados aleatórios/semi-aleatórios, Automatizado); Objetivo (Encontrar falhas e bugs, Forçar comportamento inesperado); Possíveis resultados (Crash, Erro 500 (sintoma, não meta), Vazamento de memória)

Item — ❌ Errado

A assertiva está incorreta por três motivos:

  1. "poucos dados não aleatórios": o fuzzing utiliza muitos dados aleatórios ou semi-aleatórios, gerados de forma automatizada. A palavra "poucos" e "não aleatórios" contradiz diretamente a definição da técnica.

  1. "teste de prevenção de ataques": o fuzzing é uma técnica de teste de segurança (detecção de vulnerabilidades), não um mecanismo de prevenção. Ele ajuda a identificar falhas que, se corrigidas, previnem ataques, mas sua função imediata é testar, não prevenir.

  1. "com a expectativa de se obter um código de erro 500": o objetivo do fuzzing é encontrar falhas e comportamentos inesperados (crashes, exceções, vazamentos de memória). O erro 500 pode ser um dos sintomas observados, mas não é a expectativa central do teste. O fuzzing busca qualquer tipo de falha, não um código de erro específico.

A definição correta, conforme o material de apoio, é: "Fuzz testing ou Fuzzing é uma técnica de teste de software Black Box, que basicamente consiste em encontrar bugs de implementação usando injeção massiva de dados aleatórios / semi-aleatórios de forma automatizada forçando o software a falhar."

Gabarito: E (Errado).

Link permanente: /questoes/ce404069