论文阅读:DeepWukong: Statically detecting software vulnerabilities using deep graph neural network

DeepWuKong是一种使用深度图神经网络的静态漏洞检测方法,针对C/C++代码,能检测10种常见漏洞。它通过程序切片提取高级语义特征,结合图神经网络学习,提高了检测性能,优于传统工具和基于深度学习的其他方法。
摘要由CSDN通过智能技术生成

ACM Transactions on Software Engineering and Methodology(TOSEM)

ABSTRACT

作者针对目前基于机器学习的漏洞检测方法的不足,提出了一种新的方法,即同时考虑代码中的控制流、结构化信息以及跨函数的数据流信息,此外还利用了最新的图神经网络进行嵌入表示。作者将该方法实现为DeepWuKong模型,并使用现实世界中105428个C\C++程序进行评估,实验结果表明在静态代码分析问题中将传统程序分析和深度学习进行有效结合具有广阔的应用前景。

INTRODUCTION

现有基于机器学习的静态漏洞检测方法总体思路是构建一个检测模型,通过样本训练捕获易受攻击程序与其所提取程序特征之间的相关性,随后便可利用训练好的模型检测新程序中是否存在漏洞。然而这些方法大多侧重于检测低级内存错误,例如缓冲区溢出和释放后使用。然而,针对现实世界中的复杂漏洞,现有方法仍存在以下几个问题:

  1. 未执行过程间程序依赖性分析,即未考虑函数间的调用关系,仅可以得到局部函数的代码特征
  2. 常采用Word2Vec、Doc2Vec提取浅层代码特征,如代码标记、抽象语法树,而未考虑更全面的特征代码,如控制依赖、数据依赖
  3. 现有方法以粗粒度的方式在函数或文件级别检测漏洞,这种粒度的检测对开发人员精确定位并修复漏洞帮助不大

作者提出了DeepWuKong,一种基于深度学习的新方法,即利用图神经网络对代码的文本和结构化信息进行嵌入表示,以此来检测常见的C\C++漏洞。实际上,该方法主要对源代码特征提取和神经网络两部分提出了创新,将传统程序分析和深度学习进行了有效结合,并结合图神经网络挖掘代码的结构化语义。与传统的静态漏洞检测器和先进的基于深

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值