文章结构

1. 引言

1.1 漏洞现状

1.2 漏洞检测方法

1.2.1 传统方法:动态静态

1.2.2 机器学习方法

1.2.2.1 基于软件度量
1.2.2.2 基于模式学习

1.2.2 深度学习方法

2. 背景介绍

2.1 各种图

2.2 图深度学习模型

3. 方法介绍

3.1 基本过程

3.2 生成图

3.3 图转向量

3.4 训练模型

4. 实验设计和评估

4.1 数据集

4.2 参数设置

4.3 评估指标

4.4 结果分析

实验设置

数据集

  • 本文选用的数据集是 Zhou 等人[28]收集和标注的真实世界漏洞数据集,包含了2 个流行且多样化的基于C/C++的开源库FFmpeg 和Qemu。

基本过程

  • 首先将程序源代码转换为包含语法、语义特征信息的代码属性图;然后使用关系图卷积网络对图结构进行表示学习;最后训练神经网络模型预测程序源代码中的漏洞。为验证所提方法的有效性,在真实的软件漏洞样本上开展了实验验证,漏洞检测结果的召回率和F1 值分别达到了80. 27%和63. 78%。与Flawfinder、Vuldeepecker 和图卷积网络(GCN)相比,所提方法的F1 值分别提高了182%,12% 和55%。

参数设置

基于漏洞函数数据集生成图并编码生成实验样本,因为正负样本数量接近无需作平衡处理,随机打乱样本并保持相同的正负样本比例,并按照8:1:1 的大小将样本划分成训练集、验证集和测试集,选择在验证集上具有最高F1 值的模型为最佳模型。学习率设置为0. 001,dropout 设置为 0. 2 防止过拟合,batch size 设置为128,最大epoch 次数为50,patience设置为10,即如果连续10 次训练迭代中验证集上的 F1 分数都没有增加,则停止训练过程。选用Adam 优化器(Adaptive Moment Estimation)和交叉熵损失函数进行有监督学习训练模型。

实验评估

  • 基于深度学习的漏洞检测方法的效果都明显优于Flawfinder 的静态分析方法。
  • 在孔等人[20]的图编码方法生成的样本集上,RGCN 模型的F1 值高出GCN 模型的34%;在本文的图编码方法生成的样本集上,RGCN 模型的F1 值高出GCN 模型
  • 的39%。可见RGCN 在对不同语义边分别学习后能有效提高漏洞检测结果。
    对于图生成方法,本文的图编码方法在 GCN 和RGCN 两种模型上的F1 值分别高出孔等人方法11%和16%,可见本文图编码方法的有效性。本文图编码方法关注的节点是语句节点和对语句具有依赖的变量节点,关注的边是语句之间的依赖边和语句与变量之间的依赖边。
  • 孔等人[20]提出的方法包含了AST 上的所有分支节点和叶子节点,保留了AST 上的所有语法边,考虑的语义边是变量之间的依赖关系。尽管该方法的分析粒度更细,但可能包含过多冗余的语法信息,反而不利于模型对于漏洞模式的学习。

文章创新点

套用新模型RGCN

使用CPG图表示方法

编码方式类型+内容 one-hot + word2vec

论文资源链接
如果大家有什么问题,欢迎关注公众号留言和博主进一步交流偶

