Infrastructure as Code (IaC) is the process of managing IT infrastructure via programmable configuration files (also called IaC scripts). Like other software artifacts, IaC scripts may contain security smells, which are coding patterns that can result in security weaknesses. Automated analysis tools to detect security smells in IaC scripts exist, but they focus on specific technologies such as Puppet, Ansible, or Chef. This means that when the detection of a new smell is implemented in one of the tools, it is not immediately available for the technologies supported by the other tools -- the only option is to duplicate the effort. This paper presents GLITCH, a new technology-agnostic framework that enables automated polyglot smell detection by transforming IaC scripts into an intermediate representation, on which different security smell detectors can be defined. GLITCH currently supports the detection of nine different security smells in scripts written in Puppet, Ansible, or Chef. We compare GLITCH with state-of-the-art security smell detectors. The results obtained not only show that GLITCH can reduce the effort of writing security smell analyses for multiple IaC technologies, but also that it has higher precision and recall than the current state-of-the-art tools.
翻译:作为代码 (IaC) 的基础设施, 是通过可编程配置文件( 也称为 IaC 脚本) 管理信息技术基础设施的过程。 与其他软件文物一样, IaC 脚本可能含有安全气味, 它们是导致安全缺陷的编码模式。 存在用于检测IaC 脚本中安全气味的自动分析工具, 但是它们侧重于特定技术, 如 Putppie、 Aansibel 或 Pecher 。 这意味着当新气味在其中一种工具中被检测到时, 其它工具所支持的技术无法立即使用, 唯一的选择是重复这项努力。 本文展示了 GLITCH, 这个新的技术- 不可知觉化框架, 通过将 IaC 脚本转化为中间代表, 可以定义不同的安全气味探测器, 。 GLITCH 目前支持检测在 Putsh、 Asable 或 Cher 所写脚本中九种不同的安全气味。 我们将GLITCH 与最新安全气味探测器进行比较。 所获得的结果不仅显示 GLITch 能够减少当前安全气味分析的力度, 而且也回顾多种IC 工具。