From Theory to Practice: Code Generation Using LLMs for CAPEC and CWE Frameworks

📄 arXiv: 2604.02548 📥 PDF

作者: Murtuza Shahzad, Joseph Wilson, Ibrahim Al Azher, Hamed Alhoori, Mona Rahimi

分类: cs.CR, cs.AI

发布日期: 2026-04-06


💡 一句话要点

利用LLM为CAPEC和CWE框架生成代码,提升漏洞理解与检测

🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)

关键词: 代码生成 大型语言模型 软件漏洞 CAPEC CWE 安全漏洞检测 漏洞修复

📋 核心要点

  1. 现有漏洞数据集缺乏与漏洞描述关联的详细代码片段,限制了漏洞研究和理解。
  2. 利用GPT-4o、Llama和Claude等LLM,根据CAPEC和CWE描述生成包含特定漏洞的代码片段。
  3. 生成的数据集具有高准确性(代码相似度0.98),可用于训练自动漏洞检测和修复模型。

📝 摘要(中文)

软件系统日益复杂,识别和缓解安全漏洞变得至关重要。现有的软件漏洞数据集通常缺乏与特定漏洞描述明确关联的、全面的代码片段,这限制了高级研究并阻碍了对安全漏洞的深入理解。为了解决这一挑战,我们提出了一个新颖的数据集,该数据集提供了与通用攻击模式枚举和分类(CAPEC)以及通用弱点枚举(CWE)描述相对应的易受攻击的代码片段示例。我们利用生成式预训练Transformer(GPT)模型的能力,开发了一种用于生成这些示例的稳健方法。我们的方法利用GPT-4o、Llama和Claude模型生成代码片段,这些代码片段展示了CAPEC和CWE文档中描述的特定漏洞。该数据集不仅增强了对代码中安全漏洞的理解,而且还为训练专注于自动漏洞检测和修复的机器学习模型提供了宝贵的资源。初步评估表明,大型语言模型生成的数据集表现出很高的准确性,可以作为漏洞识别系统的可靠参考。我们发现三个模型的结果一致,代码之间的余弦相似度为0.98。最终数据集包含615个CAPEC代码片段,使用Java、Python和JavaScript三种编程语言,使其成为该领域最广泛和多样化的资源之一。

🔬 方法详解

问题定义:现有软件漏洞数据集通常缺乏与特定漏洞描述明确关联的、全面的代码片段,这使得研究人员难以深入理解漏洞的本质,也限制了机器学习模型在自动漏洞检测和修复方面的应用。因此,如何构建一个包含高质量、与漏洞描述精确匹配的代码片段的数据集,是当前面临的一个重要问题。

核心思路:本研究的核心思路是利用大型语言模型(LLMs)强大的代码生成能力,根据CAPEC和CWE等漏洞知识库中的描述,自动生成包含特定漏洞的代码片段。这种方法能够高效地创建大量高质量的漏洞代码样本,从而弥补现有数据集的不足。

技术框架:该研究的技术框架主要包括以下几个阶段:1) 确定漏洞类型:选择CAPEC和CWE中的特定漏洞类型作为目标。2) 准备提示:根据CAPEC和CWE的描述,构建用于提示LLM生成代码的prompt。3) 代码生成:使用GPT-4o、Llama和Claude等LLM,根据prompt生成代码片段。4) 代码验证:对生成的代码进行验证,确保其包含目标漏洞。5) 数据集构建:将验证后的代码片段及其对应的漏洞描述添加到数据集中。

关键创新:该研究的关键创新在于利用LLM自动生成漏洞代码片段,从而高效地构建了一个大规模、高质量的漏洞数据集。与传统的手工收集或合成方法相比,该方法能够显著降低数据集构建的成本和时间,并提高数据集的多样性和覆盖范围。

关键设计:在代码生成阶段,研究人员精心设计了prompt,以确保LLM能够准确理解漏洞描述并生成相应的代码。此外,研究人员还采用了余弦相似度等指标来评估不同LLM生成的代码之间的相似性,从而验证了该方法的稳定性和可靠性。

🖼️ 关键图片

fig_0
fig_1
fig_2

📊 实验亮点

实验结果表明,使用GPT-4o、Llama和Claude等LLM生成的数据集具有很高的准确性,不同模型生成的代码之间的余弦相似度高达0.98,表明该方法具有很强的稳定性和可靠性。最终构建的数据集包含615个CAPEC代码片段,使用Java、Python和JavaScript三种编程语言,是目前该领域最广泛和多样化的资源之一。

🎯 应用场景

该研究成果可广泛应用于软件安全领域,例如:用于训练自动漏洞检测和修复模型,提高模型的准确性和泛化能力;为安全研究人员提供高质量的漏洞代码样本,促进漏洞分析和利用技术的发展;用于构建软件安全测试平台,提高测试的覆盖率和效率。该数据集的发布将有助于推动软件安全领域的进步。

📄 摘要(原文)

The increasing complexity and volume of software systems have heightened the importance of identifying and mitigating security vulnerabilities. The existing software vulnerability datasets frequently fall short in providing comprehensive, detailed code snippets explicitly linked to specific vulnerability descriptions, reducing their utility for advanced research and hindering efforts to develop a deeper understanding of security vulnerabilities. To address this challenge, we present a novel dataset that provides examples of vulnerable code snippets corresponding to Common Attack Pattern Enumerations and Classifications (CAPEC) and Common Weakness Enumeration (CWE) descriptions. By employing the capabilities of Generative Pre-trained Transformer (GPT) models, we have developed a robust methodology for generating these examples. Our approach utilizes GPT-4o, Llama and Claude models to generate code snippets that exhibit specific vulnerabilities as described in CAPEC and CWE documentation. This dataset not only enhances the understanding of security vulnerabilities in code but also serves as a valuable resource for training machine learning models focused on automatic vulnerability detection and remediation. Preliminary evaluations suggest that the dataset generated by Large Language Models demonstrates high accuracy and can serve as a reliable reference for vulnerability identification systems. We found consistent results across the three models, with 0.98 cosine similarity among codes. The final dataset comprises 615 CAPEC code snippets in three programming languages: Java, Python, and JavaScript, making it one of the most extensive and diverse resources in this domain.