基于关系图卷积网络的源代码漏洞检测相关推荐

  1. 论文浅尝 | ICLR2020 - 基于组合的多关系图卷积网络

    论文笔记整理:吴锐,东南大学计算机学院硕士. 来源:ICLR 2020 链接:https://arxiv.org/pdf/1911.03082.pdf 动机 目前针对于GCN的研究大多数都关注在学习无 ...

  2. ESWC 2018 | R-GCN:基于图卷积网络的关系数据建模

    目录 前言 1. 关系图卷积网络 2. 正则化 3. 实验 3.1 节点分类 3.2 链接预测 前言 题目: Modeling Relational Data with Graph Convoluti ...

  3. 关系抽取:图卷积网络的学习(二)(附代码)

    关系抽取:图卷积网络的学习(二)(附代码) 目录 关系抽取:图卷积网络的学习(二)(附代码) 论文一:基于关系图的实体关系联合抽取 摘要 1.Introduction 2.Motivation 3.G ...

  4. 【论文翻译】HCGN:面向集体分类的异构图卷积网络深度学习模型

    HCGN:面向集体分类的异构图卷积网络深度学习模型 摘要 集合分类是研究网络数据的一项重要技术,旨在利用一组具有复杂依赖关系的互联实体的标签自相关性.随着各种异构信息网络的出现,集合分类目前正面临着来 ...

  5. 时空编解码器残差多图卷积网络预测OD客流需求

    paper title <Predicting origin-destination ride-sourcing demand with a spatio-temporal encoder-de ...

  6. Survey | 基于图卷积网络的药物发现方法

    本期介绍2019年6月发表在Briefings in Bioinformatics的综述,该综述由康奈尔大学等机构的研究人员撰写,系统总结了GCN及其在药物发现方面的最新进展,重点是与药物相关的应用: ...

  7. CVPR 2019 | 旷视研究院提出ML-GCN:基于图卷积网络的多标签图像识别模型

    全球计算机视觉三大顶会之一 CVPR 2019 (IEEE Conference on Computer Visionand Pattern Recognition)将于 6 月 16-20在美国洛杉 ...

  8. (18) 基于时空多图卷积网络的网约车需求预测

    交通预见未来(18): 基于时空多图卷积网络的网约车需求预测 1.文章信息 <Spatiotemporal Multi-Graph Convolution Network for Ride-ha ...

  9. 【Graph Neural Network 图神经网络】3.Spatial-based Graph Convolutional Networks 基于空间的图卷积网络

    前言 类似于图像上传统的卷积运算,基于空间的方法根据节点的空间关系定义图卷积.图像可以看作是一种特殊的图形式,每个像素代表一个节点.每个像素都直接连接到它附近的像素,如下图左所示.对3*3的区域应用一 ...

  10. 基于图卷积网络的测量与先验知识相结合的故障诊断方法

    目录 Graph Convolutional Network-Based Method for Fault Diagnosis Using a Hybrid of Measurement and Pr ...

最新文章

  1. 个人博客二|创建项目
  2. 把女友升级为老婆的时候发生的BUG(转载)
  3. HTTP与HTTPS对访问速度(性能)的影响
  4. python3占位符 中文_WxString:有没有使用Python 3-占位符实现字符串格式化的C/C++代码?...
  5. python字符串 切片_用于切片字符串的Python程序
  6. Python文本处理2个小案例(文本嗅探与关键词占比统计)
  7. TCP通过带外数据实现心跳检测机制
  8. 中国卷绕装置市场趋势报告、技术动态创新及市场预测
  9. python编程入门与案例详解-python编程入门知识练习
  10. hdu 1698 Just a Hook 基本线段树
  11. 安装多个 PHP 版本(PHP7, PHP5)
  12. matlab 对数回归,对数拟合
  13. Kotlin读书总结之面向对象
  14. 新浪微博分享链接+图片
  15. mysql多表sumif_MySQL与EXCEL sum sumif sumifs 函数结合_品牌汇总_20161101
  16. Python从入门到入土的90行代码
  17. 算法导论--斐波那契堆
  18. 1个人,100天业余时间,用Flutter开发完一个商业APP,手握5家大厂offer
  19. 折腾死人不偿命的电脑加固态和内存过程
  20. 安川机器人程序还原_安川机器人报错代码:功能概要和程序数据简易修复方法...

热门文章

  1. 软件测试ios打包,苹果测试iOS打包成 ipa包
  2. 中望cad自定义快捷键命令_中望CAD快捷键命令大全
  3. 计算机组成原理课题讨论——编译器对程序的影响
  4. 智能AI源码机器人电销机器人智能电话机器人拨号机器人语音机器人
  5. ubuntu全版本安装 NVIDIA显卡驱动、以及重装、卸载
  6. Excel导出当前工作表为PDF文件的操作
  7. 24个基本指标精粹讲解(2)--KDJ
  8. 手机框架_移动端框架_跨平台_汇总_哪个好
  9. 手机端 H5 语音识别转化为文字 demo
  10. java setvalue函数,Java JavaTuples setValue()用法及代码示例