Dissertação

Virtual Static Security Analyzer for Web Applications EVALUATED

Nas últimas décadas, as aplicações web têm sido um alvo muito popular de ataques informáticos. Para mitigar esse problema precisamos de formas automatizadas de detetar vulnerabilidades em código fonte. No entanto, as ferramentas modernas são muito complexas, sendo constituídas por milhares de linhas de código. Para além disso, as suas implementações estão muitas vezes presas a uma determinada linguagem. Essa complexidade faz com que as ferramentas sejam muito difíceis de compreender e de serem extendidas para suportarem novas linguagens. Para reduzir a complexidade dos analisadores estáticos atuais, esta tese propõe uma nova solução genérica, que suporta a adição de novas linguagens sem muito esforço de programação. A nossa solução, ao contrário dos analisadores estáticos tradicionais, não analisa a AST do código fonte diretamente. Em vez disso, percorremos a AST do código fonte e construímos uma AST genérica (GAST) a partir desta. Depois disso, a análise para encontrar vulnerabilidades é feita com base na GAST. Desta forma conseguimos desacouplar a parte da análise e do parse do código fonte. Para além disso, GAST apenas contém o que é realmente necessário para fazer a análise, ignorando o resto. Para adicionarmos suporte a uma nova linguagem é necessário apenas gerar um parser usando ANTRL4 e escrever um conversor para a respetiva AST. Habitualmente um conversor é composto por menos de 110 linhas de código.
segurança, análise estática, fluxo de dados, vulnerabilidades

janeiro 18, 2021, 9:0

Publicação

Obra sujeita a Direitos de Autor

Orientação

ORIENTADOR

Miguel Nuno Dias Alves Pupo Correia

Departamento de Engenharia Informática (DEI)

Professor Associado

ORIENTADOR

João Carlos Serrenho Dias Pereira

Departamento de Engenharia Informática (DEI)

Professor Auxiliar