APP下载

双粒度轻量级漏洞代码切片方法评估模型

2021-12-08张炳文峥赵宇轩王苧任家东

通信学报 2021年11期
关键词:特征方法模型

张炳,文峥,赵宇轩,王苧,任家东

(1.燕山大学信息科学与工程学院,河北 秦皇岛 066004;2.河北省软件工程重点实验室,河北 秦皇岛 066004)

1 引言

漏洞代码切片,旨在分解大规模项目源码为仅含有漏洞相关代码的较小代码切片,并以此消除复杂软件项目中不相关源码对漏洞检测结果的干扰[1-2]。漏洞代码切片新方法的有效性需要经过模型评估来证明。目前,漏洞检测场景中代码切片方法评估模型分为编码模型和机器学习模型两类:编码模型以Word2Vec、词袋模型、词频−逆文档频率(TF-IDF,term frequency-inverse document frequency)算法[3]为代表;机器学习模型以支持向量机(SVM,support vector machine)、随机森林(RN,random forest)、朴素贝叶斯(NB,naive Bayes)等传统模型为主,循环神经网络(RNN,recurrent neural network)、长短期记忆网络(LSTM,long short-term memory)、双向长短期记忆网络(BLSTM,bi-directional long short-term memory)等深度学习模型为辅[4]。

然而,现有漏洞代码切片方法评估模型存在以下3 个主要问题。

1) 代码切片信息抽取不彻底。代码切片具有丰富的语义与结构信息,对这些信息进行全面、高效的提取,是评估代码切片方法有效性的前提。虽然SVM、RN 等传统机器学习模型收敛速度快、内存占用小,但是文本形式的代码切片需要经过复杂的词嵌入过程才能作为此类模型的输入。并且,在词嵌入后的模型训练过程中,单一的传统机器学习分类器会将不符合或偏离正常模型的切片数据视为噪声,在训练阶段将其忽略,导致漏洞的触发环境、破坏方式、关键数据等代码切片中的隐含信息将在特征缩放、特征编码、模型训练等多个步骤中大量流失。而这些信息恰恰是比较不同切片方法优劣的关键。……

登录APP查看全文

猜你喜欢

特征方法模型
一半模型
重尾非线性自回归模型自加权M-估计的渐近分布
如何表达“特征”
不忠诚的四个特征
3D打印中的模型分割与打包
用对方法才能瘦
四大方法 教你不再“坐以待病”!
捕鱼
线性代数的应用特征