Título: | DETECÇÃO DE VULNERABILIDADES DE SEGURANÇA EM TEMPO DE PROGRAMAÇÃO COM O INTUITO DE DAR SUPORTE A PROGRAMAÇÃO SEGURA | ||||||||||||
Autor: |
MARCELO BLOIS RIBEIRO |
||||||||||||
Colaborador(es): |
ALESSANDRO FABRICIO GARCIA - Orientador |
||||||||||||
Catalogação: | 23/FEV/2016 | Língua(s): | INGLÊS - ESTADOS UNIDOS |
||||||||||
Tipo: | TEXTO | Subtipo: | TESE | ||||||||||
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: | |||||||||||||
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.
|
|||||||||||||
|