掌桥专利:专业的专利平台
掌桥专利
首页

一种基于决策树的漏洞分类检测方法

文献发布时间:2023-06-19 19:30:30


一种基于决策树的漏洞分类检测方法

技术领域

本发明涉及系统安全技术领域,具体涉及一种基于决策树的漏洞分类检测方法。

背景技术

在安全形势日益严重的今天,大大小小的系统都有被攻击的风险,系统的安全防护问题变得越来越重要。但当前,系统的开发者和维护者对于安全风险的认识不足,依旧把系统的功能和需求作为第一导向,这导致许多系统仍存在着巨大的安全隐患。

现如今市场整体对于一些系统漏洞问题并没有过多关注,不少系统存在防护措施不当的问题,更多的系统会因为成本原因无法得到安全防护服务,造成自身暴露在互联网环境中,极易遭受攻击者利用漏洞进行攻击。而随着各种各样的漏洞层出不穷,对于漏洞的防御措施也越来越多,对于具有特定特征的漏洞,往往会有特定的漏洞修复方法。

因此为了更高效率地检测和防御系统中可能出现的漏洞风险,本发明提供了一种基于决策树的漏洞分类检测方法,从漏洞呈现的各种特征出发来尽可能地检测各种漏洞类型,从而更好地制定安全策略以确保系统的安全性和可靠性。

发明内容

本发明的目的在于针对现有技术的缺陷和不足,提供一种基于决策树的漏洞分类检测方法,它是一种匹配效果好,提取特征能力强,精确快速的漏洞分类检测方法。

为实现上述目的,本发明采用的技术方案是:它包含如下步骤:

S1.数据采集:使用Python爬虫技术对漏洞数据库中漏洞相关数据进行爬取,并对爬取到的数据信息进行筛选,构成初步的数据集,接着对漏洞的共有属性进行提取形成特征集合,由于特征集合中非数值特征的存在,需要将其转化为数值特征;

S2.数据优化:将数据集中的几种数据类型用数字替代后,再对数字化的数据进行归一化处理,使每一个值都在[0,1]范围内,保证分类器可以同等对待每个特征;为了方便提取数据的主要特征,将使用主成分分析(PCA)方法,计算原数据的特征向量和特征值,通过从小到大排序特征值,保留前一部分特征向量,对数据进行降维操作;

S3.确定分类顺序:将数据集中的任意一个漏洞类型样例作为正例,将其他的漏洞类型作为反例,以此分为不同类别的分类器,即拆分成不同数量的二分类任务;计算各类样本数据的类间距离,将类间距离按从大到小进行排序并分离,然后创建一个根节点,确定优先级最高分类类别D1,将训练集数据的结果分为属于D1和不属于D1的两个类别;

选择欧氏距离作为各类别之间的中心距离,欧氏距离在数学中表示两点在空间中的欧几里得距离,有时被称为勾股距离;n维空间中的欧式距离公式为:

S4.设置GiNi系数阈值,在步骤S3的基础上建立CART决策树;

S5.当训练完CART决策树后,输出所有预测结果为D1的样本,将D1样本从数据集中删除,再用D2类别来分离接下来的样本数据;分类后的结果分别是属于D2的样本和不属于D2的剩余样本,再接着继续构建剩余样本的决策树;

S6.对步骤S3、步骤S4和步骤S5进行重复,直到D中只有一个类别,输出最终分类的预测结果;

S7.对构建的决策树模型进行评估:通过输入的测试数据集和输出的分类结果进行测试和验证,通过参数直接计算获取准确率,进一步比较该决策树与逆序方法决策树以及传统迭代方法决策树的分类检测性能。

进一步地,在步骤S2中,如果漏洞数据集的特征属性比较多,在构建过程中就会十分复杂;这时应该考虑将多维(高维)数据映射到低维的数据,采用的方法有PCA主成分分析和LDA线性判别分析;

进一步地,在步骤S4中,设置GiNi阈值并建立CART决策树的具体步骤如下:

1)如果当前节点的样本数据集P没有特征值或者样本的个数小于临界值,则不对该节点执行递归操作,并返回到决策子树;

