Publicação

Imposição de Segurança em Aplicações Web a partir de Linguagem Intermédia

Ver documento

Detalhes bibliográficos
Resumo:As aplicações e serviços web são atualmente os meios mais comuns de acesso a recursos organizacionais. Linguagens de scripting são normalmente as mais uti lizadas para desenvolver estas aplicações pelo facto de permitirem um rápido de senvolvimento, devido a terem muitas extensões de bibliotecas, um rápido ciclo de desenvolvimento, tipos dinâmicos e polimorfismo. Devido à sua disponibilidade na Internet para acesso a serviços e recursos, estas ficam expostas e tornam-se um alvo de diversos ataques (ex., injeções de SQL e Cross-Site Scripting) que exploram vulne rabilidades presentes no seu código fonte, pondo em risco diversos serviços e gerando grandes perdas e estragos às organizações. As aplicações web cada vez mais integram várias tecnologias e linguagens, fazendo com que o seu código seja mais complexo e consequentemente mais difícil de analisar estaticamente e descobrir vulnerabilida des. Por seu termo, a representação do seu código numa linguagem intermédia, de baixo nível, remove esta complexidade, mas mantem os aspectos fundamentais e a semântica do código. Esta dissertação tem como objetivo a deteção de vulnerabilidades numa lingua gem intermédia, de baixo nível, para aplicações desenvolvidas em PHP, a linguagem mais usada na construção de aplicações web. É utilizada a linguagem de baixo nível HipHop assembly (HHAS) para representar o PHP. Esta linguagem foi desenvolvida explicitamente para compilar programas escritos em Hack e em PHP. Foi criado um analisador estático de código capaz de analisar HHAS e de descobrir vulnerabilida des em programas compilados para esta linguagem, sem que seja preciso executar o programa. Este analisador estático recorre a um sistema de tipos e a técnicas de taint analysis (análise de comprometimento) para verificar se um programa é ou não vulnerável para todas as possíveis execuções. Os tipos de ataques detetados por essa análise são a injeções de SQL e o Cross-Site Scripting, as duas classes mais explo radas em aplicações web. A ferramenta desenvolvida foi avaliada com código PHP, verificando-se que a análise por ela realizada sobre linguagens que exigem rápidos ciclos de desenvolvimento e que permitem a utilização de funcionalidades dinâmicas, tem esses aspectos em consideração.
Autores principais:Moreira, Miguel Carvalho Fernandes e Simões
Assunto:vulnerabilidades web linguagem intermédia de baixo nível análise estática de código sistema de tipos análise de comprometimento Teses de mestrado - 2021
Ano:2021
País:Portugal
Tipo de documento:dissertação de mestrado
Tipo de acesso:acesso aberto
Instituição associada:Universidade de Lisboa
Idioma:português
Origem:Repositório da Universidade de Lisboa
Descrição
Resumo:As aplicações e serviços web são atualmente os meios mais comuns de acesso a recursos organizacionais. Linguagens de scripting são normalmente as mais uti lizadas para desenvolver estas aplicações pelo facto de permitirem um rápido de senvolvimento, devido a terem muitas extensões de bibliotecas, um rápido ciclo de desenvolvimento, tipos dinâmicos e polimorfismo. Devido à sua disponibilidade na Internet para acesso a serviços e recursos, estas ficam expostas e tornam-se um alvo de diversos ataques (ex., injeções de SQL e Cross-Site Scripting) que exploram vulne rabilidades presentes no seu código fonte, pondo em risco diversos serviços e gerando grandes perdas e estragos às organizações. As aplicações web cada vez mais integram várias tecnologias e linguagens, fazendo com que o seu código seja mais complexo e consequentemente mais difícil de analisar estaticamente e descobrir vulnerabilida des. Por seu termo, a representação do seu código numa linguagem intermédia, de baixo nível, remove esta complexidade, mas mantem os aspectos fundamentais e a semântica do código. Esta dissertação tem como objetivo a deteção de vulnerabilidades numa lingua gem intermédia, de baixo nível, para aplicações desenvolvidas em PHP, a linguagem mais usada na construção de aplicações web. É utilizada a linguagem de baixo nível HipHop assembly (HHAS) para representar o PHP. Esta linguagem foi desenvolvida explicitamente para compilar programas escritos em Hack e em PHP. Foi criado um analisador estático de código capaz de analisar HHAS e de descobrir vulnerabilida des em programas compilados para esta linguagem, sem que seja preciso executar o programa. Este analisador estático recorre a um sistema de tipos e a técnicas de taint analysis (análise de comprometimento) para verificar se um programa é ou não vulnerável para todas as possíveis execuções. Os tipos de ataques detetados por essa análise são a injeções de SQL e o Cross-Site Scripting, as duas classes mais explo radas em aplicações web. A ferramenta desenvolvida foi avaliada com código PHP, verificando-se que a análise por ela realizada sobre linguagens que exigem rápidos ciclos de desenvolvimento e que permitem a utilização de funcionalidades dinâmicas, tem esses aspectos em consideração.