Name: | Description: | Size: | Format: | |
---|---|---|---|---|
5.12 MB | Adobe PDF |
Authors
Abstract(s)
In an era defined by rapid technological evolution, software systems underpin essential
domains such as healthcare, finance and digital communication. Central to these systems are
REST APIs, which enable seamless interaction across distributed services. However, the
increasing complexity and ubiquity of these APIs have elevated concerns surrounding their
security and robustness. Vulnerabilities in REST APIs can result in severe consequences,
including data breaches, service outages and compromised user trust highlighting the need for
intelligent and adaptive testing solutions.
This thesis explores the integration of reinforcement learning (RL) into automated software
testing, with a focus on algorithmic exploration strategies and evaluation metrics applied within
FuzzTheRest, a state-of-the-art REST API fuzzing tool. While FuzzTheRest leverages the Epsilon-
Greedy exploration strategy for action selection, its simplistic balance between exploration and
exploitation limits its effectiveness in navigating complex API environments and uncovering
subtle security flaws. To address these limitations, this review investigates the potential of
Boltzmann Exploration, a probabilistic approach that adjusts action selection based on a
softmax distribution over Q-values, enabling more nuanced and informed exploration of the
test space.
The study conducts a comparative analysis of multiple input generation strategies including
random, evolutionary and RL-driven techniques evaluating their performance in adaptation to
APIs and endpoints with complex parameterization terms, successful total number of HTTP
responses, exploration fuzzing metrics and computational efficiency. In particular, the review
highlights the impact of exploration strategies like Epsilon-Greedy and Boltzmann on the quality
and depth of fuzzing outcomes.
By synthesizing current literature and experimental insights, this review lays the groundwork
for advancing RL-guided fuzzing methodologies. The findings aim to empower developers,
testers and security practitioners with a deeper understanding of how exploration strategies
choices influence the effectiveness of automated testing tools, contributing to more secure and
resilient software systems.
Num contexto de rápida evolução tecnológica, os sistemas de software sustentam domínios essenciais como a saúde, as finanças e a comunicação digital. No centro destes sistemas encontram-se as APIs REST, que permitem a interação fluida entre serviços distribuídos. Contudo, a crescente complexidade e generalização destas APIs têm levantado sérias preocupações relativamente à sua segurança e robustez das mesmas. Vulnerabilidades em APIs REST podem resultar em consequências graves, como violações de dados, interrupções de serviço e perda de confiança por parte dos utilizadores o que sublinha a necessidade de soluções de teste inteligentes e adaptativas. Esta revisão sistemática explora a integração de técnicas de aprendizagem por reforço (Reinforcement Learning) no domínio dos testes automatizados de software, com foco nas estratégias de exploração de seleção de ações e métricas de avaliação aplicadas na ferramenta FuzzTheRest, uma solução avançada de fuzzing de APIs REST. Embora o FuzzTheRest utilize a estratégia de exploração Epsilon-Greedy na seleção de ações, a sua abordagem simplista na gestão do equilíbrio entre exploração e exploração limita a eficácia na navegação por ambientes API complexos e na deteção de vulnerabilidades subtis. Para resolver estas limitações, esta tese investiga o potencial da Exploração de Boltzmann, uma abordagem probabilística que ajusta a seleção de ações com base numa distribuição softmax dos valores Q, que permite uma exploração mais informada e precisa do espaço de testes. É realizada uma análise comparativa de diversas estratégias de geração de entradas que inclui abordagens aleatórias, evolutivas e baseadas em aprendizagem por reforço ao avaliar o seu desempenho na adaptação a APIs e endpoints com parametrização complexa, eficácia nas respostas HTTP em diversos cenários, métricas de exploração relacionadas a fuzzing e eficiência computacional. Em particular, destaca-se o impacto de estratégias de exploração como o Epsilon-Greedy e a Exploração de Boltzmann na qualidade e profundidade dos resultados de fuzzing. Ao sintetizar literatura atual e perceções experimentais, esta revisão estabelece as bases para o avanço de metodologias de fuzzing orientadas por aprendizagem por reforço. Os resultados visam fornecer aos programadores, testadores e profissionais de segurança uma compreensão mais aprofundada sobre como a escolha de estratégias de exploração influencia a eficácia das ferramentas de teste automatizado, contribuindo para sistemas de software mais seguros e resilientes.
Num contexto de rápida evolução tecnológica, os sistemas de software sustentam domínios essenciais como a saúde, as finanças e a comunicação digital. No centro destes sistemas encontram-se as APIs REST, que permitem a interação fluida entre serviços distribuídos. Contudo, a crescente complexidade e generalização destas APIs têm levantado sérias preocupações relativamente à sua segurança e robustez das mesmas. Vulnerabilidades em APIs REST podem resultar em consequências graves, como violações de dados, interrupções de serviço e perda de confiança por parte dos utilizadores o que sublinha a necessidade de soluções de teste inteligentes e adaptativas. Esta revisão sistemática explora a integração de técnicas de aprendizagem por reforço (Reinforcement Learning) no domínio dos testes automatizados de software, com foco nas estratégias de exploração de seleção de ações e métricas de avaliação aplicadas na ferramenta FuzzTheRest, uma solução avançada de fuzzing de APIs REST. Embora o FuzzTheRest utilize a estratégia de exploração Epsilon-Greedy na seleção de ações, a sua abordagem simplista na gestão do equilíbrio entre exploração e exploração limita a eficácia na navegação por ambientes API complexos e na deteção de vulnerabilidades subtis. Para resolver estas limitações, esta tese investiga o potencial da Exploração de Boltzmann, uma abordagem probabilística que ajusta a seleção de ações com base numa distribuição softmax dos valores Q, que permite uma exploração mais informada e precisa do espaço de testes. É realizada uma análise comparativa de diversas estratégias de geração de entradas que inclui abordagens aleatórias, evolutivas e baseadas em aprendizagem por reforço ao avaliar o seu desempenho na adaptação a APIs e endpoints com parametrização complexa, eficácia nas respostas HTTP em diversos cenários, métricas de exploração relacionadas a fuzzing e eficiência computacional. Em particular, destaca-se o impacto de estratégias de exploração como o Epsilon-Greedy e a Exploração de Boltzmann na qualidade e profundidade dos resultados de fuzzing. Ao sintetizar literatura atual e perceções experimentais, esta revisão estabelece as bases para o avanço de metodologias de fuzzing orientadas por aprendizagem por reforço. Os resultados visam fornecer aos programadores, testadores e profissionais de segurança uma compreensão mais aprofundada sobre como a escolha de estratégias de exploração influencia a eficácia das ferramentas de teste automatizado, contribuindo para sistemas de software mais seguros e resilientes.
Description
Keywords
Reinforcement Learning Fuzzing REST APIs Epsilon-Greedy Boltzmann Exploration Exploration Strategies Automated Software Testing Fuzzing Metrics FuzzTheRest Aprendizagem por reforço Exploração de Boltzmann Estratégias de exploração Testes automatizados de software Métricas de fuzzing