2)计算样本数据集P的GiNi系数并与临界值进行比较,若结果小于临界值,则不执行递归操作,并返回到决策子树;

3)计算每一个特征对应的特征值在数据集P中的GiNi系数;

4)在计算出来的GiNi系数中选择最优的特征和相应的最优特征值,将样本数据集划分为C1和C2两部分,C1为当前节点的左节点,C2则为当前节点的右节点;

5)在C1和C2上递归调用步骤(1)到步骤(3),形成最终的CART决策树。

进一步地,步骤S7中的模型评估,在建立决策树模型后需要给出该模型的评价值,这样才可以来判断模型的优劣。

本发明所述的基于决策树的漏洞分类检测方法,使用类间距离来确定各类型的分类顺序;类间距离有重心、中心、最近和最远4种距离;本发明通过计算每个类别的中心距离,可以更容易地将每个类别分开,类中心距离是通过计算类中心所有数据点距离的平均值得到的。

采用上述方案后,本发明有益效果为:本发明所述的一种基于决策树的漏洞分类检测方法,将采集的漏洞数据集进行优化,使用类间距离确定漏洞类型的分类顺序,训练基于类间距离的决策树漏洞检测算法模型,匹配效果好,提取特征能力强,能够精确快速地匹配分类漏洞类型,大大提高了漏洞检测效率,从而提升整个系统应对漏洞安全风险的可靠性和时效性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明的流程图;

图2是决策树模型内部的优先级分类过程。

具体实施方式

下面结合附图,对本发明作进一步的说明。

实施例:参看图1所示,一种基于决策树的漏洞分类检测方法,它包含如下步骤:

S1.数据采集:使用Python爬虫技术对漏洞数据库中漏洞相关数据进行爬取,并对爬取到的数据信息进行筛选,构成初步的数据集,接着对漏洞的共有属性进行提取形成特征集合,据集中存在许多漏洞特有的异常类型,如:severity、publicExploit、exploitTypes、exploitInKit;由于特征集合中非数值特征的存在,需要将其转化为数值特征;

S2.数据优化:将数据集中的几种数据类型用数字替代后,再对数字化的数据进行归一化处理,使每一个值都在[0,1]范围内,保证分类器可以同等对待每个特征;为了方便提取数据的主要特征,将使用主成分分析(PCA)方法,计算原数据的特征向量和特征值,通过从小到大排序特征值,保留前一部分特征向量,对数据进行降维操作;

如果漏洞数据集的特征属性比较多,在构建过程中就会十分复杂;这时应该考虑将多维(高维)数据映射到低维的数据,常用的方法有PCA:主成分分析(无监督)和LDA:线性判别分析(有监督);降维后的数据集不仅降低了自身的冗余性,还减少了无效数据对方法的影响,从而提高了方法的运行速度和准确性;

S3.确定分类顺序:将数据集中的任意一个漏洞类型样例作为正例,将其他的漏洞类型作为反例,以此分为不同类别的分类器,即拆分成不同数量的二分类任务;假设当前的类别样例有R1、R2、R3、R4、R5,将其分为R1与{R2,R3,R4,R5}、R2与{R1,R3,R4,R5}、R3与{R1,R2,R4,R5}、R4与{R1,R2,R3,R5}、R5与{R1,R2,R3,R4}5个类别,即拆分成5个二分类任务;计算各类样本数据的类间距离,将类间距离按从大到小进行排序并分离,然后创建一个根节点,确定优先级最高分类类别D1,将训练集数据的结果分为属于D1和不属于D1的两个类别;

对于训练集分类效果最好的分类类别要放在离根节点最近的位置,当对该分类类别进行分类后,再选择次优的类别进行分离,以此类推,直到所有的类别都分离出来;

选择欧氏距离作为各类别之间的中心距离,欧氏距离在数学中表示两点在空间中的欧几里得距离,有时被称为勾股距离;n维空间中的欧式距离公式为:

S4.设置GiNi系数阈值,在步骤S3的基础上建立CART决策树,具体步骤如下:

1)如果当前节点的样本数据集P没有特征值或者样本的个数小于临界值,则不对该节点执行递归操作,并返回到决策子树;

