Please use this identifier to cite or link to this item:
https://hdl.handle.net/10216/106509| Author(s): | Sofia Oliveira Reis |
| Title: | Assessing software vulnerabilities using Naturally Occurring Defects |
| Issue Date: | 2017-07-13 |
| Abstract: | Currently, to satisfy the high number of system requirements, complex software is created which turns its development cost-intensive and more susceptible to security vulnerabilities. In software security testing, empirical studies typically use artificial faulty programs because of the challenges involved in the extraction or reproduction of real security vulnerabilities. Thus, researchers tend to use hand-seeded faults or mutations to overcome these issues which might not be suitable for software testing techniques since the two approaches can create samples that inadvertently differ from the real vulnerabilities. Secbench is a database of security vulnerabilities mined from Github which hosts millions of open-source projects carrying a considerable number of security vulnerabilities. The majority of software development costs is on identifying and correcting defects. In order to minimize such costs, software engineers answered creating static analysis tools that allow the detection of defects in the source code before being sent to production or even executed. Despite the promising future of these tools on reducing costs during the software development phase, there are studies that show that the tools' vulnerabilities detection capability is comparable or even worse than random guessing, i.e., these tools are still far from their higher level of maturity, since the percentage of undetected security vulnerabilities is high and the number of correctly detected defects is lower than the false ones. This study evaluates the performance and coverage of some static analysis tools when scanning for real security vulnerabilities mined from Github. Each vulnerability represents a test case containing the vulnerable code (Vvul) which can or can not be exposed; and, the non-vulnerable code (Vfix) - fix or patch - which is not exposed. These test cases were executed by the static analysis tools and yielded a better analysis in terms of performance and security vulnerabilities coverage. This methodology allowed the identification of improvements in the static analysis tools that were studied. Besides contributing to the improvement of these tools, it also contributes to a more confident tools choice by security consultants, programmers and companies. |
| Description: | Atualmente, de forma a satisfazer o elevado número de requisitos de um sistema, é produzido software complexo que torna o seu desenvolvimento custoso e mais susceptível a vulnerabilidades de segurança. Na área de testes aplicados à segurança, estudo empíricos usam tipicamente programas com falhas artificiais devido aos desafios envolvidos na extração e reprodução de vulnerabilidades de segurança reais. Portanto, os investigadores tendem a usar falhas artificialmente plantadas ou mutações para ultrapassar esses problemas que podem não ser o mais adequado às técnicas na área de testes de software dado que as duas abordagens podem criar amostras que inadvertidamente diferem de vulnerabilidades reais. Secbench é uma base de dados de vulnerabilidades de segurança extraídas do Github que inclui milhões de projetos open-source que possuem um número considerável de vulnerabilidades de segurança. A maioria dos custos no desenvolvimento de software é na identificação e correção de defeitos. De forma a minimizar esses custos, os engenheiros de software responderam com a criação de ferramentas de análise estática que permitem a deteção de defeitos no código fonte antes de ser enviado para produção or até executado. Apesar do futuro promissor destas ferramentas na redução de custos durante a fase de desenvolvimento de software, há estudos que mostram que a sua capacidade na deteção de vulnerabilidades é comparável ou até pior que deteção aleatória, i.e., estas ferramentas estão ainda longe do seu maior nível de maturidade, visto que a percentagem de vulnerabilidades de segurança não detetadas é maior e o número de vulnerabilidades detetadas corretamente é menor que as detetadas falsamente. Este estudo avalia a performance e cobertura de algumas ferramentas de análise estática quando procurando por vulnerabilidades de segurança reais extraídas do Github. Cada vulnerabilidade representa um caso de teste que contém o código vulnerável (Vvul) que pode ou não ser exposto; e, o código não vulnerável (Vfix) - correção ou patch - que não é exposto. Estes casos de teste foram executados pelas ferramentas de análise estática e levaram a uma melhor análise em termos de perfomance e cobertura de ferramentas de análise estática. Esta metodologia permitiu identificar melhoramentos nas ferramentas de análise estática que foram estudadas. Além de contribuir para o melhoramento destas ferramentas, também contribui para uma maior confiança na escolha das mesmas por consultores na área de segurança, programadores and companies. |
| Subject: | Engenharia electrotécnica, electrónica e informática Electrical engineering, Electronic engineering, Information engineering |
| Scientific areas: | Ciências da engenharia e tecnologias::Engenharia electrotécnica, electrónica e informática Engineering and technology::Electrical engineering, Electronic engineering, Information engineering |
| DOI: | 10.34626/pf6y-b964 |
| TID identifier: | 201803402 |
| URI: | https://hdl.handle.net/10216/106509 |
| Document Type: | Dissertação |
| Rights: | openAccess |
| License: | https://creativecommons.org/licenses/by-nc-nd/4.0/ |
| Appears in Collections: | FEUP - Dissertação |
Files in This Item:
| File | Description | Size | Format | |
|---|---|---|---|---|
| 205641.pdf | Assessing software vulnerabilities using Naturally Occurring Defects | 8.17 MB | Adobe PDF | ![]() View/Open |
This item is licensed under a Creative Commons License
