ebook img

Dissertação_ Alexandre Braga Damasceno PDF

150 Pages·2017·2.75 MB·Portuguese
by  
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Dissertação_ Alexandre Braga Damasceno

PODER EXECUTIVO MINISTÉRIO DA EDUCAÇÃO UNIVERSIDADE FEDERAL DO AMAZONAS INSTITUTO DE COMPUTAÇÃO PROGRAMA DE PÓS-GRADUAÇÃO EM INFORMÁTICA ALEXANDRE BRAGA DAMASCENO TAINTJSEC: UM MÉTODO DE ANÁLISE ESTÁTICA DE MARCAÇÃO EM CÓDIGO JAVASCRIPT PARA DETECÇÃO DE VAZAMENTO DE DADOS SENSÍVEIS Manaus - Amazonas 2017 ALEXANDRE BRAGA DAMASCENO TAINTJSEC: UM MÉTODO DE ANÁLISE ESTÁTICA DE MARCAÇÃO EM CÓDIGO JAVASCRIPT PARA DETECÇÃO DE VAZAMENTO DE DADOS SENSÍVEIS Dissertação apresentada ao Programa de Pós-Graduação em Informática do Instituto de Computação da Universidade Federal do Amazonas, como requisito parcial para a obtenção do grau de Mestre em Informática. Orientador: Eduardo J. P. Souto Manaus - Amazonas 2017 © 2017, Alexandre Braga Damasceno. Todos os direitos reservados. Damasceno, Alexandre Braga D155t TaintJSec: Um Método de Análise Estática de Marcação em Código JavaScript para Detecção de Vazamento de Dados Sensíveis / Alexandre Braga Damasceno. — Manaus - Amazonas, 2017 xxi, 129 f. : il. color ; 31cm Dissertação (mestrado) — Universidade Federal do Amazonas Orientador: Eduardo J. P. Souto 1. Vazamento de Informação. 2. Dados Sensíveis. 3. JavaScript. 4. TaintJSec. 5. Análise Estática. I. Título. CDU 004 Dedico esta dissertação aos meus pais, Raimundo Nonato Damasceno e Sandra Maria Braga Damasceno, que nunca mediram esforços para me dar uma boa educação e me ensinaram, desde cedo, sobre o quão importante são os estudos em minha vida. Agradecimentos Primeiramente agradeço e louvo ao Deus de Abraão, Isaac e Jacó, que também é o meu Deus, por ter me dado força e coragem para enfrentar as tribulações que surgiram em minha vida durante o curso, mas não foram suficientes para impedir esta vitória. Quero agradecer à minha família, meu porto seguro, que sempre me apoiou nos estudos e nunca me deixou esmorecer perante os desafios. À minha amada Andressa D. Craveiro, por motivar-me e por ser tão compreensível nos momentos em que eu estive ausente por dedicação ao curso. Ao meu orientador Prof. Dr. Eduardo J. P. Souto e ao coorientador Me. Thiago de Souza Rocha pelo conhecimento, companheirismo, auxílio e paciência que foram de suma importância durante o desenvolvimento deste trabalho. Ao Prof. Dr. Eduardo L. Feitosa, presidente do Programa de Pós-Graduação em Informática (PPGI), por mostrar-se sempre pronto a ajudar o próximo. Aos professores, Dr. Raimundo S. Barreto e Dr. Arilo C. D. Neto, pela confiança em mim depositada ao redigirem as cartas de recomendação para o curso. Agradeço também ao Prof. Dr. David B. F. de Oliveira que durante minha tutoria mostrouserumapessoadecaráterímpar,preocupadocomoserhumanoantesdequalquer outra coisa. Agradeço aos colegas do laboratório ETSS (Emerging Technologies and Systems Security) pelo clima agradável de harmonia e descontração, onde sempre fui bem recebido e quase sempre tinha café quente. Por fim, agradeço a todos aqueles que a seu modo contribuíram e me apoiaram para a conclusão deste trabalho. Muito obrigado! vi “Se permanecerdes em mim, e as minhas palavras permanecerem em vós, pedireis o que desejardes, e vos será concedido.” (Jesus Cristo) vii Resumo Javascript é uma das linguagens de programação mais utilizadas no mundo e continua expandindo-se gradativamente. Tal expansão deve-se à grande flexibilidade e dinamicidade que a linguagem possui, o que facilita bastante a criação de aplicações. Porém, essa mesma característica que a torna uma linguagem de sucesso é também o que torna difícil a análise estática do fluxo de execução, processo esse que visa identificar a presença de códigos maliciosos nas aplicações. Este trabalho apresenta o TaintJSec, uma nova abordagem que utiliza análise estática de marcação de código JavaScript para identificar e prevenir o vazamento de informação sensível. O diferencial do TaintJSec em relação aos outros trabalhos que utilizam análise estática de marcação é que ele consegue analisar o fluxo de códigos implícitos, acompanha a propagação do taint tag na execução da função eval e identifica o vazamento de informação em códigos ofuscados. Para validar a eficácia da abordagem, foram realizados testes de propagação do taint tag, dividos em 13 grupos de testes distintos. Em seguida, foram realizados testes para avaliar a propagação na execução da função eval. Por fim, a abordagem foi testada em um código malicioso, ofuscado por cinco ferramentas diferentes, específicas para tal finalidade. Os resultados obtidos demonstraram que a abordagem é eficaz na detecção do vazamento de informação e mais eficiente que outros métodos do estado da arte. Palavras-chave: Vazamento de Informação, Dados Sensíveis, JavaScript. viii Abstract Javascript is one of the most used programming languages in the world and continues to expand gradually. Such success is due to the great flexibility and dynamicity that the language has, which greatly facilitates the creation of applications. However, this same characteristic that makes it a successful language is also what makes it difficult to analyze static execution flow, which aims to identify the presence of malicious code in applications. This work presents TaintJSec, a new approach that uses static code marking analysis to identify and prevent leakage of sensitive information in web applications. Unlike other works based on static analysis, TaintJSec is able to check the explicit and implicit code flow, accompanies the propagation of the taint tag in the execution of the eval function, and is able to identify information leakage in obfuscated codes. To validate the effectiveness of the approach, taint tag propagation tests were performed in a range of tests divided into 13 different test groups. Then, tests were performed to evaluate the propagation of the eval function. Finally, the approach was tested in a malicious code, obscured by five different tools, specific for that purpose. The results demonstrated that the approach is effective in detecting information leakage and more efficient than other methods of the state of the art. Keywords: Data Leakage, Sensitive Data, JavaScript. ix Sumário Agradecimentos vi Resumo viii Abstract ix Sumário x Lista de Algoritmos xiii Lista de Códigos xiv Lista de Figuras xvi Lista de Quadros xviii Lista de Tabelas xix Lista de Siglas xx 1 Introdução 1 1.1 Motivação e Descrição do Problema . . . . . . . . . . . . . . . . . . . . . . 2 1.2 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2.1 Objetivo Geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2.2 Objetivos Específicos . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.3 Contribuições . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.4 Estrutura do Documento . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2 JavaScript e Desenvolvimento Web 6 2.1 Linguagem de Programação JavaScript . . . . . . . . . . . . . . . . . . . . 6 2.2 Vazamento de Informação . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.3 Análise de Marcação (Taint Analysis) . . . . . . . . . . . . . . . . . . . . . 12 2.3.1 Análise de Marcação Dinâmica . . . . . . . . . . . . . . . . . . . . 12 x

Description:
4.15 Exemplo de AST com os atributos de intervalo de código-fonte e o taint tag atribuído 4.16 Testes de execução da expressão unária +[] no shell do Python, PHP e Node.js. 53 .. trabalho, como as bibliotecas JavaScript e a plataforma Node.js. 3 https://developers.google.com/closure/compile
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.