一种基于熵优化支持向量机的漏洞自动分类方法
文献发布时间:2023-06-19 11:32:36
技术领域
本发明涉及信息安全技术领域,具体来说是一种基于支持向量机的漏洞自动分类方法。
背景技术
在网络攻击中,漏洞起着非常重要的作用。随着网络的复杂化,计算机操作系统中的漏洞数量呈现爆发式的增长,漏洞扫描使得操作系统中的漏洞无处遁形,对漏洞进行合理的分类,研究漏洞的表现和形成原因,有助于防止程序设计人员编写程序时产生安全漏洞,针对性的消除漏洞安全隐患,同时为后续漏洞的分析和修复提供有效帮助,因此对漏洞进行科学的分类具有重要的应用价值。
漏洞分类主要是通过文字描述每一类漏洞的特征,对漏洞能够全面和准确地进行分类,之后应用相关技术将非数字化的信息转换成为相应的数字信息,直观清晰的反映漏洞的危害性。针对早期特定分类目的设计的漏洞分类方法中,由于需要人工判别进行分类,无法满足漏洞数量爆发式增长的的需求,该类方法已经不再适用。随着机器学习有效应用,漏洞分类开始向自动分类发展,基于一定分类特征的漏洞分类方法已经存在,但由于其分类过程比较复杂,效率较低,很难满足实际场合中的应用。基于支持向量机(SupportVector MacIline,SVM)的分类模型提供了一种优越的分类方法,但由于过分依赖分类模型,使得该方法不具有泛化的能力。
现有的分类方法多为分散性的具体应用,一些基于漏洞代码和漏洞文本的分类方法也都是基于深度神经网络来实现的。虽然这些方法能够实现漏洞的分类,但是这些方法多是基于某个方面做漏洞的具体分类。基于深度神经网络虽然可以实现漏洞的自动分类,但是该方法由于特征选择不准确会导致分类精度低。
发明内容
为解决上述问题,本发明的目的是提供一种基于熵优化的支持向量机的漏洞自动分类方法,分类效果好并且具有良好泛化能力。
为达到上述目的,本发明所采取的技术手段为:
一种基于熵优化支持向量机的漏洞自动分类方法,包括步骤
S1:构建漏洞分类模型;
S2:训练漏洞分类模型;以及
S2:完善漏洞分类模型。
其中,步骤S1包括:
S11检测漏洞:根据CVE漏洞数据库得到漏洞的编号、类别和描述,形成暴露列表;
S12收集漏洞信息:将暴露列表转换为机器语言,得到漏洞信息;
S13预处理:对漏洞信息进行粗提取,得到漏洞文本特征词;
S14根据漏洞文本特征词分析获取特征权重,使用向量空间模型表示漏洞训练样本,得到漏洞分类模型。
进一步地,S13中,粗提取包括对漏洞信息执行分词和清除噪音数据处理,得到漏洞文本特征词的过程。
进一步地,S14中,基于信息增益的方法提取漏洞文本特征词的特征子集,对特征子集中的各个特征项进行特征权重的计算。
另外,S14中,也可以基于文档频率、x
进一步地,步骤S2包括分析漏洞训练样本,通过熵优化支持向量机的分类算法对漏洞训练样本进行训练。
进一步地,步骤S3包括分析训练结果,使用预定的评估指标对分类算法进行评估。
具体的,该评估指标包括准确率。
其中,该准确率的计算公式为:
其中,TP
本发明的有益效果是:
本发明所述的漏洞分类方法,在漏洞分类比较复杂的环境中实现很好的分类效果,有效提高漏洞分类的准确性,同时针对庞大的漏洞信息实现高效的漏洞文本的自动分类,便于漏洞的修复和分析管理,最大限度的减少计算机漏洞管理的成本。
附图说明
图1为本发明的漏洞分类方法的流程框图;
图2为基于熵的二叉树分类思路构建示意图;
图3为漏洞文本预处理流程图。
具体实施方式
本发明提供了一种基于熵优化支持向量机的漏洞自动分类方法,其步骤流程如图1所示。主要包括
S1:构建漏洞分类模型;
S2:训练漏洞分类模型;
S2:完善漏洞分类模型。
步骤S1主要是收集收集漏洞信息,对系统的漏洞信息进行预处理,通过分析漏洞信息和提取得到漏洞文本特征词;然后进一步提取漏洞特征子集并计算该漏洞特征的权重,以及使用向量空间模型表示出漏洞分类模型。
步骤S2主要是分析漏洞分类模型,通过熵优化支持向量机中的分类算法进行训练。
步骤S3主要是测试阶段。该阶段利用训练好的分类模型对测试数据集进行分类,分析训练结果,使用评估指标对分类算法进行评估,测试其分类模型的准确度,以实现漏洞分类的准确高效。
本发明提出了一种基于熵优化支持向量机的分类算法,可以更好的实现漏洞的自动分类,提高分类的准确性。现有的针对漏洞文本进行分类的方法中,由于过分依赖分类模型,不能实现各个类别的有效分类,本发明引入熵的概念,降低了对分类模型的过分依赖性,提供了一种有具有良好泛化能力的漏洞分类模型。
本发明中,基于熵优化支持向量机的分类算法的相关术语介绍如下:
计算信息熵:
熵是用来表示离散随机事件出现的概率,是从平均意义上表征总体信息的测度。一个系统越是有序,信息熵越低,反之,一个系统越是混乱,信息熵越高。信息熵被认为是衡量一个系统有序化程度的度量。用H(X)表示随机变量X的熵,公式表示为:
其中,X代表一组随机事件x
基于信息熵的二叉树构建方法:
将熵的理论应用到计算类别C
熵优化支持向量机的分类算法:
支持向量机(Support Vector Machine,SVM)的核心思想是寻找最优超平面。
使得数据能够准确的分为两类。采用一个合适的映射关系将低维空间样本映射到高维空间中,使得映射后的样本在高维空间中实现线性分类。算法的相关说明如下:
定义两个漏洞文本向量间的欧式距离为漏洞间的距离,公式表示为:
其中,v
通过定义漏洞类别C
其中,a为最小超球体的球心,n为训练样本的数量,C为惩罚因子,引入拉格朗日乘子λ
通过计算球心a和判定半径r
||v
理论上可知,漏洞类别C
该公式描述在漏洞类别C
漏洞类别C
具体来说,本发明的S1构建漏洞分类模型具体包括以下步骤:
S11检测漏洞:根据从国际定义的CVE漏洞数据库中查阅得到漏洞的编号、类别和描述,形成暴露列表。
采用安全内容自动化协议(Security Content Automation Protocol,SCAP)中的公共漏洞和暴露列表。SCAP中包含有六个SCAP元素,其中的开放式漏洞与评估语言(OpenVulnerability and Assessment Language,OVAL)和对应的公共漏洞和暴露列表(CommonVulnerabilities&Exposures,CVE)可用作后面实验的训练样本和测试样本。
S12收集漏洞信息:将暴露列表转换为机器语言,得到漏洞信息。
该步骤主要是通过DB接口进行格式的转换。依次根据漏洞编号(CVE编号)、漏洞所属类别(CWE类型)和描述漏洞文本的自然语言建立数据库能够识别的漏洞信息表,各项内容分别对应着信息表中的第一列、第二列和第三列。最终整理形成可识别的机器语言,即漏洞信息。
S13预处理:对漏洞信息进行粗提取,得到漏洞文本特征词。
此步骤主要是将经过转换后的漏洞信息执行有效的分词,剔除无用的词,最大限度的清除噪音数据,即完成漏洞文本特征词的粗提取。
在步骤S12中的数据库中存储着相关的CVE漏洞信息,包含着漏洞信息各方面的属性和性质。由于漏洞信息的机器语言表现为连续的字符串,因此需要对其进行数据去除以及词干提取和词形还原,过滤并去除频繁出现的无用词,将预处理结果保存到数据库对应的表中。其预处理流程如图3所示。
S14根据漏洞文本特征词分析获取特征权重,使用向量空间模型表示漏洞训练样本,得到漏洞分类模型。
通过预处理后,得到漏洞文本特征词,基于信息增益(IG)的方法提取漏洞文本特征词的集中特征,并进行信息熵的计算后,获取特征子集,对特征子集中的各个特征项进行特征权重的计算。
信息增益是以信息熵为基础的评估算法,在特征提取中,是用来衡量特征词t的出现与否对分类识别所提供的信息量。其计算公式为:
IG(t,x)=H(x)-H'(x) (8)
则在某个特征值t确定时,此时x的前后信息熵的差值计算公式为:
根据计算特征词的信息增益的评分,将评分较高的特征提取出来,组成特征子集。
当然,提取漏洞文本特征词的方法处理通过信息增益来实现,还可以采用文档频率,x
针对组成的特征子集进行向量化表示,首先采用TF-IDF公式对特征子集的特征项进行权重的计算,之后采用向量空间模型(VSM)对漏洞文本特征进行向量化表示,得到漏洞分类模型。
在构建好漏洞分类模型后,本发明的S2训练漏洞分类模型具体包括分析漏洞训练样本,通过熵优化支持向量机的分类算法对漏洞训练样本进行训练。
由步骤S14的向量化表示后,漏洞文本特征转换为统计学习方式中计算机能够识别的数据类型。之后采用基于熵优化支持向量机的分类算法对漏洞训练样本进行训练,确定漏洞分类模型的参数和阈值,将训练得出的最优的漏洞分类模型集中记录,并验证该分类模型的性能。
本实施例中,基于熵优化支持向量机的分类算法步骤如下:
输入:M个漏洞类别的N个训练样本;
输出:中间节点为SVM分类算法,叶子节点为漏洞类别C
Step1:通过计算M个漏洞类别C
Step2:计算各个漏洞类别对应的熵值E
Step3:根据集合中熵值最小的类作为SVM的正类,剩下的为负类,对SVM分类算法进行训练,得到最优的漏洞分类函数f(x)。
Step4:去除正类,重复上一步骤,直到剩余两个类别为止;
Step5:将剩余的类别分别作为正类和负类进行训练SVM漏洞分类函数f(x),算法结束。
本发明的S3完善漏洞分类模型具体包括:分析训练结果,使用预定的评估指标对分类算法进行性能评估。即使用客观的分类性能评估方法和指标对测试分类性能进行评估,不断对漏洞分类算法进行改进,以提高分类的准确性。
本实施例中,使用准确率评估指标对分类算法进行评估,可以计算出漏洞自动分类的性能。其中,准确率指的是理论上属于CVE漏洞数据库中的类别C
其中,TP
本发明针对现有技术中漏洞分类正确率较低,且分类方法比较复杂且费时的情况下,提出了一种新的漏洞自动分类的方法,有效提高了漏洞分类的准确性,便于漏洞的修复和分析管理,较大限度的提高了计算机漏洞管理的效率。
- 一种基于熵优化支持向量机的漏洞自动分类方法
- 基于熵特征及支持向量机的睡眠状态分类方法及系统