Aplicação para deteção de código vulnerável através de análise estática
| Main Author: | |
|---|---|
| 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 |