Compositional analysis of vulnerabilities in microservice-based applications

Detalhes bibliográficos
Autor(a) principal: Loureiro, Nelson Diogo Santos
Data de Publicação: 2021
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/79038
Resumo: Dissertação de mestrado em Matemática e Computação
id RCAP_5a7e0eaf26bd51282b667de79a43ad9b
oai_identifier_str oai:repositorium.sdum.uminho.pt:1822/79038
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 Compositional analysis of vulnerabilities in microservice-based applicationsData-flow analysisGraphsMicroservicesStatic analysisVulnerabilitiesAnálise do fluxo de dadosAnálise estáticaGrafosMicroserviçosVulnerabilidadesCiências Naturais::MatemáticasDissertação de mestrado em Matemática e ComputaçãoNowadays, software applications are becoming larger, more expensive, and more complex due to high market demands and adoption of new technologies that have emerged in recent years. Several companies, in order to remain competitive and solve problems resulting from traditional architectural styles, have started to develop their applications following the microservice architectural style. Microservices are an approach to distributed systems, where a single application is developed as a collection of small services, each running its own process and communicating over a network using lightweight mechanisms, such as the HTTP protocol. All types of applications, including those based on microservices, may contain vulnerabilities, which when exploited by a malicious user can cause problems for the organization developing the application and/or the other users. One way to prevent such problems is through the detection and correction of vulnerabilities. However, due to the way microservice-based applications are developed, there exists an additional challenge on how to detect vulnerabilities resulting from service-toservice communications, since these type of interactions are entirely different from those that occur within traditional applications. In collaboration with Checkmarx, we developed a solution that detects vulnerabilities resulting from service-to-service interactions. This was achieved with the help of CxSAST, a static analyzer of Checkmarx built to discover vulnerabilities in source code, and CxQL queries, which implement a technique of data-ow analysis. We applied a compositional approach, which analyses one service at a time, and then connects the results. Our work is directed at services that communicate through the HTTP protocol and interact in a way that satisfies the REST architectural style. Our solution consists of a collection of queries and of an external tool. The queries produce results, searching for traces of vulnerabilities in the source code of services. The external tool, implemented in the C# language, connects these results and defines paths between them. This is done with the use of an adapted depth-first search algorithm over a graph where each vertex is a result, or a combination of results produced by the queries. In order to only provide relevant information, some decisions have been taken about the type of paths to be produced by the external tool, such as the decision to avoid subpaths, which in this context are a source of redundancy.Atualmente, as aplicações de software estão a tornar-se maiores, mais dispendiosas e mais complexas devido a elevada exigência do mercado e da adoção de novas tecnologias que têm surgido nos últimos anos. Várias empresas, a fim de se manterem competitivas e resolverem problemas resultantes dos estilos arquiteturais tradicionais, começaram a desenvolver as suas aplicações seguindo o estilo arquitetural de microserviços. Os microserviços são uma abordagem de sistemas distribuídos, onde uma única aplicação é desenvolvida como um conjunto de pequenos serviços, cada um executando o seu próprio processo e comunicando numa rede, utilizando mecanismos leves, tais como o protocolo HTTP. Todos os tipos de aplicações, incluindo as baseadas em microserviços, poderão conter vulnerabilidades, que quando exploradas por um utilizador malicioso poderão causar problemas à empresa que desenvolve a aplicação e/ou aos restantes utilizadores. Uma forma de prevenir tais problemas e através da deteção e correção de vulnerabilidades. No entanto, devido a forma como as aplicações baseadas em microserviços são desenvolvidas, existe uma dificuldade acrescida de como detetar vulnerabilidades resultantes da comunicação entre serviços, uma vez que estas interações são completamente diferentes daquelas que ocorrem dentro de aplicações tradicionais. Em colaboração com a Checkmarx, desenvolvemos uma solução que deteta vulnerabilidades resultantes da interação entre serviços. Isto foi alcançado com a ajuda do CxSAST, um analisador estático da Checkmarx que deteta vulnerabilidades em código fonte, e das queries CxQL, que implementam uma técnica de análise do fuxo de dados. É aplicada uma abordagem composicional, que analisa um serviço de cada vez e de seguida liga os resultados. O nosso trabalho é dirigido a serviços que comunicam através do protocolo HTTP e interagem de uma forma que satisfaz o estilo arquitetural REST. A nossa solução é composta por um conjunto de queries e uma ferramenta externa. As queries produzem resultados, procurando indícios de vulnerabilidades no código fonte dos serviços. A ferramenta externa, implementada na linguagem C#, liga estes resultados e define caminhos entre eles. Isto é concretizado através de uma adaptação do algoritmo de pesquisa em profundidade sobre um grafo onde cada vértice é um resultado, ou combinação de resultados produzidos pelas queries. De forma a fornecer apenas informação relevante, foram tomadas algumas decisões sobre o tipo de caminhos que pretendemos produzir, tais como a decisão de evitar subcaminhos, que neste contexto são uma fonte de redundância.Pinto, Luís F.Frade, M. J.Universidade do MinhoLoureiro, Nelson Diogo Santos20212021-01-01T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttps://hdl.handle.net/1822/79038eng202991202info: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-09-07T01:28:11Zoai:repositorium.sdum.uminho.pt:1822/79038Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireinfo@rcaap.ptopendoar:https://opendoar.ac.uk/repository/71602025-05-28T14:52:15.285149Repositó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 Compositional analysis of vulnerabilities in microservice-based applications
title Compositional analysis of vulnerabilities in microservice-based applications
spellingShingle Compositional analysis of vulnerabilities in microservice-based applications
Loureiro, Nelson Diogo Santos
Data-flow analysis
Graphs
Microservices
Static analysis
Vulnerabilities
Análise do fluxo de dados
Análise estática
Grafos
Microserviços
Vulnerabilidades
Ciências Naturais::Matemáticas
title_short Compositional analysis of vulnerabilities in microservice-based applications
title_full Compositional analysis of vulnerabilities in microservice-based applications
title_fullStr Compositional analysis of vulnerabilities in microservice-based applications
title_full_unstemmed Compositional analysis of vulnerabilities in microservice-based applications
title_sort Compositional analysis of vulnerabilities in microservice-based applications
author Loureiro, Nelson Diogo Santos
author_facet Loureiro, Nelson Diogo Santos
author_role author
dc.contributor.none.fl_str_mv Pinto, Luís F.
Frade, M. J.
Universidade do Minho
dc.contributor.author.fl_str_mv Loureiro, Nelson Diogo Santos
dc.subject.por.fl_str_mv Data-flow analysis
Graphs
Microservices
Static analysis
Vulnerabilities
Análise do fluxo de dados
Análise estática
Grafos
Microserviços
Vulnerabilidades
Ciências Naturais::Matemáticas
topic Data-flow analysis
Graphs
Microservices
Static analysis
Vulnerabilities
Análise do fluxo de dados
Análise estática
Grafos
Microserviços
Vulnerabilidades
Ciências Naturais::Matemáticas
description Dissertação de mestrado em Matemática e Computação
publishDate 2021
dc.date.none.fl_str_mv 2021
2021-01-01T00: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/79038
url https://hdl.handle.net/1822/79038
dc.language.iso.fl_str_mv eng
language eng
dc.relation.none.fl_str_mv 202991202
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_ 1833594943464013824