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
翻译:本文提出GLITCH,一种新型技术无关框架,能够自动检测基础设施即代码脚本中的多语言代码异味。GLITCH采用中间表示层,可在此之上定义不同的代码异味检测器。目前,该框架支持在Ansible、Chef、Docker、Puppet或Terraform编写的脚本中检测九类安全异味和九类设计实现异味。基于GLITCH开展的研究表明,该框架不仅能显著降低为多种IaC技术编写代码异味分析的工作量,其检测精度与召回率均优于当前最先进的工具。描述并演示GLITCH的视频访问地址为:https://youtu.be/E4RhCcZjWbk