Publicação
Imposição de Segurança em Aplicações Web a partir de Linguagem Intermédia
| 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 |
| 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. |
|---|