当前位置: 首页 > 专利查询>燕山大学专利>正文

基于深度神经网络的软件漏洞自动分类方法技术

技术编号:21362072 阅读:15 留言:0更新日期:2019-06-15 09:28
本申请提供一种基于深度神经网络的软件漏洞自动分类方法,包括:S1,对漏洞信息进行预处理后形成词集列表;S2,对样本漏洞描述信息集合使用TF‑IDF算法和IG算法对每个词的权重进行计算,获取重要特征词集列表;S3,根据重要特征词集列表生成词向量空间,把每一条漏洞描述信息表述成一个m维的向量,m是重要特征词集中特征词的数量;S4,使用DNN模型获得软件漏洞分类器;S5,新的漏洞描述信息集合进行分类。本发明专利技术基于TF‑IDF和IG算法构建深度神经网络漏洞自动分类模型,降低了高维词向量空间的维度,能够适应不断更新的软件漏洞数据集,有效地处理词向量空间的高维性和稀疏性,在准确率、召回率、精度等多维评价指标中表现出较好性能。

Automatic Classification of Software Vulnerabilities Based on Deep Neural Network

This application provides a software vulnerability automatic classification method based on deep neural network, including: S1, pre-processing vulnerability information to form a word set list; S2, calculating the weight of each word using TF IDF algorithm and IG algorithm for the sample vulnerability description information set, obtaining a list of important feature word sets; S3, generating a word vector space according to the list of important feature word sets. Each vulnerability description information is expressed as an m-dimensional vector, m is the number of feature words in the important feature set; S4, using DNN model to obtain software vulnerability classifier; S5, new vulnerability description information set to classify. The deep neural network vulnerability automatic classification model is constructed based on TF IDF and IG algorithm, which reduces the dimension of high-dimensional word vector space, adapts to constantly updated software vulnerability data sets, effectively handles the high-dimensional and sparse character of word vector space, and shows better performance in accuracy, recall rate, accuracy and other multi-dimensional evaluation indicators.

