一句话:提出 GLITCH:面向 IaC 的跨技术代码异味检测框架,通过中间表示支持多种 IaC 语言并提高检测精度与召回率。
基础设施即代码(IaC)脚本广泛用于配置与部署,但不同技术栈(如 Ansible、Chef、Docker、Puppet、Terraform)各有语法与生态,导致代码异味检测工具往往需要为每种技术单独实现。GLITCH 是一个与技术无关的自动化多语言代码异味检测框架,它引入中间表示,使检测器可以定义在该 IR 之上,从而复用分析逻辑并支持跨 IaC 技术的检测。目前 GLITCH 支持在 Ansible、Chef、Docker、Puppet 或 Terraform 脚本中检测九类安全异味和九类设计与实现异味。基于 GLITCH 的研究表明,它既能降低为多种 IaC 技术编写异味分析的工作量,又在精度和召回率上优于当前最先进工具。
This paper presents GLITCH, a new technology-agnostic framework that enables automated polyglot code smell detection for Infrastructure as Code scripts. GLITCH uses an intermediate representation on which different code smell detectors can be defined. It currently supports the detection of nine security smells and nine design & implementation smells in scripts written in Ansible, Chef, Docker, Puppet, or Terraform. Studies conducted with GLITCH not only show that GLITCH can reduce the effort of writing code smell analyses for multiple IaC technologies, but also that it has higher precision and recall than current state-of-the-art tools. A video describing and demonstrating GLITCH is available at: https://youtu.be/E4RhCcZjWbk.
DOI 原文 · arXiv · PDF(开放获取) · DBLP
@inproceedings{SaavedraGHFM23,
title = {Polyglot Code Smell Detection for Infrastructure as Code with GLITCH},
author = {Nuno Saavedra and João Gonçalves and Miguel Henriques and João F. Ferreira and Alexandra Mendes},
booktitle = {ASE},
year = {2023},
doi = {10.1109/ase56229.2023.00162}
}