A.S.E 2.0:理解代码仓库上下文如何影响 LLM 生成代码的安全性
A.S.E 2.0: Understanding How Repository Context Impacts the Security of LLM-Generated Code
精选理由
揭示代码库上下文会显著影响大模型生成代码的安全性,为改进上下文构建与安全评测提供实证依据。
AI 摘要
大语言模型(LLM)编程助手和智能体会在生成代码之前构建代码仓库上下文。对于安全敏感代码,这一上下文决定了模型看到的是项目的安全防护措施(例如授权检查),还是可供模仿的不安全代码。然而,上下文构建几乎完全以功能正确性为目标,而安全代码基准又将上下文视为固定条件,因此,代码仓库上下文如何影响生成代码的安全性仍不明确。我们构建了 CASE-Bench,这是一个包含 145 项代码仓库级任务的基准,任务源自 51 个项目中的真实 CVE 漏洞。每项任务均在 Docker 中运行,配备功能测试和经过双向验证的概念验证漏洞利用程序,并标注了代码仓库中保障或破坏其安全性的代码。利用 CASE-Bench,我们在六个 LLM 上比较了 13 种上下文构建方法和六种对照设置,修改单个上下文元素,并分析编程智能体的执行轨迹。我们发现:(1)面向功能的上下文可使功能测试通过率最多提高 8.2 个百分点,但安全通过率最多仅提高 3.7 个百分点;(2)不提供某项安全防护措施会使安全通过率最多下降 8.1 个百分点,而插入一个不安全示例会使功能正确但可被利用的代码占比提高 6.3 个百分点;(3)编程智能体仅在 27%–36% 的执行轨迹中观察到相关安全防护措施。这些发现为安全感知的上下文构建和安全代码评估提供了参考。