VulDeePecker: A Deep Learning-Based System for Vulnerability Detection. (NDSS 2018)

VulDeePecher:一种基于深度学习的漏洞检测系统

研究背景:现有漏洞检测往往使用人工静态检测方法,依赖人类专家密集劳动且具有高误报率

e.g. 基于代码相似性的VUDDY和VulPecker系统具有较低的漏报率,但代价是高误报率

文章贡献:1)在漏洞检测任务中引入了深度学习方法,使用code gadgets来表征程序;

2)提出了VulDeePecker系统,做到:处理多种漏洞、与人类知识结合、效果优于其他方法;

3)给出了一个评估漏洞检测效果的数据集,采集自NVD和SARD

模型实现:整体模型可以分为学习阶段和检测阶段两部分

学习阶段:

1)先提取库/API函数调用并生成参数相对应的程序片段(使用Checkmarx工具);

2)提取code gadgets并标记它们的ground truth

3)将code gadgets转换为向量(使用word2vec)

4)训练BLSTM模型

检测阶段:使用训练好的模型检测漏洞

评价指标:误报率(FPR),漏报率(FNR),召回率(TPR),准确率(P),F1度量

本文追求低 FNR 和 FPR

数据集:来自 NIST 维护的两个漏洞数据源 NVD(产品漏洞)和 SARD(产品、合成、学术)

从中选取了缓冲区错误(CWE-119)和资源管理错误(CWE-399)两类漏洞

缓冲区错误(CWE-119) 资源管理错误(CWE-399)
NVD 520 320
SARD 8122 1729

实验设置:80%训练集,20%测试集

训练参数:code gadgets 的向量表示中的标记数设置为 50,dropout 设置为 0.5,batch size 设置为 64,epoch 数设置为 4,使用 minibatch 随机梯度下降与 ADAMAX 训练,默认学习率为 1.0,选择 300 个隐藏节点

Neural Machine Translation Inspired Binary Code Similarity Comparison beyond Function Pairs (NDSS 2019)

受神经机器翻译启发的函数间二进制代码相似性比较

研究目标:解决以下两个问题

1)给定来自不同指令集架构(ISA)的基本块,判断它们的相似性(等价问题);

2)给定一段代码,判断其是否包含在不同ISA的另一段代码中(包含问题)

研究背景:二进制代码相似性检测中还没有使用NLP方法的尝试;跨架构代码包含是一个新的课题

论文贡献:提出了一个高精度的跨架构代码相似性检测模型;同时给出了第一个解决跨架构代码包含问题的模型

模型实现:本文主要思路是将二进制代码反汇编成为汇编语言,然后采用NLP中NMT类似方法进行判断

1)代码克隆任务

预处理:先将变量、常量、函数名等转换为统一符号

提取指令向量:与NLP类似,将一条指令作为单词,将一个基本块作为语句;使用word2vec方法,skip-gram学习出每个指令的向量表示

LSTM模型:使用基于LSTM的暹罗网络,将两个代码各自提取为一个向量,最后计算出相似性

2)代码包含任务

使用CFG对控制流进行分析,对于目标代码,在长代码中通过图搜索算法深搜出不同的路径,使用LCS方法对比路径的相似程度

数据集:本文自己提出了一个用于训练和评估的测试集,具体方法如下

1)对每个高级程序语言代码,先进行ID标注

2)对于每个特定ID的代码进行编译,前端不变,在编译框架下更改不同的汇编语言,得到不同汇编代码及二进制代码,这些代码相似度标注为1

3)对于不同ID的代码,使用n-gram进行相似性比较,根据结果标注其编译后的二进制代码

MVP: Detecting Vulnerabilities using Patch-Enhanced Vulnerability Signatures (USENIX Security 2020)

MVP:使用补丁增强漏洞标签检测漏洞

研究背景:重复性漏洞的检测任务现在有两个主流方法——基于克隆的方法和基于函数匹配的方法,但这两个方法都存在高误报率和高漏报率的问题

补丁的存在使得有漏洞的代码和修复漏洞的代码极为相似,难以通过当前主流方法检测到,导致高误报率;而现有的相似检测算法也难以精确的捕捉到表征漏洞的标签,导致高漏报率

论文贡献:提出了一种基于切片方法提取函数和补丁标签的重复性漏洞检测方法,带来精度的提升

模型实现:MVP模型可以分为提取函数标签,提取漏洞和补丁标签,匹配标签检测漏洞三个部分

1)提取函数标签

先解析目标函数的AST和PDG;

然后对函数规范化处理;

最后生成函数标签:计算每条语句的哈希值,然后提取出所有具有数据或控制依赖的语句组成三元组(h1, h2, type)

2)提取漏洞和补丁标签

