admin管理员组

文章数量:1566221

 摘要:漏洞识别对于保护软件系统免受网络安全攻击至关重要。在源代码之间本地化易受攻击的功能以促进修复尤为重要。但是,这是一个具有挑战性且乏味的过程,并且还需要专门的安全专业知识。受来自各种代码表示图的手动定义的漏洞模式的工作以及图神经网络的最新进展的启发,我们通过学习丰富的代码语义表示,提出了一种基于图神经网络的通用模型,用于图级分类。它包括一个新颖的Conv模块,可有效地在学习到的丰富节点表示中提取有用的特征,以进行图级分类。该模型是在4个多样化的大型开源C项目上构建的手动标记的数据集上进行训练的,这些项目包含高复杂性和各种真实的源代码,而不是以前工作中使用的合成代码。对数据集进行广泛评估的结果表明,Devign以平均10.51% 更高的准确性和8.68% 的F1得分显着优于技术水平,通过Conv模块平均提高了4.66% 的准确性和6.37% F1。

一、提出问题

以往深度学习方法在学习特征方面将源代码看作自然语言平坦序列处理,还有的只用一部分信息(指的是切片?)。但是,代码比自然语言更加具有逻辑性和结构性。漏洞的复杂性和多样性使得漏洞分析从多维语义角度处理,从而传统方法在特征提取方面不充分。另外,训练数据的标签一般是有静态分析工具获得的,但是静态分析工具具有很高的误报率,人工数据集又和真实情况有差距。

二、解决方案

Devicign包括三个顺序组件: 1) 图嵌入层的复合代码语义,它将函数的原始源代码编码为具有综合程序语义的联合图结构。2) 门控图递归层,通过聚合和传递图中相邻节点上的信息来学习节点的特征。3) Conv模块,提取有意义的节点表示,用于图级预测。

 每个函数转换为一个集成了AST、数据流和控制流的复合图

 模型的话就是GRU,转换成图分类任务!(卷积层没看懂)

本文标签: IdenticationvulnerabilityDevignEffective