中文

APILOT:引导大型语言模型规避过时 API 陷阱以生成安全代码

密码学与安全 2024-09-26 v1

摘要

随着大型语言模型的快速发展,其应用已扩展到代码辅助等各个领域。然而,LLMs 庞大的规模使其训练极具资源与时间密集性,导致频繁的再训练或更新变得不切实际。因此,时效性敏感的数据可能会过时,从而有可能在时间感知任务中误导 LLMs。例如,每天都会在各种程序中发现新的漏洞。如果不更新其知识,LLMs 可能会无意中生成包含这些新发现漏洞的代码。当前的策略,如提示工程和微调,并不能有效解决这一问题。为了解决这一问题,我们提出了一种名为 APILOT 的解决方案,它维护一个实时、可快速更新的过时 API 数据集。此外,APILOT 利用一种增强生成方法,借助该数据集引导 LLMs 生成安全的、版本感知的代码。我们进行了全面的评估,以衡量 APILOT 在减少七个不同的最先进 LLMs 中过时 API 推荐发生率方面的有效性。评估结果表明,APILOT 能够以有限的性能开销平均减少 89.42% 的过时代码推荐。有趣的是,在增强安全性的同时,APILOT 还提高了 LLMs 生成代码的可用性,可用性平均提升了 27.54%。这凸显了 APILOT 在当代软件开发环境中同时提升代码建议安全性与实用性的双重能力。

关键词

引用

@article{arxiv.2409.16526,
  title  = {APILOT: Navigating Large Language Models to Generate Secure Code by Sidestepping Outdated API Pitfalls},
  author = {Weiheng Bai and Keyang Xuan and Pengxiang Huang and Qiushi Wu and Jianing Wen and Jingjing Wu and Kangjie Lu},
  journal= {arXiv preprint arXiv:2409.16526},
  year   = {2024}
}