Autores
Orientador(es)
Resumo(s)
A análise de código é um mecanismo de apoio à detecção de anomalias ou erros de concretização existentes num ambiente de programação. Diversos factores podem levar ao aparecimento destes erros, destacando-se entre eles a programação inadequada, o conhecimento limitado das interfaces e outros factores inerentemente humanos, como o esquecimento. As ferramentas de análise podem então ter um impacto positivo no ciclo de desenvolvimento de um produto, permitindo poupar tempo, dinheiro e contribuindo para que a aplicação seja construída sem vulnerabilidades de segurança. A análise de código pode ser efectuada em três modos: estática, dinâmica ou manual; cada um destes modos têm as suas vantagens e desvantagens, sendo os mais usados os estáticos e os dinâmicos. Nesta tese aborda-se o problema de detecção de vulnerabilidades de segurança através de ferramentas de análise estática, focadas para a linguagem de programação C. A tese propõe um teste que permite avaliar e comparar o desempenho de diversas ferramentas de análise estática, nomeadamente em relação ao número de falsos alarmes por elas despoletadas. A tese descreve também uma nova ferramenta designada por Mute, que tem como objectivo uma melhor eficácia e precisão na detecção de um conjunto alargado de vulnerabilidades. Genericamente, o Mute utiliza um mecanismo de agregação de resultados produzidos por várias ferramentas existentes, para decidir da existência ou não de uma vulnerabilidade. A tese inclui ainda uma avaliação comparativa do Mute e de diversas outras ferramentas.
Code analysis is a tool aiding the detection of anomalies created during the development of software by programmers. These errors can appear due to various factors, namely bad programing skills, limited knowledge of the interfaces, and human errors. This important tool brings in a new alignment in the development cycle, the main goals being to save time and expenditure, since it improves the final quality, by allowing the product to be built with less security vulnerabilities, ideally without security vulnerabilities. Code analysis can be worked out in three ways: static, dynamic, or manual. Each of those choices has advantages and disadvantages; the two most widely used are static and dynamic analysis. In this dissertation we focus on vulnerabilities detection using static code analyzers, and we choose to analyze C code. The thesis approach with a benchmark that allows to evaluate and compare the performance of some static analyzers, in concern to the number of false positives. The tool we shall develop will give a new and better perspective of their usefulness, with recall and precision. Our goal, in developing this new tool, is to decrease the number of false alerts, which is the main problem of static code analyzers used so far; this tool, called Mute “Multiple Tools” uses several techniques to archive this goal.
Code analysis is a tool aiding the detection of anomalies created during the development of software by programmers. These errors can appear due to various factors, namely bad programing skills, limited knowledge of the interfaces, and human errors. This important tool brings in a new alignment in the development cycle, the main goals being to save time and expenditure, since it improves the final quality, by allowing the product to be built with less security vulnerabilities, ideally without security vulnerabilities. Code analysis can be worked out in three ways: static, dynamic, or manual. Each of those choices has advantages and disadvantages; the two most widely used are static and dynamic analysis. In this dissertation we focus on vulnerabilities detection using static code analyzers, and we choose to analyze C code. The thesis approach with a benchmark that allows to evaluate and compare the performance of some static analyzers, in concern to the number of false positives. The tool we shall develop will give a new and better perspective of their usefulness, with recall and precision. Our goal, in developing this new tool, is to decrease the number of false alerts, which is the main problem of static code analyzers used so far; this tool, called Mute “Multiple Tools” uses several techniques to archive this goal.
Descrição
Tese de mestrado em Engenharia Informática, apresentada à Universidade de Lisboa, através da Faculdade de Ciências, 2007
Palavras-chave
Análise estática de código fonte Detecção de vulnerabilidades Teste padronizado Classes de vulnerabilidades Teses de mestrado - 2007
