Aplicação para deteção de código vulnerável através de análise estática

Bibliographic Details
Main Author: Moreira, Ricardo Silveira
Publication Date: 2020
Format: Master thesis
Language: por
Source: Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
Download full: http://hdl.handle.net/10451/48362
Summary: Trabalho de projeto de mestrado, Segurança Informática, Universidade de Lisboa, Faculdade de Ciências, 2020
id RCAP_ab065ba6b69fe6a52f51e5c66f18a8c8
oai_identifier_str oai:repositorio.ulisboa.pt:10451/48362
network_acronym_str RCAP
network_name_str Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
repository_id_str https://opendoar.ac.uk/repository/7160
spelling Aplicação para deteção de código vulnerável através de análise estáticaanálise estáticaanálise lexicalvulnerabilidadescompiladoresTrabalhos de projeto de mestrado - 2020Departamento de InformáticaTrabalho de projeto de mestrado, Segurança Informática, Universidade de Lisboa, Faculdade de Ciências, 2020Em empresas de desenvolvimento de software é cada vez mais necessário incluir validações de segurança no fluxo de desenvolvimento. A falta destas pode ter consequências danosas a nível de custos, isto porque a segurança é um requisito que é cada vez mais importante para clientes. Com este projecto propõe-se a criação de uma aplicação de análise de código estático e a sua integração no ciclo de desenvolvimento na empresa Escrita Digital (ED). Apesar de existirem diversas soluções no mercado para a detecção de vulnerabilidades, nenhuma das existentes actualmente é adequada para os problemas que existem na ED. Em primeiro lugar devido aos elevados custos envolvidos numa solução deste tipo. Em segundo lugar por não existirem no mercado muitas aplicações capazes de analisar a linguagem ASP, linguagem que é usada para desenvolver alguns dos produtos que a ED comercializa. Para isso, criouse a aplicação Athena com a capacidade de analisar qualquer linguagem, desde que escritas as regras e léxico para a mesma. O Athena requer a indicação dos padrões de código potencialmente vulneráveis pelo programador, colocando assim sobre ele a responsabilidade de identificar essas vulnerabilidades. As regras e o léxico são descritas recorrendo a ficheiros de configuração de Extensible Markup Language (XML), que vão alimentar o motor, ditando as operações que este deve fazer. No léxico estão descritos os vários tokens que compõem a linguagem a ser analisada. Este ficheiro é utililizado pelo motor de análise lexical para extrair os tokens do ficheiro. Nas regras estão as descrições dos vários padrões que correspondem a vulnerabilidades e a funções seguras. Padrões esses que são construidos a partir dos tokens declarados no ficheiro de léxico. Este ficheiro de regras vai alimentar o motor de parsing sendo este responsável por devolver sequências de tokens que têm uma vulnerabilidade e uma localização no ficheiro associada. O Athena usa estas duas bibliotecas para analisar ficheiros e devolver as várias vulnerabilidades. Realizaram-se diversos testes tendo como objectivo evidenciar a vantagem da utilização da aplicação Athena, quantificar a eficácia da solução na detecção de vulnerabilidades e comparar os tempos envolvidos nessa mesma detecção. Os testes revelaram que a aplicação Athena apresenta claras vantagens face a uma análise manual ou mesmo recorrendo ao YASCA.In software development companies, it is increasingly necessary to include security validations in the development flow. The lack of these can have very harmful consequences in terms of costs because security is a requirement that is increasingly important for customers. Thus, security is a fundamental aspect to take into account when developing software. However, older companies find it more difficult to change and insert these validations and considerations into their software development process, as they will always cause a delay in the delivery of new versions. This project aims the creation of a static code analysis application and its integration in the development cycle at Escrita Digital (ED). Although there are several solutions on the market for the detection of vulnerabilities, none of the existing ones is currently adequate for the problems that exist in ED. Firstly, due to the high costs involved in such a solution and secondly, because there are not many applications on the market capable of analyzing ASP, a language that is used to develop some of the products that ED commercializes. To solve this problem, the Athena application was developed with the ability to analyze any language, as long as the rules and lexicon for it are written. Athena requires the programmer to indicate potentially vulnerable code patterns, thus placing on him the responsibility to identify those vulnerabilities. The rules and the lexicon are described using XML configuration files, which will feed the engine, dictating the operations it must do. The lexicon describes the various tokens that make up the language to be analyzed. This file is used by the lexical analysis engine to extract the tokens from the file. In the rules are descriptions of the various standards that correspond to vulnerabilities and secure functions. These patterns are built from the tokens declared in the lexicon file. This rules file will feed the parsing engine, which is responsible for returning code sequences that have a vulnerability and a location in the associated file. Athena uses these two libraries to analyze files and to return the various vulnerabilities that are found by the parsing engine. In the final part of the thesis, several tests were carried out with the objective of highlighting the advantage of using the Athena application, quantifying the solution’s effectiveness in detecting vulnerabilities and also comparing the times involved in that detection. The comparison was made with manual analysis and with YASCA [15], a free use application. The tests revealed that the Athena application has clear advantages over a manual analysis or even using YASCA.Magaia, Naercio David PedroRepositório da Universidade de LisboaMoreira, Ricardo Silveira2021-06-07T10:37:08Z202020202020-01-01T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttp://hdl.handle.net/10451/48362TID:202605914porinfo:eu-repo/semantics/openAccessreponame:Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)instname:FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologiainstacron:RCAAP2025-03-17T14:34:43Zoai:repositorio.ulisboa.pt:10451/48362Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireinfo@rcaap.ptopendoar:https://opendoar.ac.uk/repository/71602025-05-29T03:15:50.968589Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) - FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologiafalse
dc.title.none.fl_str_mv Aplicação para deteção de código vulnerável através de análise estática
title Aplicação para deteção de código vulnerável através de análise estática
spellingShingle Aplicação para deteção de código vulnerável através de análise estática
Moreira, Ricardo Silveira
análise estática
análise lexical
vulnerabilidades
compiladores
Trabalhos de projeto de mestrado - 2020
Departamento de Informática
title_short Aplicação para deteção de código vulnerável através de análise estática
title_full Aplicação para deteção de código vulnerável através de análise estática
title_fullStr Aplicação para deteção de código vulnerável através de análise estática
title_full_unstemmed Aplicação para deteção de código vulnerável através de análise estática
title_sort Aplicação para deteção de código vulnerável através de análise estática
author Moreira, Ricardo Silveira
author_facet Moreira, Ricardo Silveira
author_role author
dc.contributor.none.fl_str_mv Magaia, Naercio David Pedro
Repositório da Universidade de Lisboa
dc.contributor.author.fl_str_mv Moreira, Ricardo Silveira
dc.subject.por.fl_str_mv análise estática
análise lexical
vulnerabilidades
compiladores
Trabalhos de projeto de mestrado - 2020
Departamento de Informática
topic análise estática
análise lexical
vulnerabilidades
compiladores
Trabalhos de projeto de mestrado - 2020
Departamento de Informática
description Trabalho de projeto de mestrado, Segurança Informática, Universidade de Lisboa, Faculdade de Ciências, 2020
publishDate 2020
dc.date.none.fl_str_mv 2020
2020
2020-01-01T00:00:00Z
2021-06-07T10:37:08Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://hdl.handle.net/10451/48362
TID:202605914
url http://hdl.handle.net/10451/48362
identifier_str_mv TID:202605914
dc.language.iso.fl_str_mv por
language por
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.source.none.fl_str_mv reponame:Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
instname:FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia
instacron:RCAAP
instname_str FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia
instacron_str RCAAP
institution RCAAP
reponame_str Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
collection Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
repository.name.fl_str_mv Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) - FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia
repository.mail.fl_str_mv info@rcaap.pt
_version_ 1833601645075759104