【技术实现步骤摘要】
基于深度神经网络的软件漏洞自动分类方法
本专利技术属于计算机软件安全领域,具体地涉及一种基于深度神经网络的软件漏洞自动分类方法。
技术介绍
随着信息技术的快速发展,互联网与计算机的应用给各行各业带来了极大的便利,同时也带来了巨大的风险和隐患。近些年来,伴随着各个行业信息化程度的提高,信息安全问题也日渐凸显。漏洞是指系统的软硬件缺陷,可被非授权的人员非法利用。一旦信息系统的漏洞被恶意攻击利用,信息系统的安全性将会有很大的风险,可能会造成不可估量的后果。近些年来,漏洞的种类和数量逐渐增多,因此对软件漏洞的管理和分析变得越来越重要。如果能够对漏洞进行有效地分类管理,不但可以提高漏洞的修复和管理的效率,也可以减少系统被攻击和破坏的风险,对系统的安全性能尤为重要。由于软件漏洞在网络安全攻击事件中扮演着重要的角色,使得相关安全研究员针对软件漏洞分类的研究越来越多。目前主要有传统的人工漏洞分类方法和自动化漏洞分类方法。传统的RISOS漏洞分类方法,它所针对的特性是计算机的操作系统,主要从攻击的角度将操作系统的漏洞分为七类并且描述了如何利用漏洞。PA漏洞分类方法,不仅对操作系统漏洞进行了研究,而且还针对应用程序存在的漏洞进行了分类。近年来,机器学习算法被广泛应用于各个研究领域,并取得了进展,同样将机器学习应用于软件漏洞分类上形成了自动漏洞分类方法,并取得了较好的效果。基于LDA模型的SVM分类方法被BoShuai等人应用于漏洞分类领域,构建的基于主题模型的SVM可以充分利用分布的漏洞数量进行分类,实验证明了SVM在漏洞分类上取得了较好的效果。DumiduWijayasekara等人通过使用来自错误描述的文本信息,对Bayes分类器进行了测试,分析说明了Bayes分类器根据漏洞描述文本信息实现分类上的可行性。SarangNa等人提出了一种使用Bayes分类器将无法提供足够信息的CVE条目进行分类的方法。MarianGawron等人又将NaiveBayes算法和简单的人工神经网络算法应用于漏洞分类,并在相同的数据集上进行对比,对比实验结果表明人工神经网络算法在漏洞分类效果上要优于NaiveBayes算法。但是,由于软件漏洞的种类和数量比较多,每一条漏洞的描述信息相对较少,使得每条漏洞在生成的词向量空间上呈现出高维度和稀疏的特点。这些基于机器学习算法漏洞自动分类方法在处理高维和稀疏问题上表现的效果不是很好,同时忽略了特定的漏洞信息,而使得软件漏洞分类的准确性不高。基于深度神经网络(DNN)可以提高软件漏洞分类的准确性,因此,提出了一种基于深度神经网络(DNN)的软件漏洞自动分类方法。
技术实现思路
本专利技术针对软件漏洞分类进行研究,在国际公认的美国国家计算机通用漏洞数据库(NationalVulnerabilityDatabase,NVD)中的漏洞数据进行软件漏洞分类研究。本专利技术能够适应实时更新的软件漏洞数据,对漏洞进行有效地分类管理。本专利技术主要包括5个部分:漏洞预处理、特征词集提取、词向量空间模型(VSM)建立、分类器训练和漏洞分类。首先对NVD漏洞信息进行提取,然后使用分词、词性还原和停用词过滤等方法对漏洞进行预处理,其次使用基于词频逆向文档频率(TF-IDF)和信息增益(IG)相融合的算法进行特征选择,获得最优特征词集,然后根据特征词集将漏洞向量化表示,接下来构建深度神经网络模型(DNN)并对其进行训练,最后对测试数据集进行漏洞分类。本专利技术在国际通用漏洞数据库NVD上进行实验,能够有效的提高软件漏洞分类的效果,对日益增多的软件漏洞种类和数量进行有效的分类管理和研究分析显得尤为重要。本申请公开了一种基于深度神经网络(DNN)的软件漏洞自动分类方法,包括以下步骤:S1,漏洞描述信息集合中包括多条漏洞描述信息,对漏洞信息进行预处理后形成词集列表,预处理包括:对漏洞描述信息进行分词、词性还原和停用词过滤;S2,对样本漏洞描述信息集合将TF-IDF算法和信息增益算法相融合对经过分词、词性还原和停用词过滤后的漏洞描述信息中的每个词的权重进行计算,获取重要特征词集列表,具体包括步骤:S21,遍历词集列表中的每个词,对词集列表进行词统计,存储在词统计字典里;S22,遍历词统计字典,计算每个词的词频值存入词频字典,计算每个词的逆向文件频率值,存入逆向文件频率字典,再计算每个词的TF-IDF权重值存入TF-IDF字典中;S23,按每个词的TF-IDF权重值对TF-IDF字典进行降序排序,选择前n个词作为特征词集,将特征词集存入特征列表;S24,遍历特征列表,根据漏洞类别数目划分特征词集并将子集并存入特征子集列表中,每个漏洞类别对应一个特征子集,然后计算相应漏洞类别对应的样本数目与样本漏洞描述信息集合中样本总数目的比例作为漏洞类别出现的概率;S25,采用信息增益算法计算特征列表中每个词的经验条件熵存入熵值字典,再计算特征列表中每个词的信息增益值,将每个词和对应的信息增益值存入信息增益值字典;S26,对信息增益值进行权重处理后,将信息增益值字典进行降序排序,选择前m个词作为重要特征词集,将重要特征词集存入重要特征词集列表;S3,生成词向量空间,把每一条漏洞描述信息表述成一个m维的向量,m是重要特征词集中特征词的数量;对于样本漏洞描述信息集合中每一个样本漏洞描述信息进行向量化后,形成样本集合,将样本集合分为训练集和测试集;对于需要进行分类的漏洞描述信息集合中每一个样本漏洞描述信息进行向量化后,形成分类集合;S4,使用DNN模型获得软件漏洞分类器,具体步骤包括:S41,输入训练集,初始化权重系数矩阵W和偏置向量bS42,对每个神经元xi进行线性计算,计算公式为:其中,xi为每个神经元,Wi为每个神经元对应的权值矩阵,b是偏置向量,m为神经元总数,z是神经元线性计算输出,使用tanh激活函数进行激活运算,然后根据前向传播算法逐层计算得到最终输出结果al=σ(zl)=σ(Wlal-1+bl);S43,对最终输出结果使用softmax激活函数给不同的最终输出结果分配概率,将多个神经元的输出,映射到(0,1)区间内;S44,选择交叉熵作为损失函数,来度量训练集计算出的输出和真实的训练集输出之间的损失;S45,选择批量梯度下降算法作为优化算法,极小化损失函数,设置批次大小、迭代阈值和学习率α,其中0<α≤1,对DNN模型进行迭代训练;S46,使用训练集对DNN分类器进行训练,使用测试集对DNN分类器进行测试,当达到迭代次数后结束训练,选择分类准确率最大的DNN分类器作为软件漏洞分类器;S5,漏洞分类对新的漏洞描述信息集合进行分类时,首先使用步骤S1对新的漏洞描述信息集合进行预处理,然后根据步骤S3将新的漏洞描述信息集合中的每一个漏洞描述信息表述成一个m维的向量构成分类集;将分类集合输入到步骤S4中的软件漏洞分类器,输出新的漏洞描述信息集合中漏洞描述信息的分类。优选的,词频tf计算公式:其中,tfij表示文件j中单词i的重要性,i和j都是正整数,ni,j表示该词在文件j中出现的频数,∑knk,j表示所有词的词频之和;逆向文件频率idf计算公式:其中,idfi表示单词i的逆向文件频率,|D|表示语料库中的文件总数,|{j:ti∈dj}|表示包含词语本文档来自技高网
...

