Ansible 与 Chef 脚本中的安全异味:一项复现研究
摘要
背景:安全异味是表明安全性弱点并需进一步审查的反复出现的编码模式。由于 Ansible 和 Chef 等基础设施即代码(IaC)脚本被用于大规模配置基于云的服务器和系统,IAc 脚本中的安全异味可能被恶意用户利用以攻击所配置系统中的漏洞。目标:本文的目标是通过对 Ansible 和 Chef 脚本中安全异味的实证研究,帮助从业者在开发基础设施即代码脚本时避免不安全的编码实践。方法:我们进行了一项复现研究,对 1,956 个 IaC 脚本应用定性分析,以识别用两种语言(Ansible 和 Chef)编写的 IaC 脚本的安全异味。我们构建了一个称为 Ansible 与 Chef 脚本安全检查器(SLAC)的静态分析工具,用于自动识别从 813 个开源软件仓库收集的 50,323 个脚本中的安全异味。我们还针对随机选取的 1,000 个异味出现提交了缺陷报告。结果:我们识别出了先前工作中未报告的两种安全异味:case 语句缺失 default 以及无完整性校验。通过应用 SLAC,我们识别出 46,600 个安全异味出现,其中包括 7,849 个硬编码密码。我们观察到已回复的 94 个缺陷报告中有 65 个达成一致,这表明从业者中 Ansible 和 Chef 脚本安全异味的相关性。结论:我们观察到安全异味在 Ansible 和 Chef 脚本中普遍存在,与 Puppet 脚本类似。我们建议从业者使用(i)代码审查和(ii)静态分析工具来严格检查 Ansible 和 Chef 脚本中已识别安全异味的存在。
引用
@article{arxiv.1907.07159,
title = {Security Smells in Ansible and Chef Scripts: A Replication Study},
author = {Akond Rahman and Md. Rayhanur Rahman and Chris Parnin and Laurie Williams},
journal= {arXiv preprint arXiv:1907.07159},
year = {2020}
}
备注
31 pages: This paper has been accepted at the journal of ACM Transaction on Software Engineering and Methodology (TOSEM)