VGX:用于提升基于学习的软件漏洞分析的大规模样本生成
软件工程
2024-01-08 v2
摘要
基于学习的防御性软件漏洞分析取得成功的同时,也面临着缺乏大规模且高质量的标注漏洞程序样本的问题,这阻碍了此类防御手段的进一步发展。现有的自动化样本生成方法已展现出潜力,但由于生成样本噪声高,仍未能达到实际预期。本文提出 VGX,一种面向大规模生成高质量漏洞数据集的新技术。给定一个正常程序,VGX 利用定制化的 Transformer 识别可注入漏洞的代码上下文,该 Transformer 具有基于值流的新位置编码,并针对学习代码结构与上下文的新目标进行了预训练。随后,VGX 利用从历史修复和关于真实世界漏洞的人类知识中获得的此类编辑模式,在识别出的上下文中实现漏洞注入的代码编辑。与四种最先进(SOTA)基线(基于模式、Transformer、GNN 以及模式+Transformer)相比,VGX 的 F1 提高了 99.09%–890.06%,标签准确率提高了 22.45%–328.47%。在真实样本生产中,VGX 生成了 150,392 个漏洞样本,我们从中随机选取 10% 来评估这些样本对漏洞检测、定位与修复的帮助。结果表明,将这批样本加入原始训练数据后,针对上述三项应用任务的 SOTA 技术分别实现了 F1 提高 19.15%–330.80%、top-10 准确率提高 12.86%–19.31%、top-50 准确率提高 85.02%–99.30%。这些样本还帮助一个 SOTA 漏洞检测器在关键系统(如 Linux 内核)中发现了原有模型会遗漏的 13 个更多真实世界漏洞(CVE)。
引用
@article{arxiv.2310.15436,
title = {VGX: Large-Scale Sample Generation for Boosting Learning-Based Software Vulnerability Analyses},
author = {Yu Nong and Richard Fang and Guangbei Yi and Kunsong Zhao and Xiapu Luo and Feng Chen and Haipeng Cai},
journal= {arXiv preprint arXiv:2310.15436},
year = {2024}
}
备注
13 pages, 6 figures, To appear at ICSE 2024