基于神经迁移学习的 C 代码安全漏洞修复
软件工程
2022-02-03 v3 密码学与安全
机器学习
摘要
本文中,我们解决利用深度学习自动修复软件漏洞的问题。数据驱动的漏洞修复的主要问题在于,现有少数已知已确认漏洞的数据集仅包含几千个样本。然而,训练深度学习模型通常需要数十万个样本。本工作中,我们利用如下直觉:缺陷修复任务与漏洞修复任务相关,且从缺陷修复中学到的知识可迁移至修复漏洞。机器学习界将此种技术称为迁移学习。本文提出一种名为 VRepair、基于迁移学习的漏洞修复方法。VRepair 先在一个大型缺陷修复语料库上训练,再在一个小一个数量级的漏洞修复数据集上微调。在我们的实验中,我们展示仅在一个缺陷修复语料库上训练的模型已能修复部分漏洞。随后,我们证明迁移学习提升了修复脆弱 C 函数的能力。我们还表明,该迁移学习模型优于以去噪任务训练并在漏洞修复任务上微调的模型。总之,本文表明,相较于在小数据集上学习,迁移学习能很好地用于修复 C 语言中的安全漏洞。
引用
@article{arxiv.2104.08308,
title = {Neural Transfer Learning for Repairing Security Vulnerabilities in C Code},
author = {Zimin Chen and Steve Kommrusch and Martin Monperrus},
journal= {arXiv preprint arXiv:2104.08308},
year = {2022}
}