1.一种双粒度轻量级的漏洞代码切片质量评估方法,其特征在于:包括以下步骤:步骤1,分类、预处理漏洞代码切片样本;
步骤2,使用若干个双粒度窗口,分割步骤1获取的代码切片;
步骤3,根据步骤2分割后的代码切片建立评估特征向量;
步骤4,根据步骤3获得的评估特征向量计算代码切片统计特征,建立切片数据集;
步骤5,建立轻量级评估模型;
步骤6,将步骤4获得的切片数据集输入到步骤5建立的轻量级评估模型,输出评估特征及评估指标。
2.根据权利要求1所述的一种双粒度轻量级的漏洞代码切片质量评估方法,其特征在于:步骤1中,分类依据为漏洞代码切片包含的漏洞类型,其中,不包含漏洞也作为一种类型;
所述预处理漏洞代码切片样本的方法为删除代码中所有运算符,并将代码切片中所有标识符驼峰化。
3.根据权利要求1所述的一种双粒度轻量级的漏洞代码切片质量评估方法,其特征在于:步骤1中,代码切片语料长度为A,A为大于等于50小于等于200的正整数。
4.根据权利要求1所述的一种双粒度轻量级的漏洞代码切片质量评估方法,其特征在于:步骤2中,所述双粒度窗口包括字符级别窗口和单词级别窗口。
5.根据权利要求4所述的一种双粒度轻量级的漏洞代码切片质量评估方法,其特征在于:所述字符级别的窗口大小为B字符,数量为H;所述单词级别的窗口大小为C单词,数量为H;其中,B为大于等于3小于等于5的正整数,C为大于等于1小于等于3的正整数,H为大于等于2小于等于3的正整数。
6.根据权利要求1所述的一种双粒度轻量级的漏洞代码切片质量评估方法,其特征在于:步骤3中,建立评估特征向量,包括以下子步骤:
3.1根据字符窗口分割后的代码切片,使用统计模型,计算得到字符重要性度量值,构建字符关键词集合,字符关键词数量为D;
3.2根据单词窗口分割后的代码切片,使用与子步骤3.1中相同的统计模型,计算得到单词重要性度量值,构建单词关键词集合,单词关键词数量为E;
3.3根据字符关键词集合与单词关键词集合,使用水平拼接的特征融合技术,建立评估特征向量,其中前D个分量为字符关键词集合中元素,后E个分量为单词关键词集合中元素。
7.根据权利要求6所述的一种双粒度轻量级的漏洞代码切片质量评估方法,其特征在于:所述字符关键词数量D,D为大于等于1000小于等于1500的正整数;所述单词关键词数量E,E为大于等于100小于等于150的正整数。
8.根据权利要求1所述的一种双粒度轻量级的漏洞代码切片质量评估方法,其特征在于:步骤4中,根据评估特征向量,使用代码切片样本匹配,若评估特征向量的分量出现在样本中,则分量对应位置记为F,F为正实数,使用与步骤3.1中相同的统计模型,计算其在样本中的重要性度量值,作为F,反之,记为0,生成序列;含有漏洞的样本在序列后追加1,反之,追加0,作为样本特征数据;所有代码切片样本的样本特征数据,作为切片数据集。
9.根据权利要求1所述的一种双粒度轻量级的漏洞代码切片质量评估方法,其特征在于:步骤5中,选择不同种类基础机器学习分类器并联作为中间层,其中基础机器学习分类器数量为G,G为大于等于2小于等于5的正整数,选择一种线性的基础机器学习分类器作为输出层,将中间层与输出层串联,作为轻量级评估模型。
10.根据权利要求1所述的一种双粒度轻量级的漏洞代码切片质量评估方法,其特征在于:步骤6中,切片数据集作为轻量级评估模型中间层所有基础机器学习分类器的输入,输出评估特征为评估特征向量,评估指标为误报率FPR、漏报率FNR、召回率Recall、准确率P、F1值F1。