O que é o teste Fuzz?

O teste de difusão, ou difusão, é um método de verificar se um programa ou sistema de computador responderá a várias entradas e informações, às vezes aleatórias. O processo envolve a geração de algum tipo de dados, completamente aleatório ou aleatório, dentro de certas restrições, e depois alimentar esses dados no programa para testar como ele lida com informações inesperadas. A forma mais básica de teste de fuzz envolve enviar uma sequência aleatória de pressionamentos de tecla ou caracteres para o programa e verificar se os processa corretamente. Uma versão mais complexa do teste de fuzz usa dados estruturados que são manipulados e enviados aleatoriamente para o programa. Os dados podem chegar ao programa como eventos do sistema, entradas do teclado, sinais de rede simulados ou até como arquivos a serem carregados.

Existem várias partes de um programa de computador que podem ser testadas com um gerador de fuzz. A interface gráfica do usuário (GUI) pode ser testada criando uma sequência de eventos aleatórios de mouse e teclado e verificando se a GUI é capaz de lidar com a entrada sem travar, congelar ou executar uma tarefa inesperada. Os protocolos de rede podem ser testados, permitindo que o gerador de fuzz altere aleatoriamente partes de um pacote de dados válido e, em seguida, assegure que o protocolo possa continuar funcionando depois de receber dados malformados. Os elementos básicos de entrada de praticamente qualquer programa podem ser verificados quanto à capacidade de resistir a erros, como entradas muito longas para o tipo de armazenamento, entradas de um tipo diferente do esperado e entradas de alguma forma incompletas ou incorretas.

O setor de segurança de computadores pode usar o teste de fuzz para garantir que não haja falhas óbvias de segurança em determinados sistemas. Isso pode ser feito usando um gerador de fuzz projetado para testar a segurança do computador. Esses programas tentarão usar palavras-chave do sistema, senhas padrão conhecidas do administrador, funções nas bibliotecas que o programa usa e chamadas aleatórias para funções do sistema para ver como o programa reagirá.

Os diferentes tipos de teste de fuzz podem ser personalizados para estar dentro de determinados intervalos ou mesmo para testar apenas tipos específicos de entrada. Isso significa que um programa pode ter apenas comandos válidos enviados a ele, mas eles podem estar em uma ordem sem sentido. Existem programas de teste de fuzz mais complexos que podem pegar elementos do programa de destino e manipulá-los para produzir situações que podem ser exploradas maliciosamente. Isso pode incluir a alteração da ordem dos processos gerados, modificações de permissões ou modificação dos dados principais e dos arquivos da biblioteca.

O resultado final do teste de fuzz é verificar se um programa é seguro e se comporta como deveria quando confrontado com uma situação inesperada. Quando usado em conjunto com o software de análise e perfil, ele também pode detectar vazamentos de memória em áreas do programa, como tratamento de erros ou gargalos de desempenho. Nos casos de segurança do computador, problemas perigosos, como estouros que podem comprometer um sistema, podem ser detectados com a configuração correta. O teste de fuzz, no entanto, não pode ser usado como o único método de teste de software e precisa fazer parte de um processo maior de garantia de qualidade e inspeção de software.

OUTRAS LÍNGUAS

Este artigo foi útil? Obrigado pelo feedback Obrigado pelo feedback

Como podemos ajudar? Como podemos ajudar?