Título: | EARLY VULNERABILITY DETECTION FOR SUPPORTING SECURE PROGRAMMING | ||||||||||||
Autor: |
MARCELO BLOIS RIBEIRO |
||||||||||||
Colaborador(es): |
ALESSANDRO FABRICIO GARCIA - Orientador |
||||||||||||
Catalogação: | 23/FEV/2016 | Língua(s): | ENGLISH - UNITED STATES |
||||||||||
Tipo: | TEXT | Subtipo: | THESIS | ||||||||||
Notas: |
[pt] Todos os dados constantes dos documentos são de inteira responsabilidade de seus autores. Os dados utilizados nas descrições dos documentos estão em conformidade com os sistemas da administração da PUC-Rio. [en] All data contained in the documents are the sole responsibility of the authors. The data used in the descriptions of the documents are in conformity with the systems of the administration of PUC-Rio. |
||||||||||||
Referência(s): |
[pt] https://www.maxwell.vrac.puc-rio.br/projetosEspeciais/ETDs/consultas/conteudo.php?strSecao=resultado&nrSeq=25822&idi=1 [en] https://www.maxwell.vrac.puc-rio.br/projetosEspeciais/ETDs/consultas/conteudo.php?strSecao=resultado&nrSeq=25822&idi=2 |
||||||||||||
DOI: | https://doi.org/10.17771/PUCRio.acad.25822 | ||||||||||||
Resumo: | |||||||||||||
Secure programming is the practice of writing programs that are resistant to
attacks by malicious people or programs. Programmers of secure software have to
be continuously aware of security vulnerabilities when writing their program
statements. They also ought to continuously perform actions for preventing or
removing vulnerabilities from their programs. In order to support these activities,
static analysis techniques have been devised to find vulnerabilities in the source
code. However, most of these techniques are built to encourage vulnerability
detection a posteriori, only when developers have already fully produced (and
compiled) one or more modules of a program. Therefore, this approach, also
known as late detection, does not support secure programming but rather
encourages posterior security analysis. The lateness of vulnerability detection is
also influenced by the high rate of false positives, yielded by pattern matching,
the underlying mechanism used by existing static analysis techniques. The goal of
this dissertation is twofold. First, we propose to perform continuous detection of
security vulnerabilities while the developer is editing each program statement,
also known as early detection. Early detection can leverage his knowledge on the
context of the code being created, contrary to late detection when developers
struggle to recall and fix the intricacies of the vulnerable code they produced from
hours to weeks ago. Our continuous vulnerability detector is incorporated into the
editor of an integrated software development environment. Second, we explore a
technique originally created and commonly used for implementing optimizations
on compilers, called data flow analysis, hereinafter referred as DFA. DFA has the
ability to follow the path of an object until its origins or to paths where it had its
content changed. DFA might be suitable for finding if an object has a vulnerable
path. To this end, we have implemented a proof-of-concept Eclipse plugin for
continuous vulnerability detection in Java programs. We also performed two
empirical studies based on several industry-strength systems to evaluate if the
code security can be improved through DFA and early vulnerability detection.
Our studies confirmed that: (i) the use of data flow analysis significantly reduces
the rate of false positives when compared to existing techniques, without being
detrimental to the detector performance, and (ii) early detection improves the
awareness among developers and encourages programmers to fix security
vulnerabilities promptly.
|
|||||||||||||
|