由于切片的准则难以定义,既不能漏过真正的漏洞语句,也不能包含太多噪声语句,本文的方法根据不同的语句类型执行不同的前向/后向切片准则

同时,为了进一步减少噪声语句,本文还利用了信息熵的思路,当漏洞相关切片集合的信息熵超过一定阈值,删减可能是噪声的边缘语句

3)将函数标签与漏洞和补丁标签进行匹配

对于满足以下5条判别准则的函数,我们认为是有漏洞的

数据集:本文对10个开源的C/C++项目代码进行测试,包含了25377个patch和34,378个有改动的函数

网络空间安全论文笔记4相关推荐

  1. 网络空间安全论文笔记2——漏洞

    Exploitability prediction of software vulnerabilities 预测漏洞:基于计数的方法(侧重于预测特定时间范围内软件系统中存在的漏洞数量,在理解安全趋势. ...

  2. 网络空间安全论文笔记3——缺陷

    A systematic literature review on software detect prediction using artificial intelligence: Datasets ...

  3. 2019 DGF(深度引导滤波网络) 相关的论文笔记

    文章目录 *Fast End-to-End Trainable Guided Filter* *KeyPoint* *overview* *keywords* *extends* 摘要 引言 相关工作 ...

  4. 2019寒假训练营寒假作业(三) MOOC的网络空间安全概论笔记部分

    目录 第五章 网络攻防技术 5.1:网络信息收集技术--网络踩点 信息收集的必要性及内容 网络信息收集技术 网络踩点(Footprinting) 网络踩点常用手段 5.2:网络信息收集技术 --网络扫 ...

  5. usermode linux网络空间,(RHCE笔记)linux基础之三 用户、组及权限

    一.user 1.每个用户将指派唯一用户ID(UID) root的ID为0 普通用户ID从500开始(0-500系统使用) 2.用户名和用户ID存在 /etc/passwd中 3.当用户登陆时系统自动 ...

  6. 论文笔记目录(ver2.0)

    1 时间序列 1.1 时间序列预测 论文名称 来源 主要内容 论文笔记:DCRNN (Diffusion Convolutional Recurrent Neural Network: Data-Dr ...

  7. Deep Learning论文笔记之(七)深度网络高层特征可视化

    Deep Learning论文笔记之(七)深度网络高层特征可视化 zouxy09@qq.com http://blog.csdn.net/zouxy09          自己平时看了一些论文,但老感 ...

  8. 【论文笔记】—低照度图像增强—ZeroShot—RUAS网络—2021-CVPR

    论文介绍 ​题目:Retinex-Inspired Unrolling With Cooperative Prior Architecture Search for Low-Light Image E ...

  9. 论文笔记(FCN网络,语义分割):Fully Convolutional Networks for Semantic Segmentation

    FCN论文笔记:Fully Convolutional Networks for Semantic Segmentation 语义分割模型结构时序: FCN SegNet Dilated Convol ...

最新文章

  1. 对采用rsync+inotify数据同步方式进行健康检测
  2. 什么样的编程语言,竟然能融资 1.6 亿?
  3. springboot使用定时器及发送邮件
  4. samba服务器配置
  5. Python matplotlib 和PIL
  6. wps右键新建里面没有word和excel_wps常用的基本操作方法
  7. 使用autossh实现开机创建ssh tunnel的方法以及shell脚本.
  8. optionals_Java Optionals获得更具表现力的代码
  9. 数据结构与算法面试题80道(32)
  10. python中最难的是什么_Python 最难的问题你猜是什么?
  11. CMake 使用方法 CMakeList.txt编写简单分析
  12. Java 并发编程Semaphore的应用与源码解析
  13. constraintlayout_androidApi:ConstraintLayout
  14. 基于DOS的ipc$最详攻略。
  15. freemarker空格问题
  16. 处女座的训练(贪心)
  17. 独立思考,提高效率,做更有意义的事
  18. beyond-长城-国语谐音歌词
  19. 阿里面试感想(注:此为转载帖子)
  20. NOIP模拟系列 [BZOJ4668]冷战

热门文章

  1. mysql 证书双向认证_https证书双向验证
  2. cad流程图怎么画文丘里_用CAD绘制交互流程图的方法步骤
  3. 财政与金融(农)课程形成性考核册
  4. MBR膜应用于农村污水治理,改善天然水体污染及人居环境
  5. STM32单片机语音识别MP3播放器音乐播放器TF卡播放器
  6. sea Music(音乐下载器) v1.0
  7. 【python爬虫】在scrapy中利用代理IP(爬取BOSS直聘网)
  8. 答疑解惑 2017中国软件生态大会兰州播撒云生态火种
  9. 作为一个Java程序员,javaweb教程视频教程百度云
  10. 关于考证(已通过高项、CISA、CISSP、HCIP、RHCE)