一句话:提出 MVD,用流敏感图神经网络联合嵌入代码与控制/数据流,实现语句级内存相关漏洞检测,显著降低误报。
内存相关漏洞严重威胁现代软件安全。尽管基于深度学习的通用漏洞检测已取得成效,但此类方法在检测内存相关漏洞时对流信息的利用不足,导致误报率偏高。本文提出 MVD,一种基于流敏感图神经网络(FS-GNN)的语句级内存相关漏洞检测方法。FS-GNN 将非结构化信息(源代码)与结构化信息(控制流与数据流)联合嵌入,以捕捉隐式的内存相关漏洞模式。作者在包含 4353 个真实内存相关漏洞的数据集上评估 MVD,并与三种最先进的深度学习方法以及五种主流静态分析内存检测器进行对比。实验结果表明,MVD 取得了更高的检测精度,优于现有的深度学习与静态分析方法,同时在精度与效率之间取得了良好的权衡。
Memory-related vulnerabilities constitute severe threats to the security of modern software. Despite the success of deep learning-based approaches to generic vulnerability detection, they are still limited by the underutilization of flow information when applied for detecting memory-related vulnerabilities, leading to high false positives. In this paper, we propose MVD, a statement-level Memory-related Vulnerability Detection approach based on flow-sensitive graph neural networks (FS-GNN). FS-GNN is employed to jointly embed both unstructured information (i.e., source code) and structured information (i.e., control- and data-flow) to capture implicit memory-related vulnerability patterns. We evaluate MVD on the dataset which contains 4,353 real-world memory-related vulnerabilities, and compare our approach with three state-of-the-art deep learning-based approaches as well as five popular static analysis-based memory detectors. The experiment results show that MVD achieves better detection accuracy, outperforming both state-of-the-art DL-based and static analysis-based approaches. Furthermore, MVD makes a great trade-off between accuracy and efficiency.