【技术保护点】
1.一种基于深度神经网络的软件漏洞自动分类方法,其特征在于,具体步骤如下:S1,漏洞描述信息集合中包括多条漏洞描述信息,对漏洞信息进行预处理后形成词集列表,预处理包括:对漏洞描述信息进行分词、词性还原和停用词过滤;S2,对样本漏洞描述信息集合将TF‑IDF算法和信息增益算法相融合对经过分词、词性还原和停用词过滤后的漏洞描述信息中的每个词的权重进行计算,获取重要特征词集列表,具体步骤包括:S21,遍历词集列表中的每个词,对词集列表进行词统计,存储在词统计字典里;S22,遍历词统计字典,计算每个词的词频值存入词频字典,计算每个词的逆向文件频率值,存入逆向文件频率字典,再计算每个词的TF‑IDF权重值存入TF‑IDF字典中;S23,按每个词的TF‑IDF权重值对TF‑IDF字典进行降序排序,选择前n个词作为特征词集,将特征词集存入特征列表;S24,遍历特征列表,根据漏洞类别数目划分特征词集并将子集并存入特征子集列表中,每个漏洞类别对应一个特征子集,然后计算相应漏洞类别对应的样本数目与样本漏洞描述信息集合中样本总数目的比例作为漏洞类别出现的概率;S25,采用信息增益算法计算特征列表中每个词的经验条件熵存入熵值字典,再计算特征列表中每个词的信息增益值,将每个词和对应的信息增益值存入信息增益值字典;S26,对信息增益值进行权重处理后,将信息增益值字典进行降序排序,选择前m个词作为重要特征词集,将重要特征词集存入重要特征词集列表;S3,生成词向量空间,把每一条漏洞描述信息表述成一个m维的向量,m是重要特征词集中特征词的数量;对于样本漏洞描述信息集合中每一个样本漏洞描述信息进行向量化后,形成样本集合,将样本集合分为训练集和测试集;对于需要进行分类的漏洞描述信息集合中每一个样本漏洞描述信息进行向量化后,形成分类集合;S4,使用深度神经网络模型获得软件漏洞分类器,具体步骤包括:S41,输入训练集,初始化权重系数矩阵W和偏置向量bS42,对每个神经元xi进行线性计算,计算公式为:...

【技术特征摘要】
1.一种基于深度神经网络的软件漏洞自动分类方法,其特征在于,具体步骤如下:S1,漏洞描述信息集合中包括多条漏洞描述信息,对漏洞信息进行预处理后形成词集列表,预处理包括:对漏洞描述信息进行分词、词性还原和停用词过滤;S2,对样本漏洞描述信息集合将TF-IDF算法和信息增益算法相融合对经过分词、词性还原和停用词过滤后的漏洞描述信息中的每个词的权重进行计算,获取重要特征词集列表,具体步骤包括:S21,遍历词集列表中的每个词,对词集列表进行词统计,存储在词统计字典里;S22,遍历词统计字典,计算每个词的词频值存入词频字典,计算每个词的逆向文件频率值,存入逆向文件频率字典,再计算每个词的TF-IDF权重值存入TF-IDF字典中;S23,按每个词的TF-IDF权重值对TF-IDF字典进行降序排序,选择前n个词作为特征词集,将特征词集存入特征列表;S24,遍历特征列表,根据漏洞类别数目划分特征词集并将子集并存入特征子集列表中,每个漏洞类别对应一个特征子集,然后计算相应漏洞类别对应的样本数目与样本漏洞描述信息集合中样本总数目的比例作为漏洞类别出现的概率;S25,采用信息增益算法计算特征列表中每个词的经验条件熵存入熵值字典,再计算特征列表中每个词的信息增益值,将每个词和对应的信息增益值存入信息增益值字典;S26,对信息增益值进行权重处理后,将信息增益值字典进行降序排序,选择前m个词作为重要特征词集,将重要特征词集存入重要特征词集列表;S3,生成词向量空间,把每一条漏洞描述信息表述成一个m维的向量,m是重要特征词集中特征词的数量;对于样本漏洞描述信息集合中每一个样本漏洞描述信息进行向量化后,形成样本集合,将样本集合分为训练集和测试集;对于需要进行分类的漏洞描述信息集合中每一个样本漏洞描述信息进行向量化后,形成分类集合;S4,使用深度神经网络模型获得软件漏洞分类器,具体步骤包括:S41,输入训练集,初始化权重系数矩阵W和偏置向量bS42,对每个神经元xi进行线性计算,计算公式为:其中,xi为每个神经元,Wi为每个神经元对应的权值矩阵,b是偏置向量,m为神经元总数,z是神经元线性计算输出,使用tanh激活函数进行激活运算,然后根据前向传播算法逐层计算得到最终输出结果al=σ(zl)=σ(Wlal-1+bl);S43,对最终输出结果使用softmax激活函数给不同的最终输出结果分配概率...

【专利技术属性】
技术研发人员:任家东王倩李亚洲胡昌振
申请(专利权)人:燕山大学
类型:发明
国别省市:河北,13

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1