[论文解读] Learning to Repair Software Vulnerabilities with Generative Adversarial Networks
本文提出一种基于生成对抗网络(GAN)的自动化软件漏洞修复方法,无需成对训练数据,通过条件神经机器翻译(NMT)生成器结合新型损失函数,实现精确的代码修复。该方法在无成对数据的情况下,于代码修复基准测试中达到接近监督序列到序列(seq2seq)模型的性能,展现出强大的泛化能力,并可推广至其他序列修正任务。
Motivated by the problem of automated repair of software vulnerabilities, we propose an adversarial learning approach that maps from one discrete source domain to another target domain without requiring paired labeled examples or source and target domains to be bijections. We demonstrate that the proposed adversarial learning approach is an effective technique for repairing software vulnerabilities, performing close to seq2seq approaches that require labeled pairs. The proposed Generative Adversarial Network approach is application-agnostic in that it can be applied to other problems similar to code repair, such as grammar correction or sentiment translation.
研究动机与目标
- 解决在缺乏成对训练数据的情况下自动化软件漏洞修复的挑战。
- 开发一种无需一一对应标注样本即可将有漏洞代码映射为安全代码的方法。
- 通过对抗学习实现与应用无关的序列修正,例如语法纠错或情感转换。
- 克服在代码序列训练过程中生成对抗网络(GAN)中离散输出不可微的问题。
- 通过引入新型损失函数,对输入代码施加条件约束,确保生成修复在语义和语法上均有效。
提出的方法
- 使用条件NMT生成器作为GAN中的生成器,采用对抗损失进行训练,而非标准的负对数似然损失。
- 判别器用于区分真实修复代码与生成的修复结果,为分布匹配提供代理损失。
- 采用软标签判别器,基于期望输出(非采样输出)进行操作,以应对离散代码生成过程中的不可微性问题。
- 引入两种新型生成器损失函数 $\mathcal{L}_{\textit{AUTO}}$ 和 $\mathcal{L}_{\textit{FREQ}}$,以增强对输入代码的保真度并提升修复质量。
- 应用课程学习策略,逐步增加训练难度,从而改善收敛性与性能表现。
- 在包含成对与非成对数据的代码修复数据集上评估该方法,采用BLEU-4、序列准确率和正确性指标进行评估。
实验结果
研究问题
- RQ1基于GAN的方法是否能在缺乏成对训练样本的情况下有效学习修复软件漏洞?
- RQ2尽管存在不可微性问题,采用软标签判别器的对抗训练在离散代码序列上是否具备良好的泛化能力?
- RQ3所提出的生成器损失函数在多大程度上提升了修复准确率与对输入代码的保真度?
- RQ4在非成对数据设置下,该方法的性能与监督seq2seq基线模型相比如何?
- RQ5该方法是否可推广至软件修复以外的其他序列修正任务?
主要发现
- 采用课程学习与 $\mathcal{L}_{\text{FREQ}}$ 正则化的GAN模型在非成对测试集上达到90.3的BLEU-4得分,接近seq2seq基线模型的91.3。
- Base + Cur + Freq模型实现了98.2%的序列准确率与99.1%的顺序准确率,表明修复具有高度保真度。
- 即使仅使用一半的训练数据且无成对样本,非成对GAN模型在测试集上仍达到81.3%的BLEU-4得分,展现出强大的泛化能力。
- 该模型成功修复了真实世界中的漏洞,如函数调用中参数数量错误与双重释放(double-free)错误,如表2所示。
- 该方法优于基线GAN模型,并在性能上接近监督seq2seq模型,验证了其在低资源、非成对设置下的有效性。
- 由于其与应用无关的设计,该方法可推广至语法纠错与情感转换等任务。
更好的研究,从现在开始
从论文设计到论文写作,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。