Tesis
Avaliação da qualidade dos testes de detecção de vulnerabilidades apoiada pela análise de cobertura de código
Evaluation of the quality of vulnerability detection tests support by code coverage analysis
Registro en:
Autor
Matsunaga, Ana Paula Sayuri, 1988-
Institución
Resumen
Orientador: Regina Lúcia de Oliveira Moraes Dissertação (mestrado) - Universidade Estadual de Campinas, Faculdade de Tecnologia Resumo: Inúmeros são os desafios relacionados à detecção de vulnerabilidades de sistemas disponíveis na Web que, frequentemente são implementados com vulnerabilidades no código. Esses desafios se estendem também aos Web Services. Um dos problemas recorrentes é a exploração das vulnerabilidades de um serviço por usuários mal-intencionados. Esses usuários têm como objetivo atacar o sistema para ter acesso a dados privados e acessos não autorizados. Por esse motivo, empresas investem constantemente na segurança de sistemas computacionais, com a finalidade de proteger suas informações, bem como os dados de seus clientes. Prestadores de serviços disponibilizam ou comercializam ferramentas para auxiliar na detecção de vulnerabilidades em aplicações de software. Estas ferramentas, denominadas Scanners de Vulnerabilidades, foram alvo de vários estudos, cujos resultados apontaram uma baixa eficácia dessas ferramentas, devido às suas altas taxas de falsos positivos e baixa cobertura. A cobertura de código é frequentemente considerada uma métrica de qualidade de testes e, consequentemente, de dependabilidade do software. Embora essa afirmação possa ser válida no âmbito de testes de detecção de vulnerabilidades, na prática tal suposição ainda está para ser demonstrada. Este trabalho propõe estudar a relação entre as medidas de cobertura de código e a qualidade dos resultados dos testes executados por ferramentas de detecção de vulnerabilidades, em especial vulnerabilidades de Injeção SQL. Essa relação é de extrema importância para auxiliar os desenvolvedores a avaliarem a qualidade dos detectores de vulnerabilidades e para comparar ferramentas alternativas. Para estudar esta relação, foram consideradas duas ferramentas de detecção de vulnerabilidades e múltiplas configurações de testes. Os resultados mostram que a cobertura de código é de fato um meio eficaz para estimar a qualidade de testes de detecção de vulnerabilidades e é útil para comparar diferentes conjuntos de testes. No entanto, eles também mostram que algumas métricas são claramente melhores do que outras e, que métricas de domínios específicos são mais eficazes do que as genéricas Abstract: There are many challenges related to the detection of vulnerabilities in systems that are exposed in the Web, which are frequently implanted with code vulnerabilities. These challenges are also extended to Web Services. One of the most recurring problems is the exploitation of vulnerabilities in the software by users who do not have good intentions and aim to attack the system to access private data and unauthorized access. For that reason, companies have been constantly investing in system security, in order to protect their information and the information of their customers. Service providers offer tools that help to detect vulnerabilities in software applications. These tools, called Vulnerability Scanners, have been the target of several studies. These studies show low efficacy in these tools due to their high rates of false positives and low coverage. Code coverage is frequently considered a metric of the quality of the tests and, consequently, of the software dependability. Although this affirmation may be valid in the context of vulnerability detection tests, in practice, this assumption has yet to be demonstrated. This work proposes to study the relation between code coverage measurements and the quality of the results of tests executed by vulnerability detection tools, in particular SQL Injection. Such relation is very important for developers to evaluate the quality of vulnerability detectors are and to compare alternative tools. To study this relationship, were considered two state-of-the-art tools and multiple testing configurations. Results show that code coverage is indeed an effective mean to estimate the quality of vulnerability detection tests and is useful to compare different sets of tests. However, they also show that some metrics are clearly better than others, and that domain specific metrics are more effective than generic ones Mestrado Tecnologia e Inovação Mestra em Tecnologia