Dissertação

{en_GB=MERLIN: Multi-Language Web Vulnerability Detection} {} EVALUATED

{pt=Apesar de haver uma investigação contínua com o objetivo de melhorar a segurança na web, as aplicações web continuam a ser constantemente atacadas. Muitos ataques bem sucedidos exploram código fonte vulnerável. Uma abordagem comum para encontrar vulnerabilidades no código é utilizar ferramentas de análise estática de código fonte. Contudo, estas ferramentas têm dois problemas: têm de ser programadas manualmente para lidar com todo o tipo de vulnerabilidades e apenas trabalham com uma linguagem de programação específica. Este trabalho apresenta uma abordagem que ambiciona melhorar a seguranças das aplicações web por identificar vulnerabilidades em código escrito em diferentes linguagens. Além disso, em vez de programarmos as regras de deteção, utilizámos \textit{machine learning} para as configurar. A abordagem foi implementada numa ferramenta chamada MERLIN. Esta ferramenta foi testada com amostras da base de dados SRD e com aplicações web do mundo real escritas em Java e PHP. Até agora o MERLIN já processou mais de um milhão de linhas de código. , en=Although there is continuous research to improve web security, web applications are constantly being attacked. Many successful attacks exploit vulnerable source code. A common way used to find vulnerabilities in code is with source code static analysis tools. However, these tools have two problems: they must be coded manually to deal with all types of vulnerabilities and they only work with a specific programming language. This thesis presents an approach that aims to improve security of web applications by identifying vulnerabilities in code written in different languages. Moreover, we do not hard-code the rules of detection, but instead use machine learning to configure them. The approach was implemented in a tool called MERLIN. This tool was tested with samples from the SRD database and real-world web applications written in Java and PHP. So far MERLIN has processed more than one million lines of code. }
{pt=Vulnerabilidades, Aplicações Web, Machine Learning, Código Intermédio, en=Vulnerabilities, Web Application, Machine learning, Intermediate Code}

novembro 16, 2020, 10:30

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