• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 1
  • Tagged with
  • 1
  • 1
  • 1
  • 1
  • 1
  • 1
  • 1
  • 1
  • About
  • The Global ETD Search service is a free service for researchers to find electronic theses and dissertations. This service is provided by the Networked Digital Library of Theses and Dissertations.
    Our metadata is collected from universities around the world. If you manage a university/consortium/country archive and want to be added, details can be found on the NDLTD website.
1

[pt] DETECÇÃO DE VULNERABILIDADES DE SEGURANÇA EM TEMPO DE PROGRAMAÇÃO COM O INTUITO DE DAR SUPORTE A PROGRAMAÇÃO SEGURA / [en] EARLY VULNERABILITY DETECTION FOR SUPPORTING SECURE PROGRAMMING

23 February 2016 (has links)
[pt] Programação segura é a prática de se escrever programas que são resistentes a ataques de pessoas ou programas mal-intencionados. Os programadores de software seguro precisam estar continuamente cientes de vulnerabilidades de segurança ao escrever as instruções de código de um programa. Eles precisam estar preparados para executar continuamente ações para prevenir ou removê-las de seus programas. Neste cenário, as técnicas de análise estática foram concebidas para encontrar vulnerabilidades no código-fonte. No entanto, a maioria das técnicas existentes são construídas de uma maneira a incentivar a detecção de vulnerabilidade tardiamente, apenas quando os desenvolvedores já tenham produzido (e compilado) por completo um ou mais módulos de uma aplicação. Portanto, esta abordagem, também conhecida como detecção tardia, não promove programação segura, mas apenas análise retrospectiva de segurança. O atraso na detecção de vulnerabilidades também é influenciado pela alta taxa de falsos positivos, gerados pelo casamento de padrões, mecanismo comumente usado por técnicas de análise estática. Esta dissertação tem dois objetivos. Em primeiro lugar, nós propomos promover detecção de vulnerabilidades, enquanto o desenvolvedor está editando cada instrução do programa, também conhecida como detecção antecipada. A detecção antecipada pode aproveitar o conhecimento do desenvolvedor sobre o contexto do código que está sendo desenvolvido, ao contrário da detecção tardia em que os desenvolvedores enfrentam dificuldades para lembrar detalhes do código vulnerável produzido a horas ou semanas atrás. Nosso detector de vulnerabilidades é incorporado ao editor de um ambiente integrado de desenvolvimento de software. Em segundo lugar, vamos explorar uma técnica criada e comumente utilizada para a implementação de otimizações em compiladores, chamada de análise de fluxo de dados, doravante denominada como DFA. DFA tem a capacidade de seguir os caminhos de um objeto, até a sua origem ou para caminhos onde o seu conteúdo tenha sido alterado. DFA pode ser adequado para encontrar se um objeto tem um ou mais caminhos vulneráveis. Para isso, implementamos um plugin Eclipse, como prova de conceito, para detecção antecipada de vulnerabilidades em programas Java. Depois disso, foram realizados dois estudos empíricos baseados em vários sistemas da indústria para avaliar se a segurança de um código fonte produzido pode ser melhorada através de DFA e detecção contínua de vulnerabilidades. Nossos estudos confirmaram que: (i) análise de fluxo de dados reduz significativamente a taxa de falsos positivos, quando comparada com técnicas existentes, sem prejudicar o desempenho do detector, e (ii) a detecção antecipada melhora a consciência entre os desenvolvedores e os incentiva a corrigir vulnerabilidades de segurança prontamente. / [en] 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.

Page generated in 0.0373 seconds