2)计算样本数据集P的GiNi系数并与临界值进行比较,若结果小于临界值,则不执行递归操作,并返回到决策子树;

3)计算每一个特征对应的特征值在数据集P中的GiNi系数;

4)在计算出来的GiNi系数中选择最优的特征和相应的最优特征值,将样本数据集划分为C1和C2两部分,C1为当前节点的左节点,C2则为当前节点的右节点;

5)在C1和C2上递归调用步骤(1)到步骤(3),形成最终的CART决策树。

S5.当训练完CART决策树后,输出所有预测结果为D1的样本,将D1样本从数据集中删除,再用D2类别来分离接下来的样本数据;分类后的结果分别是属于D2的样本和不属于D2的剩余样本,再接着继续构建剩余样本的决策树;

S6.对步骤S3、步骤S4和步骤S5进行重复,直到D中只有一个类别,输出最终分类的预测结果;

S7.对构建的决策树模型进行评估:通过输入的测试数据集和输出的分类结果进行测试和验证,通过参数直接计算获取准确率,进一步比较该决策树与逆序方法决策树以及传统迭代方法决策树的分类检测性能。

建立决策树模型后需要给出该模型的评价值,这样才可以判断模型的优劣。

与其他决策树算法不同的是,本发明所述的基于决策树的漏洞分类检测方法,使用类间距离来确定各类型的分类顺序;类间距离有重心、中心、最近和最远4种距离;本发明通过计算每个类别的中心距离,可以更容易地将每个类别分开,类中心距离是通过计算类中心所有数据点距离的平均值得到的。

本发明通过评估指标和评估方法来评价决策树模型。评估指标有分类准确度、召回率、虚警率和精确度等,评估的方法有保留法、随机二次抽样、自助法和交叉验证等。使用本发明提出的基于类间距离的决策树与传统的迭代、逆序决策树比较分类的准确性,通过比较几种算法的检验精度来验证该决策树算法在漏洞分类检测的优越性。

表1为具体的检测精度比较结果,从检测成功率、误报率、测试集测试时间3个方面分析具体性能指标。可以看出,本发明提出的基于类间距离分离的方法可以使检测准确率维持在较高水平上,由此可以得出,本发明更加适合漏洞的分类检测。

表1检测精度比较

为了进一步优化模型的性能,防止过拟合现象,可以通过合理的修剪和限制来简化模型;决策树在生长过程中每片叶子可能只包含非事件数据或单独的事件数据;当决策树的深度特别深以至于叶子节点中的漏洞对象只剩下一个甚至更少,到最后决策树的模型过于复杂,容易造成过拟合问题,泛化能力下降。

对于过拟合的解决方法是减枝操作;剪枝是一个简化过拟合的过程,其有两种剪枝方法,分别为先剪枝和后剪枝;先剪枝通过提前停止树的构建而对树“剪枝”,通过定义一个高度或者阈值来限制决策树的高度和叶子节点处样本的数目;后剪枝是指构建完整的决策树,允许树过度拟合训练数据,对置信度不够的结点子树用叶子节点来代替;决定是否修剪这个结点由如下步骤组成:

a)删除以此结点为根的子树

b)使其成为叶子结点

c)赋予该结点关联的训练数据的最常见分类

d)当修剪后的树在验证集合的性能上比原来的树好时,才真正删除该结点。

如图2所示为构建的决策树优先级分类过程,R1被放置在离根节点最近的位置,R4、R5被放置在末尾。这样构造有利于确保在分类过程中,错误类别越多,离根节点就越远,从而将误差影响降到最低,进一步保证该类决策树的性能。

基于本发明实施例实现的基于类间距离决策树方法,将漏洞进行准确地预测分类,大大提高了漏洞检测效率,从而提升整个系统应对漏洞安全风险的时效性和可靠性。

以上所述,仅用以说明本发明的技术方案而非限制,本领域普通技术人员对本发明的技术方案所做的其它修改或者等同替换,只要不脱离本发明技术方案的精神和范围,均应涵盖在本发明的权利要求范围当中。

技术分类

06120115935420