SeqTrans:基于序列到序列学习的自动漏洞修复
密码学与安全
2022-03-23 v3 软件工程
摘要
由于近期自动化漏洞挖掘工具的发展,软件漏洞正以空前的速度被报告。然而,修复漏洞仍主要依赖程序员的手动工作。开发者需要深入理解漏洞,并尽量减小对系统功能的影响。在本文中,借助神经机器翻译 (NMT) 技术的进展,我们提出了一种称为 SeqTrans 的新颖方法,利用历史漏洞修复记录来提供建议并自动修复源代码。为捕获漏洞代码周围的上下文信息,我们提议利用数据流依赖来构建代码序列,并将其输入最先进的 transformer 模型。我们引入了微调策略以克服小样本问题。我们在包含 205 个 Java 项目中修复 624 个漏洞的 1,282 次提交的数据集上评估了 SeqTrans。结果表明,SeqTrans 的准确率优于最新技术,在语句级修复中达到 23.3%,在 CVE 级修复中达到 25.3%。同时,我们深入分析结果并观察到 NMT 模型在某些类型的漏洞(如 CWE-287(不当认证)和 CWE-863(不正确授权))上表现非常好。
引用
@article{arxiv.2010.10805,
title = {SeqTrans: Automatic Vulnerability Fix via Sequence to Sequence Learning},
author = {Jianlei Chi and Yu Qu and Ting Liu and Qinghua Zheng and Heng Yin},
journal= {arXiv preprint arXiv:2010.10805},
year = {2022}
}
备注
22 pages, 20 figures, 7 tables