Dissertação

GLITCH: Polyglot Code Smell Detection for Infrastructure as Code EVALUATED

Infraestrutura como Código (IaC) é o processo de gerir infraestruturas informáticas através de ficheiros de configuração programáveis. IaC tem sido cada vez mais adotado no ambiente de DevOps. Apesar disso, como em outros artefactos de software, scripts de IaC podem ter bugs. Ferramentas de análise automática para detetar problemas em scripts de IaC existem, no entanto, estas focam-se em tecnologias específicas como Ansible, Chef, ou Puppet. Isto quer dizer que quando a deteção de um novo problema é implementada numa ferramenta, esta não está imediatamente disponível para as tecnologias suportadas por outras ferramentas — a única opção é duplicar o esforço. Como o ecossistema de tecnologias IaC é muito disperso, considerámos importante resolver o problema da generalização e para isso criámos a framework GLITCH. A GLITCH permite a deteção automática de code smells em múltiplas linguagens ao transformar scripts de IaC numa representação intermédia, sobre a qual diferentes detetores de problemas podem ser definidos. A GLITCH suporta atualmente a deteção de nove problemas de segurança e nove problemas de design e implementação. Para os problemas de segurança, os resultados que obtivemos não só mostram que a GLITCH permite reduzir o esforço de escrever análises de segurança para múltiplas tecnologias de IaC, como também que obtém precisões e revocações mais elevadas que o estado da arte. Para os problemas de design e implementação, concluímos que a GLITCH tem informação suficiente na sua representação intermédia para detetar problemas agnósticos à tecnologia que são detetados por outras ferramentas do estado da arte.
Infraestrutura como Código, Representação Intermédia, Análise Estática, DevOps, Problemas em Código, Problemas de Segurança

novembro 22, 2022, 14:30

Publicação

Obra sujeita a Direitos de Autor

Orientação

ORIENTADOR

João Fernando Peixoto Ferreira

Departamento de Engenharia Informática (DEI)

Professor Auxiliar