Detecção de Vulnerabilidades em Hosts USB utilizando Técnicas de Fuzzing Externo

Aluno: Gabriel Geraldino de Souza (gabrielgeraldino(at)usp.br)
Orientador: Prof. Dr. Marcos Antonio Simplicio Junior
Link para a monografia
Link para o repositório

Resumo

O protocolo Universal Serial Bus (USB) é uma das interfaces de comunicação mais onipresentes em sistemas computacionais, conectando desde periféricos simples a componentes de sistemas críticos, como caixas eletrônicos e dispositivos industriais. Essa ampla adoção, contudo, o estabelece como uma significativa superfície de ataque. Este trabalho tem como objetivo principal avaliar a segurança de sistemas que utilizam o protocolo USB por meio de fuzzing, uma técnica de teste automatizada que consiste no envio de dados massivos, inválidos ou inesperados para a descoberta de vulnerabilidades. Este trabalho envolve uma revisão da literatura sobre o protocolo USB e falhas conhecidas, seguida pelo desenvolvimento de uma ferramenta de software capaz de interpretar, manipular e reproduzir capturas de tráfego USB (.pcap) em baixo nível, utilizando o módulo raw-gadget do kernel Linux. Esta ferramenta foi integrada a fuzzers como syzkaller e radamsa, para automatizar a geração de casos de teste e identificar falhas de segurança, como negação de serviço, corrupção de memória e outras anomalias no tratamento de pacotes. Os experimentos demonstram a eficácia da ferramenta em encontrar vulnerabilidades de classes predeterminadas e avaliam sua performance em relação à viabilidade prática de seu uso.
Palavras-chave: USB. Fuzzing. Análise de Vulnerabilidades. Teste de Software.