通过保持漏洞特征的数据增强增强代码漏洞检测
密码学与安全
2024-04-16 v1
摘要
源代码漏洞检测旨在识别固有漏洞,以保护软件系统免受潜在攻击。许多先前的研究忽略了多样的漏洞特征,将该问题简化为二元(0-1)分类任务,例如判断其是否存在漏洞。这给单一基于深度学习的模型有效学习大量漏洞特征带来了挑战。此外,由于收集大规模漏洞数据存在困难,这些检测器往往在有限的训练数据集上过拟合,导致模型泛化性能较低。为了解决上述挑战,本文引入了一种细粒度漏洞检测器,即 FGVulDet。与以往方法不同,FGVulDet 采用多个分类器来辨别各种漏洞类型的特征,并结合它们的输出来识别具体的漏洞类型。每个分类器被设计为学习特定类型的漏洞语义。此外,为了解决某些漏洞类型数据稀缺的问题并增强数据多样性以学习更好的漏洞语义,我们提出了一种新颖的保持漏洞特征的数据增强技术来增加漏洞数量。受图神经网络在学习程序语义方面最新进展的启发,我们引入了门控图神经网络(GGNN)并将其扩展为边感知 GGNN 以捕获边类型信息。FGVulDet 在来自 GitHub 的大规模数据集上进行了训练,包含五种不同类型的漏洞。与基于静态分析的方法和基于学习的方法进行的大量对比实验证明了 FGVulDet 的有效性。
引用
@article{arxiv.2404.09599,
title = {Enhancing Code Vulnerability Detection via Vulnerability-Preserving Data Augmentation},
author = {Shangqing Liu and Wei Ma and Jian Wang and Xiaofei Xie and Ruitao Feng and Yang Liu},
journal= {arXiv preprint arXiv:2404.09599},
year = {2024}
}