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.
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