|
Abstract:
|
A segurança de software tornou-se um requisito imperativo no desenvolvimento de sistemas modernos, especialmente diante da complexidade das aplicações e da sofisticação das ameaças cibernéticas. Neste cenário, o Fuzzing consolida-se como uma técnica eficaz para a descoberta de vulnerabilidades, embora a literatura existente apresente um viés histórico voltado para linguagens como C e C++, deixando o Java fragmentado e carente de sistematização. Este trabalho tem como objetivo propor uma taxonomia unificada para as técnicas de Fuzzing em Java, fundamentada em um Mapeamento Sistemático da Literatura. Foram identificadas e analisadas 22 ferramentas aplicáveis à Java Virtual Machine (JVM), as quais foram categorizadas sob cinco eixos técnicos: criação de caso de teste, estrutura da entrada, abordagem de exploração, consciência do alvo e domínio de aplicação. Os resultados demonstram a predominância de ferramentas "espertas" e de domínio específico, indicando que a forte tipagem do Java inviabiliza abordagens de força bruta ingênuas. Adicionalmente, o estudo diagnostica lacunas críticas, como a interferência do compilador Just-In-Time (JIT) no determinismo dos testes e a subutilização de técnicas de Machine Learning (ML). A taxonomia proposta oferece uma visão estruturada do estado da arte, fornecendo diretrizes para a seleção de ferramentas e apontando caminhos para a evolução da pesquisa em segurança na plataforma Java. |