- A+
所属分类:笔记
使用word embedding编码向量;使用clang将源码转为AST;
- 该篇论文与SySeVR同作者,VulDeeLocator相对于SySeVR有了更高的漏洞检测能力,与高定位精度(加入了漏洞定位)。
- 创新点
- 加入中间代码来表示语义信息(利用中间代码来容纳基于源代码的表示无法传递的语义信息)
- 实现漏洞精确定位 (定位到漏洞所在的行)
- VulDeeLocator的输入
- 输入的C源码需要满足的要求:
- c程序可以编译成中间代码,如LLVM中间代码
- 漏洞程序附带漏洞位置的描述
- VulDeeLocator分为两个部分
- 将源代码表示为中间代码
- 源码提取sSyVCs(具有某些漏洞语法特征的代码片段)
- 根据sSyVCs从中间代码生成iSeVCs
- 2. 利用中间代码检测和定位漏洞
- 将从训练程序中提取到的iSeVCs标记为"有漏洞"或"无漏洞"和标记漏洞位置
- 用ISEVC及其标签的向量训练神经网络模型
- 用训练好的神经网络模型检测和定位目标程序中的漏洞
- 标记iSeVCs :如果一个iSeVC中包含已知漏洞,该iSeVC就会被标记为 iSeVC中的漏洞的行号(即漏洞s的位置) 否则,iSeVC被标记为 "0"
- 局限性
- 仅支持C源程序中的漏洞
- VulDeeLocator 需要将程序源代码编译成中间代码,并且不能在程序源代码无法编译时使用