通过语义感知的代码与语言处理检测 IaC 脚本中的安全异味
密码学与安全
2025-09-24 v1 人工智能
机器学习
软件工程
摘要
基础设施即代码(Infrastructure as Code, IaC)通过脚本和工具自动化 IT 基础设施的配置与管理,简化了软件部署。先前的研究表明,IaC 脚本常包含反复出现的安全配置错误,并已有多种检测与缓解方法被提出。这些方法大多依赖静态分析,使用统计代码表示或机器学习(Machine Learning, ML)分类器来区分不安全配置与安全代码。在本工作中,我们引入了一种新方法,通过联合利用自然语言和代码表示,以语义理解增强静态分析。我们的方法基于两个互补的 ML 模型:CodeBERT,用于捕获跨代码和文本的语义;以及 LongFormer,用于在不丢失上下文信息的情况下表示长 IaC 脚本。我们在两个广泛使用的 IaC 工具 Ansible 和 Puppet 的配置错误数据集上评估了该方法。为了验证其有效性,我们进行了两项消融研究(从自然语言输入中移除代码文本以及截断脚本以减少上下文),并与四个大语言模型(LLMs)及先前工作进行了比较。结果表明,语义增强显著改善了检测效果,在 Ansible 上将精确率和召回率分别从 0.46 和 0.79 提升至 0.92 和 0.88,在 Puppet 上分别从 0.55 和 0.97 提升至 0.87 和 0.75。
引用
@article{arxiv.2509.18790,
title = {Detection of security smells in IaC scripts through semantics-aware code and language processing},
author = {Aicha War and Adnan A. Rawass and Abdoul K. Kabore and Jordan Samhi and Jacques Klein and Tegawende F. Bissyande},
journal= {arXiv preprint arXiv:2509.18790},
year = {2025}
}