CodeLMSec Benchmark
收藏arXiv2023-10-23 更新2024-08-06 收录
下载链接:
http://arxiv.org/abs/2302.04012v2
下载链接
链接失效反馈官方服务:
资源简介:
CodeLMSec Benchmark是一个用于评估和比较代码语言模型生成易受攻击代码倾向性的数据集。该数据集由CISPA Helmholtz Center for Information Security创建,包含280个非安全提示,用于触发模型生成包含特定安全漏洞的代码。数据集的创建过程涉及使用先进的代码模型自动生成提示,并通过静态分析工具CodeQL验证生成的代码是否包含指定的安全弱点。该数据集旨在帮助研究人员和开发者评估和改进代码生成模型的安全性,解决自动代码生成中可能引入的安全漏洞问题。
CodeLMSec Benchmark is a dataset designed to evaluate and compare the propensity of code language models to generate vulnerable code. Created by the CISPA Helmholtz Center for Information Security, this dataset includes 280 non-security prompts used to trigger models to generate code with specific security vulnerabilities. The dataset's creation process involves automatically generating prompts using state-of-the-art code models, and verifying whether the generated code contains designated security weaknesses via the static analysis tool CodeQL. This benchmark aims to help researchers and developers evaluate and improve the security of code generation models, addressing the issue of potential security vulnerabilities introduced by automated code generation.
提供机构:
CISPA Helmholtz Center for Information Security
创建时间:
2023-02-08
搜集汇总
数据集介绍

构建方式
在代码生成模型安全评估领域,CodeLMSec Benchmark的构建采用了创新的黑盒模型逆近似方法。该数据集通过少样本提示技术,引导目标代码生成模型自身近似其逆函数,从而自动生成能触发特定安全漏洞的提示词。具体流程分为三步:首先,利用包含漏洞的代码示例构建少样本提示,引导模型生成多样化的非安全提示词;随后,将这些提示词输入同一模型以生成潜在含有漏洞的代码;最后,借助CodeQL静态分析工具对生成代码进行漏洞检测与分类,确保数据集中每个提示词均能有效诱导目标漏洞的生成。
特点
该数据集的核心特点在于其系统性与可扩展性。它涵盖了十三种常见弱点枚举(CWE)类型,包括SQL注入、跨站脚本、路径遍历等高危漏洞,并支持Python和C两种编程语言。数据集中包含280个经过精选的非安全提示词,这些提示词通过GPT-4和Code Llama-34B等先进模型生成,确保了多样性与代表性。尤为重要的是,这些提示词在不同模型间展现出良好的可迁移性,使得该数据集能够作为统一的基准,用于横向比较各类代码生成模型的安全缺陷生成倾向。
使用方法
使用该数据集进行模型安全评估时,研究人员可将提供的非安全提示词输入待测代码生成模型,并采集模型生成的代码完成结果。随后,利用静态分析工具(如CodeQL)对生成代码进行漏洞扫描,依据检测到的CWE类型进行统计与分类。评估指标可重点关注模型在生成特定漏洞代码方面的倾向性,例如通过计算top-1或top-5生成结果中的漏洞比例来衡量模型的安全性。该数据集支持对黑盒与白盒模型的统一测试,并可灵活扩展以纳入新发现的漏洞类型,为持续跟踪模型安全演进提供标准化框架。
背景与挑战
背景概述
随着大型语言模型在代码生成领域的突破性进展,以GitHub Copilot为代表的AI辅助编程工具已成为数百万开发者日常工作的核心组成部分。然而,这些模型通常基于互联网收集的未净化代码数据进行训练,其中可能包含大量安全漏洞,导致模型在生成代码时无意识地传播这些缺陷。在此背景下,CISPA亥姆霍兹信息安全中心的研究团队于2023年推出了CodeLMSec Benchmark,旨在系统评估黑盒代码语言模型生成代码的安全性。该数据集通过创新的少样本提示技术,构建了首个自动化检测代码生成模型安全漏洞的基准框架,为软件安全与人工智能交叉领域的研究提供了关键基础设施。
当前挑战
该数据集致力于解决代码生成模型安全评估领域的核心挑战:如何系统化检测黑盒模型生成代码中的安全漏洞。具体挑战体现在两个层面:在领域问题层面,现有研究多关注生成代码的功能正确性,缺乏对安全漏洞的系统化评估方法,且传统手动构造漏洞场景的方式难以覆盖多样化的漏洞类型;在构建过程层面,研究团队需要克服黑盒模型逆向访问的技术障碍,通过少样本提示技术近似模拟模型逆函数,并需解决静态分析工具可能产生的误报与漏报问题,同时确保生成的漏洞提示具有跨模型迁移性,以构建具有广泛适用性的评估基准。
常用场景
经典使用场景
在代码生成模型安全评估领域,CodeLMSec Benchmark 提供了一个系统化的测试框架,用于评估黑盒代码语言模型生成包含安全漏洞代码的倾向性。该数据集通过少样本提示技术近似反演目标模型,自动生成多样化的非安全提示,引导模型产生特定类型漏洞的代码。研究人员利用这一基准,能够量化比较不同模型在生成安全代码方面的表现,从而深入理解模型在安全维度上的行为模式。
实际应用
在实际开发环境中,CodeLMSec Benchmark 可作为代码生成工具安全审计的重要参考。开发团队能够利用该基准测试 GitHub Copilot、ChatGPT 等主流代码助手的漏洞生成倾向,从而制定相应的代码审查策略。安全研究人员可依据基准结果,设计针对性的模型微调方案,降低生成代码中的安全风险。企业级软件开发生命周期中,集成此类基准测试有助于提前识别 AI 辅助编程引入的安全隐患,提升整体代码质量与系统安全性。
衍生相关工作
该数据集的推出催生了一系列围绕代码生成模型安全性的衍生研究。基于其提供的非安全提示集合,后续工作探索了指令调优对模型安全性的影响,以及如何通过对抗性训练增强模型生成安全代码的能力。同时,该基准为模型安全排行榜的建立提供了基础,激励社区开发更安全的代码生成模型。相关研究进一步扩展了漏洞类型覆盖范围,并将评估方法适配至更多编程语言与开发场景,形成了持续演进的安全评估生态系统。
以上内容由遇见数据集搜集并总结生成



