针对当前深度学习软件漏洞检测方法在处理源代码过程中存在的检测粒度粗、语法或语义信息丢失等问题,提出一种基于改进代码属性图的图神经网络软件漏洞检测模型(Vulnerability Detection with Code Property Graphs,VDCPG)。为准确捕获...针对当前深度学习软件漏洞检测方法在处理源代码过程中存在的检测粒度粗、语法或语义信息丢失等问题,提出一种基于改进代码属性图的图神经网络软件漏洞检测模型(Vulnerability Detection with Code Property Graphs,VDCPG)。为准确捕获源代码中的语法和语义信息,该模型使用Joern生成目标函数的代码属性图(Code Property Graphs,CPG)。通过在深度优先遍历的基础上动态去除控制流程图或控制依赖图边的CPG优化方法,实现在不降低漏洞检测效果的同时提高检测效率。在word2vec的CBOW(Continuous Bag Of Words)模式下对生成的CPG进行向量化处理,并采用带自注意力机制的图注意力网络(Graph Attention Networks,GAT)来实现软件漏洞的高效与准确检测。通过两个不同规模数据集的测试结果表明,VDCPG的漏洞检测效果相较于当前已有的软件漏洞检测工具、模型均有较大幅度的提升。展开更多
文摘针对当前深度学习软件漏洞检测方法在处理源代码过程中存在的检测粒度粗、语法或语义信息丢失等问题,提出一种基于改进代码属性图的图神经网络软件漏洞检测模型(Vulnerability Detection with Code Property Graphs,VDCPG)。为准确捕获源代码中的语法和语义信息,该模型使用Joern生成目标函数的代码属性图(Code Property Graphs,CPG)。通过在深度优先遍历的基础上动态去除控制流程图或控制依赖图边的CPG优化方法,实现在不降低漏洞检测效果的同时提高检测效率。在word2vec的CBOW(Continuous Bag Of Words)模式下对生成的CPG进行向量化处理,并采用带自注意力机制的图注意力网络(Graph Attention Networks,GAT)来实现软件漏洞的高效与准确检测。通过两个不同规模数据集的测试结果表明,VDCPG的漏洞检测效果相较于当前已有的软件漏洞检测工具、模型均有较大幅度的提升。