这篇文档属于类型a,即报告了一项原创性研究。以下是针对该研究的学术报告:
本研究由Gábor Antal(FrontendArt Ltd.和University of Szeged)、Bence Bogenfürst、Rudolf Ferenc和Péter Hegedűs(均来自University of Szeged)合作完成,发表于2025年的第29届国际软件工程评估与测量会议(EASE 2025),论文标题为《Identifying Helpful Context for LLM-Based Vulnerability Repair: A Preliminary Study》。
研究领域:本研究属于软件安全与自动化程序修复领域,聚焦于利用大语言模型(Large Language Models, LLMs)实现漏洞的自动化检测与修复(Automated Vulnerability Repair, AVR)。
研究动机:
近年来,LLMs(如GPT系列)在代码生成与漏洞修复中展现出潜力,但实际应用中存在显著局限性。例如,模型修复成功率受限于上下文信息的完整性(如漏洞描述、代码库上下文等)。现有研究未系统分析不同上下文信息(如CWE/CVE报告、代码注释等)对修复效果的影响。因此,本研究旨在探索如何通过优化上下文信息提升LLM的漏洞修复能力。
研究目标:
1. 评估GPT-4o在Java漏洞修复任务中的性能,并与GPT-4对比;
2. 分析不同上下文信息(如CVE描述、手动提取的代码上下文)对修复成功率的影响;
3. 提出多提示词(prompt)组合策略,以提升零样本(zero-shot)场景下的修复效果。
研究对象与样本量:
- 使用Vul4J数据集中的42个可复现Java漏洞(原数据集含46个漏洞,因测试环境问题排除4个)。
- 每个漏洞生成修复代码时,采用9种不同提示词(含基线提示词),每种提示词运行3次,共生成1,134个修复候选方案。
实验设计:
1. 基线实验:
- 复现此前研究[17]的提示词,分别用GPT-4和GPT-4o生成修复代码,对比性能差异。
- 关键参数:温度(temperature)设为0.01以减少随机性。
上下文增强实验:
提示词工程:
验证方法:
- 使用Vul4J的自动化测试框架验证修复代码的正确性。
- 对部分测试用例进行人工调整(如放宽过于严格的断言),避免误判。
数据分析:
- 统计各提示词组合的修复成功率(通过测试的漏洞比例)及编译错误率。
- 对比不同上下文组合的效果(如“CVE+手动上下文” vs. 单一CWE描述)。
模型性能对比:
上下文信息的影响:
多提示词组合策略:
失败模式分析:
int改为long)。科学价值:
1. 首次系统评估了不同上下文信息对LLM漏洞修复的影响,证实CVE描述与项目特定上下文的结合最有效。
2. 提出多提示词组合策略,为零样本修复提供实用方案。
应用价值:
1. 为开发者设计LLM提示词提供实证指导。
2. 推动自动化工具开发,以动态检索项目上下文(如基于RAG技术)。
重要观点:
- 高级模型(如GPT-4o)未必直接提升修复性能,需依赖针对性优化。
- 漏洞修复的上下文需求具有高度特异性,需结合通用(CVE)与本地(代码库)信息。
创新性方法:
发现特殊性:
跨模型对比:
(注:全文约2,200字,涵盖研究全貌及细节。)