O que é o teste de fuzz?
Teste de Fuzz, ou Fuzzing, é um método de verificação para ver como um programa ou sistema de computador responderá a várias, às vezes aleatórias, entradas e informações. O processo envolve a geração de algum tipo de dados, completamente aleatório ou aleatório dentro de certas restrições e, em seguida, alimentando esses dados no programa para testar como ele lida com informações inesperadas. A forma mais básica de teste de fuzz envolve o envio de uma sequência aleatória de pressões ou caracteres de chaves para o programa e verificando que os processa corretamente. Uma versão mais complexa do teste fuzz usa dados estruturados que são manipulados e enviados aleatoriamente para o programa. Os dados podem alcançar o programa como eventos do sistema, entradas de teclado, sinais de rede simulados ou mesmo como arquivos que devem ser 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 TESted pela criação de 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 fuzz altere aleatoriamente partes de um pacote de dados válido e, em seguida, garantindo que o protocolo possa continuar funcionando após o recebimento de dados malformados. Os elementos básicos de entrada de praticamente qualquer programa podem ser verificados quanto à sua capacidade de resistir a erros, como entrada que é muito longa para o tipo de armazenamento, entrada de um tipo diferente do esperado e entrada de alguma forma incompleta ou incorreta.
O setor de segurança de computadores pode usar testes de fuzz para garantir que não existam orifícios de segurança óbvios 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 de administrador padrão conhecidas, funções dentro das bibliotecas que o programa usa e call acalls 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 certos intervalos, ou mesmo para testar apenas tipos específicos de entrada. Isso significa que um programa pode ter apenas comandos válidos, mas eles podem estar em uma ordem sem sentido. Existem programas de teste de fuzz mais complexos que podem levar 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 que são gerados, modificações de permissões ou modificação de dados principais e arquivos da biblioteca.
O resultado final do teste de fuzz é ver se um programa é seguro e se comporta como deveria quando confrontado com uma situação inesperada. Quando usado em conjunto com o software de criação de perfis e análise, ele também pode detectar vazamentos de memória em áreas do programa, como manuseio de erros ou gargalos de desempenho. Nos casos de segurança do computador, problemas perigosos, como transbordamentos que podem comprometer -seomise um sistema pode ser capturado com a configuração correta. Os testes fuzz, no entanto, não podem ser usados 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.