[论文解读] VulSPG: Vulnerability detection based on slice property graph representation learning
VulSPG 提出了一种名为切片属性图(Slice Property Graph, SPG)的新代码表示方法,该方法在最小化无关代码的同时,捕捉与漏洞相关的语义和结构信息,并引入一种带有三重注意力机制的 R-GCN 模型以提升漏洞检测性能。在真实世界数据集上的评估表明,VulSPG 在准确率和效率方面均优于当前最先进方法。
Vulnerability detection is an important issue in software security. Although various data-driven vulnerability detection methods have been proposed, the task remains challenging since the diversity and complexity of real-world vulnerable code in syntax and semantics make it difficult to extract vulnerable features with regular deep learning models, especially in analyzing a large program. Moreover, the fact that real-world vulnerable codes contain a lot of redundant information unrelated to vulnerabilities will further aggravate the above problem. To mitigate such challenges, we define a novel code representation named Slice Property Graph (SPG), and then propose VulSPG, a new vulnerability detection approach using the improved R-GCN model with triple attention mechanism to identify potential vulnerabilities in SPG. Our approach has at least two advantages over other methods. First, our proposed SPG can reflect the rich semantics and explicit structural information that may be relevance to vulnerabilities, while eliminating as much irrelevant information as possible to reduce the complexity of graph. Second, VulSPG incorporates triple attention mechanism in R-GCNs to achieve more effective learning of vulnerability patterns from SPG. We have extensively evaluated VulSPG on two large-scale datasets with programs from SARD and real-world projects. Experimental results prove the effectiveness and efficiency of VulSPG.
研究动机与目标
- 为解决在大型复杂代码库中检测漏洞时,冗余信息影响模型性能的挑战。
- 通过创建更聚焦、语义丰富的代码表示,仅保留与漏洞相关的特征,从而提升漏洞检测能力。
- 通过引入三重注意力机制,增强图模型中的特征学习能力,突出漏洞模式并抑制噪声。
- 在大规模真实世界数据集上评估所提出方法,以验证其有效性和相对于现有方法的优越性。
提出的方法
- 本文提出切片属性图(SPG),一种从程序属性图(CPG)衍生出的图表示方法,整合了切片节点之间的数据依赖、控制依赖和函数调用依赖关系。
- SPG 通过六类基于语法的漏洞候选(SyVCs)构建,其中包括两种新提出的 SyVCs,以提升漏洞覆盖范围。
- 该方法采用改进的关系图卷积网络(R-GCN),并引入三重注意力机制——即标记级、节点级和子图级注意力,以聚焦于与漏洞相关的特征。
- 注意力机制动态地为 SPG 中的节点和边分配权重,使模型能够抑制无关信息并突出显示与漏洞相关的模式。
- 模型在 SPG 表示上进行端到端训练,以将代码段分类为有漏洞或无漏洞。
实验结果
研究问题
- RQ1一种仅保留与漏洞相关结构和语义信息的基于图的代码表示,能否提升检测性能?
- RQ2三重注意力机制在 SPG 中提升漏洞检测特征学习能力方面的有效性如何?
- RQ3VulSPG 是否在真实世界和大规模数据集上优于现有的最先进方法?
- RQ4在程序切片中,新增 SyVCs 的引入在多大程度上提升了漏洞覆盖范围?
主要发现
- VulSPG 在基于 SARD 的切片级数据集和真实世界的功能级数据集上,均优于当前最先进方法。
- 所提出的 SPG 表示通过消除无关代码,显著降低了图的复杂度,从而实现更高效且准确的学习。
- 三重注意力机制通过聚焦于关键漏洞模式并抑制图中的噪声,提升了模型性能。
- 即使不进行过程间分析,模型仍保持强劲性能,表明其对不完整程序上下文具有鲁棒性。
- 实验结果证实,新增两种 SyVCs 显著提升了切片中漏洞代码段的覆盖范围。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。