Type annotation for SAST

Detalhes bibliográficos
Autor(a) principal: Pereira, Marco Avelino Teixeira
Data de Publicação: 2023
Tipo de documento: Dissertação
Idioma: eng
Título da fonte: Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
Texto Completo: https://hdl.handle.net/1822/92613
Resumo: Dissertação de mestrado em Informatics Engineering
id RCAP_4ae172aefd2d93d976b1d7b2452c1df2
oai_identifier_str oai:repositorium.sdum.uminho.pt:1822/92613
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 Type annotation for SASTSASTStatic Application Security TestingType annotationCC++C#Unit testingAutomation testingCxQLTeste de Segurança de Aplicativos EstáticosAnotação de tiposTeste unitárioTeste de automaçãoEngenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e InformáticaDissertação de mestrado em Informatics EngineeringThis document describes the work done to understand the impact of implementing a type annotation algorithm plugged into the Static Application Security Testing (SAST) engine used by Checkmarx. The main goal is to upgrade the Checkmarx’s SAST tool allowing the execution of vulnerability detection taking into account expression types. This means that every result of an expression needs to have a specific type assigned accordingly to the kind of operation and to the different operand types. Along with the assigned type, information on the size of the variable and signedness should be available. As a case study, the C/C++ Programming Language was used. Then an extension to deal with expansion to the C# language was developed and a study of the implications of expanding the system to multiple languages was carried out. A proof of concept was implemented, using a language agnostic approach, that allows for expressions type annotation previous to the analysis of code vulnerabilities. That tool developed supports languages C, C++ and C# and the annotation of their base types. It was possible to re implement some of the vulnerability analysis queries previously created and in use at Checkmax so that they use the implemented expression types. This led to a significant increase in readability of the queries, an increase in the amount of vulnerability results found by those queries as well as a minimum efficiency increase.Este documento descreve o trabalho realizado para compreender o impacto da implemen tação de um algoritmo de anotação de tipos integrado ao mecanismo de Teste de Segurança de Aplicativos Estáticos (SAST) utilizado pela Checkmarx. O principal objetivo é aprimorar a ferramenta SAST da Checkmarx, permitindo a detecção de vulnerabilidades levando em consideração os tipos de expressões. Isso significa que cada resultado de uma expressão deve ter um tipo específico atribuído de acordo com o tipo de operação e os diferentes tipos de operandos. Juntamente com o tipo atribuído, informações sobre o tamanho da variável e a sinalização devem estar disponíveis. Como caso de estudo, foi utilizada a linguagem de programação C/C++. Em seguida, foi desenvolvida uma extensão para lidar com a expansão para a linguagem C# e foi realizado um estudo das implicações da expansão do sistema para várias linguagens. Foi implementada uma prova de conceito, usando uma abordagem agnóstica à linguagem, que permite a anotação de tipos de expressões antes da análise das vulnerabilidades do código. A ferramenta desenvolvida suporta as linguagens C, C++ e C# e a anotação dos seus tipos base. Foi possível reimplementar algumas das queries de análise de vulnerabilidades previamente criadas e usadas na Checkmarx, para que utilizem os tipos de expressões implementados. Isso resultou num aumento significativo na legibilidade das queries, um aumento na quantidade de resultados de vulnerabilidades encontrados por essas queries, bem como um aumento mínimo na eficiência.Henriques, Pedro RangelSimões, AlbertoUniversidade do MinhoPereira, Marco Avelino Teixeira2023-12-052023-12-05T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttps://hdl.handle.net/1822/92613eng203608429info: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:RCAAP2024-07-27T01:25:07Zoai:repositorium.sdum.uminho.pt:1822/92613Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireinfo@rcaap.ptopendoar:https://opendoar.ac.uk/repository/71602025-05-28T18:38:27.959261Repositó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 Type annotation for SAST
title Type annotation for SAST
spellingShingle Type annotation for SAST
Pereira, Marco Avelino Teixeira
SAST
Static Application Security Testing
Type annotation
C
C++
C#
Unit testing
Automation testing
CxQL
Teste de Segurança de Aplicativos Estáticos
Anotação de tipos
Teste unitário
Teste de automação
Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
title_short Type annotation for SAST
title_full Type annotation for SAST
title_fullStr Type annotation for SAST
title_full_unstemmed Type annotation for SAST
title_sort Type annotation for SAST
author Pereira, Marco Avelino Teixeira
author_facet Pereira, Marco Avelino Teixeira
author_role author
dc.contributor.none.fl_str_mv Henriques, Pedro Rangel
Simões, Alberto
Universidade do Minho
dc.contributor.author.fl_str_mv Pereira, Marco Avelino Teixeira
dc.subject.por.fl_str_mv SAST
Static Application Security Testing
Type annotation
C
C++
C#
Unit testing
Automation testing
CxQL
Teste de Segurança de Aplicativos Estáticos
Anotação de tipos
Teste unitário
Teste de automação
Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
topic SAST
Static Application Security Testing
Type annotation
C
C++
C#
Unit testing
Automation testing
CxQL
Teste de Segurança de Aplicativos Estáticos
Anotação de tipos
Teste unitário
Teste de automação
Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
description Dissertação de mestrado em Informatics Engineering
publishDate 2023
dc.date.none.fl_str_mv 2023-12-05
2023-12-05T00:00:00Z
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 https://hdl.handle.net/1822/92613
url https://hdl.handle.net/1822/92613
dc.language.iso.fl_str_mv eng
language eng
dc.relation.none.fl_str_mv 203608429
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_ 1833597563801960448