Dissertação

{pt_PT= A Comparative Study of Automatic Software Repair Techniques for Security Faults} {} EVALUATED

{pt=A rápida expansão das Tecnologias da Informação (TIC) e Comunicação trouxe consigo ameaças cibernéticas por meio de falhas de segurança no software. Corrigir essas falhas requer conhecimento especializado e uma compreensão completa dos sistemas. Na área da engenharia de software, muitos estudos têm sido feitos, propondo ferramentas e técnicas de reparo para aumentar a qualidade, produtividade e reduzir a intervenção humana nas atividades de depuração e teste. No entanto, devem tratar de significativamente mais falhas de segurança e fornecer uma melhor percepção aos analistas humanos. Analisamos os estudos na área e descobrimos que as falhas de segurança são pouco abordadas. Motivados pela lacuna, desenvolvemos um sistema para avaliar e comparar a capacidade das ferramentas de reparo. Com esse sistema, conduzimos o primeiro estudo onde investigamos a capacidade de reparo, especificidade e adequação das ferramentas de reparo para corrigir falhas de segurança. Os nossos resultados mostram que as técnicas de reparo podem corrigir falhas específicas de segurança. No entanto, estão longe de ser eficazes, e essas corrigem individualmente no máximo 21,4% e em conjunto 30,4% dos 56 programas vulneráveis avaliados. As vulnerabilidades dos programas são classificadas no top 25 das falhas mais críticas em software. As principais classes são CWE-664, CWE-118 e CWE-682. Além disso, descobrimos que ferramentas podem gerar patches que corrige a falha de segurança mas que comprometem bastante a funcionalidade do programa. Quanto à técnica de reparo, a programação genética é mais eficaz, e a baseada em dados é mais eficiente para reparar falhas de segurança., en=The rapid expansion of Information and Communication Technologies (ICT) brought with it at the same pace cyber threats through the medium of security faults in software. Fixing these require expert knowledge and a thorough understanding of systems. Within the field of software engineering, plenty of research has been made, proposing repair tools and techniques to increase the quality, productivity and reduce human intervention within the activities of debugging and testing. However, these must reason about significantly more security faults and give greater insight to human analysts. We analyze the studies in the area to find these did not explore enough security faults nor a common baseline standard for evaluating them. That motivates a system for assessing, evaluating, and comparing the ability of Automatic Program Repair (APR) tools. With that system, we conduct the first case study to investigate the repairability, specificity, and suitability of APR tools to fix security faults. Our findings show that current state-of-art repair techniques can repair specific categories of security faults. However, these are farther from being effective as the subject tools fix individually at most 21.4%, and together 30.4% of 56 vulnerable applications which are among the top 25 most dangerous software weaknesses, such as CWE-664, CWE-118, and CWE-682. Also, we found that state-of-art tools can generate patches that fix the security fault but mostly compromise a program's functionality. As for the repair technique, genetic programming is more effective, and the data-driven is more efficient for repairing security faults.}
{pt=Medidores, Tecnologia, Comportamento, Reparo Automático de Programas, Segurança, en=Gauges, Technology, Behavior, Automatic Program Repair, Security}

janeiro 13, 2021, 10:30

Publicação

Obra sujeita a Direitos de Autor

Orientação

ORIENTADOR

Rui Filipe Lima Maranhão de Abreu

FEUP

Professor Catedratico

ORIENTADOR

Pedro Miguel dos Santos Alves Madeira Adão

Departamento de Engenharia Informática (DEI)

Professor Auxiliar