CN111091194B - 一种基于cavwnb_kl算法的操作系统识别方法 - Google Patents

一种基于cavwnb_kl算法的操作系统识别方法 Download PDF

Info

Publication number
CN111091194B
CN111091194B CN201911109045.1A CN201911109045A CN111091194B CN 111091194 B CN111091194 B CN 111091194B CN 201911109045 A CN201911109045 A CN 201911109045A CN 111091194 B CN111091194 B CN 111091194B
Authority
CN
China
Prior art keywords
data
algorithm
class
operating system
probability
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201911109045.1A
Other languages
English (en)
Other versions
CN111091194A (zh
Inventor
桂小林
安迪
樊志甲
李瀛
范建存
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NSFOCUS Information Technology Co Ltd
Xian Jiaotong University
Original Assignee
NSFOCUS Information Technology Co Ltd
Xian Jiaotong University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NSFOCUS Information Technology Co Ltd, Xian Jiaotong University filed Critical NSFOCUS Information Technology Co Ltd
Priority to CN201911109045.1A priority Critical patent/CN111091194B/zh
Publication of CN111091194A publication Critical patent/CN111091194A/zh
Application granted granted Critical
Publication of CN111091194B publication Critical patent/CN111091194B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Image Analysis (AREA)
  • Complex Calculations (AREA)

Abstract

本发明公开了一种基于CAVWNB_KL算法的操作系统识别方法,分析nmap中的操作系统识别规则,从拆分出的大量数据集中抽出M万数据作为训练数据,同样的方法再次抽出m万数据作为模拟测试数据;将得到的M万数据进行封箱操作;使用KL散度计算属性与类之间的关联度作为每个属性的权值;将预处理过的M万数据计算先验概率和后验概率,作为指纹存储;取m万数据集计算出测试精度衡量指标;计算真实流量的测试精度;将采集到的真实流量进行筛选,以贝叶斯增量学习的方式增量训练,修正原有的指纹模型,完成识别。本发明采用CAVWNB_KL算法,极大的缓解了朴素贝叶斯属性间要求的独立的条件,提高了分类精度。

Description

一种基于CAVWNB_KL算法的操作系统识别方法
技术领域
本发明属于网络安全技术领域,具体涉及一种基于CAVWNB_KL (Correlation-based Atrribute Value Weighted Naive Bayes_KL)算法的操作系统识别方法。
背景技术
在网络安全领域,安全的对象是资产,其中操作系统又是资产的一大类别,目前对于操作系统的高误报率是安全资产管理客户的一大痛点,因此,如何准确识别操作系统,提高操作系统的识别率一直是网络安全领域的一大热点问题。
目前在网络安全领域,对于操作系统的识别,大多采用现场采集指纹,多用的是类似于二分类的方法,即通过一个一个的对比插件识别,且人工识别规律,造成识别精度低,容易漏报误报的问题,并且由于二分类标尺不一致,对于训练数据要求也较高,一般很难满足。
随着机器学习的发展,各类算法已经在不同的领域解决了许多实际问题,其中贝叶斯算法作为机器学习的十大经典算法之一,处理很多问题时直接又高效,因此在很多领域有着广泛的应用,也为降低操作系统的误报率提供了可能。但是简单的朴素贝叶斯算法对于属性间独立的条件可能会降低分类的精度。
发明内容
本发明所要解决的技术问题在于针对上述现有技术中的不足,提供一种基于CAVWNB_KL算法的操作系统识别方法,通过对模拟数据的训练,输出指纹,降低操作系统的误报率采用CAVWNB_KL算法,极大的缓解了朴素贝叶斯属性间要求的独立的条件,提高了分类精度。
本发明采用以下技术方案:
一种基于CAVWNB_KL算法的操作系统识别方法,包括以下步骤:
S1、分析nmap中的操作系统识别规则,按照nmap指纹库拆分数据,加上类标记,并映射成N列的数字向量,从拆分出的大量数据集中抽出M万数据作为训练数据,同样的方法再次抽出m万数据作为模拟测试数据;
S2、将得到的M万数据进行封箱操作;
S3、使用KL散度计算属性与类之间的关联度作为每个属性的权值;
S4、将预处理过的M万数据,输入NB算法模型,计算先验概率和后验概率,作为指纹存储;
S5、取步骤S1的m万数据集,经过同样的数据预处理封箱过程,将向量输入训练好的指纹模型通过CAVWNB_KL算法计算出每条流量的最大后验概率,计算出测试精度衡量指标;
S6、模仿nmap的发包方式,通过向目标网段发包的方式,采集真实流量,将真实流量输入指纹模型,预测结果,计算真实流量的测试精度;
S7、将采集到的真实流量进行筛选,选择其中没有噪声,且nmap指纹库中缺失的规则,以贝叶斯增量学习的方式增量训练,修正原有的指纹模型,完成识别。
具体的,步骤S1中,选取nmap指纹库的响应序列作为特征,筛选逻辑独立的维度,按照蒙特卡洛方法选取训练数据和模拟测试数据。
具体的,步骤S2中,对于M万数据的每一个维度,将该维度的所有数据取出,去重,按从小到大排序,然后将排序后的数据均分到k个区间内,则每个区间内的数字被映射成区间的编号。
具体的,步骤S3中,第i个属性Ai对应的权值Wi
Figure BDA0002272173790000031
其中,P(ai)为第i个属性Ai的取值ai的概率,P(c)为类别c的先验概率,P(c|ai) 为第i个属性Ai的取值ai上类别为c的条件概率。
具体的,步骤S4中,设输入空间
Figure BDA0002272173790000034
为N维向量的集合,输出空间为类标记集合γ={c1,c2,...,ck},输入为特征向量x∈χ,输出为类标记y∈γ,X是定义在输入空间χ上的随机向量,Y是定义在输出空间γ上的随机变量;采用朴素贝叶斯法通过训练数据集学习联合概率分布P(X,Y),学习先验概率分布及条件概率分布;采用贝叶斯估计条件概率和先验概率。
进一步的,采用贝叶斯估计,具体地,条件概率的贝叶斯估计是:
Figure BDA0002272173790000032
其中,ajl表示第j个特征的第l个取值,Sj表示第j个特征的取值范围,ck表示第k个类别,λ表示拉普拉斯平滑时的参数,常取1,N表示训练样本个数;
先验概率的贝叶斯估计为:
Figure BDA0002272173790000033
其中,K代表标记类的个数。
更进一步的,学习以下先验概率分布及条件概率分布。
先验概率分布:
P(Y=ck)
条件概率分布:
P(X=x|Y=ck)=P(X(1)=x(1),...,X(n)=x(n)|Y=ck)
朴素贝叶斯对条件概率分布做为条件独立性假设,条件独立性假设为:
Figure BDA0002272173790000041
其中,k=1,2...K。
具体的,步骤S5中,朴素贝叶斯分类时,对给定的输入x,通过学习到的模型计算后验概率分布P(Y=ck|X=x),将后验概率最大的类作为x的类输出,后验概率计算根据贝叶斯定理进行:
Figure BDA0002272173790000042
将独立性带入有:
Figure BDA0002272173790000043
其中,k=1,2,...,K;
CAVWNB_KL算法对朴素贝叶斯算法进行修改,在分类时引入权重的概念,最终的最大后验概率的计算公式为:
Figure 1
具体的,步骤S7中,首次训练时,存下原训练集条件概率,原训练集先验概率,原训练集类名称,原训练集各个类的个数,原训练集总数;将增量数据,调用训练原数据的方法,计算得到增量数据的条件概率,先验概率,类名称,各个类的个数,训练集总数。
进一步的,首次训练时,对先验概率做了log处理,在增量训练前,将取出的先验概率做还原处理;
修改先验概率为:
Figure BDA0002272173790000051
其中,D表示原训练集大小,n表示增量训练集大小,ni表示增量训练集中ci类的个数,P(ci)表示原来该类的先验概率;
条件概率修改为:
Figure BDA0002272173790000052
其中,P(wk|ci)表示原训练集在ci类上w特征取值为k的条件概率,wk表示该特征新增数据的取值,ni表示增量数据中ci类的个数,|ci|表示原训练集中ci类的个数,nk表示增量训练集中ci类上w特征取值为k的个数。
与现有技术相比,本发明至少具有以下有益效果:
本发明一种基于CAVWNB_KL算法的操作系统识别方法,针对网络安全领域操作系统错误识别率低的问题,提出一种结合机器学习的方法,即 CAVWNB_KL,通过拆解nmap指纹库的数据,训练操作系统模型,并通过真实环境采集的流量更正模型,达到提高操作系统识别准确率的目的,增量训练的方式节省了对于nmap更新指纹库需要大量的人力物力的问题。
进一步的,nmap拥有丰富的操作系统指纹库nmap_os_db,内部包含上千种已知的指纹特征,拆解nmap指纹库可得到大量的唯一的指纹,将其转化为向量,以便于算法的识别训练。
进一步的,由于某些特征在指纹库的取值范围是上亿的,例如'SEQ.GCD',经过映射规则处理后的取值范围为1-3458752002,但观察到实际取值比较分散,所以将数据进行封箱处理,钝化辨识度,提高算法分类准确率。
进一步的,朴素贝叶斯算法要求特征之间保持强独立,而实际情况中,这往往是很难实现的,这也极大的限制了贝叶斯算法的分类精度,使用KL散度给每个维度计算权重,缓解维度之间的独立要求,提高贝叶斯算法的分类精度。
进一步的,NB算法作为机器学习的十大算法之一,在许多领域已经表现了很好的分类效果,最重要的是,对于我们的数据来源,由于网络等原因,会有许多缺失值出现,而NB算法天然具有的对于缺失值不敏感的特性,使得NB算法非常适合我们的数据特点,进而表现出较好的分类效果。
进一步的,通过模拟数据的测试精度,可以表达出算法分类效果是否有提升,便于进行调参等操作。
进一步的,由于模拟数据来源为nmap指纹库,且使用了蒙特卡洛方法进行了抽样,势必会丢失一些信息,通过对不含噪音的真实流量的增量学习,不仅可以对丢失的一部分重要信息进行补充,而且可以是训练的模型更符合真实网络环境。
综上所述,本发明采用CAVWNB_KL算法,极大的缓解了朴素贝叶斯属性间要求的独立的条件,提高了分类精度。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
图1为本发明方法的流程图;
图2为本发明实现框架图;
图3为本发明的应用示例图;
图4为给出了本发明算法验证结果在类别上的效果对比图;
图5为给出了本发明算法验证结果在大版本上的效果对比图;
图6为给出了本发明算法验证结果在小版本上的效果对比图。
具体实施方式
目前在网络安全领域,对于操作系统的识别,大多采用现场采集指纹,多用的是类似于二分类的方法,且人工识别规律,造成识别精度低,容易漏报误报的问题,并且由于二分类标尺不一致,对于训练数据要求也较高,一般很难满足。
本发明提供了一种基于CAVWNB_KL算法的操作系统识别方法,结合 CAVWNB_KL算法对通过拆解nmap的规则集转化得到的大量向量进行训练,提高效率的同时,提高对于操作系统的识别率,通过CAVWNB_KL算法对得到的向量训练,得到其先验概率和后验概率,然后通过探针采集真实流量,进而通过真实流量修正指纹库,使其更适合真实网络环境。
请参阅图1,本发明一种基于CAVWNB_KL算法的操作系统识别方法,包括以下步骤:
S1、数据的收集阶段
分析nmap中的操作系统识别规则,按照nmap的操作系统识别规则即落点匹配的方式,选取nmap指纹库的响应序列作为特征,找到N个维度,筛选其中逻辑上明显要求独立的维度,尽量保证贝叶斯算法中属性间独立的条件,按照 nmap指纹库拆分数据,加上类标记,并映射成N列的数字向量。按照蒙特卡洛方法,从拆分出的大量数据集中抽出M万数据作为训练数据,同样的方法再次抽出m万数据作为模拟测试数据。
S2、数据预处理阶段
将得到的M万数据按照一定的算法进行封箱操作。对于M万数据的每一个维度,将该维度的所有数据取出,去重,按从小到大排序,然后将排序后的数据均分到k个区间内,则每个区间内的数字被映射成区间的编号,例如:
某维度的取值为:[2,6,22,4,6,1,8,5,3,15,34,25,67,23]
去重排序后:[1,2,3,4,5,6,8,15,22,23,25,34,67]
均分到k个区间内(例如k=3):[1,2,3,4],[5,6,8,15],[22,23,25,34,67]
则该维度上1、2、3、4被映射成1,5、6、8、15被映射成2,22、23、25、 34、67被映射成3。
使原数据集中大部分的属性值被使用到,保证了实验结果的正确性,而且节省了开销。实验结果也证明该算法的有效性。
S3、KL散度计算权重阶段
相对熵,又被称为Kullback-Leibler散度(Kullback-Leibler divergence)或信息散度(information divergence),是两个概率分布(probability distribution)间差异的非对称性度量。在信息理论中,相对熵等价于两个概率分布的信息熵的差值。本发明中使用KL散度来计算属性与类之间的关联度作为每个属性的权值,以此来缓解朴素贝叶斯要求特征间相互独立的强条件,是一种过滤的属性加权方法,本发明中,第i个属性Ai对应的权值Wi
Figure BDA0002272173790000091
其中,P(ai)为第i个属性Ai的取值ai的概率,P(c)为类别c的先验概率,P(c|ai) 为第i个属性Ai的取值ai上类别为c的条件概率。
S4、训练阶段
将预处理过的M万数据,输入NB算法模型,计算先验概率和后验概率,作为指纹存储。
设输入空间
Figure BDA0002272173790000093
为N维向量的集合,输出空间为类标记集合γ={c1,c2,...,ck},输入为特征向量x∈χ,输出为类标记y∈γ,X是定义在输入空间χ上的随机向量, Y是定义在输出空间γ上的随机变量。
朴素贝叶斯法通过训练数据集学习联合概率分布P(X,Y)。具体地,学习以下先验概率分布及条件概率分布。
先验概率分布:
P(Y=ck),k=1,2...K
条件概率分布:
P(X=x|Y=ck)=P(X(1)=x(1),...,X(n)=x(n)|Y=ck),k=1,2,...,K
朴素贝叶斯对条件概率分布做为条件独立性假设,具体地,条件独立性假设是:
Figure BDA0002272173790000092
采用贝叶斯估计,具体地,条件概率的贝叶斯估计是:
Figure BDA0002272173790000101
其中,ajl表示第j个特征的第l个取值,Sj代表第j个特征的取值范围,ck表示第k个类别,λ表示拉普拉斯平滑时的参数,常取1,N表示训练样本个数。
先验概率的贝叶斯估计是
Figure BDA0002272173790000102
其中,K代表标记类的个数。
S5、模拟数据测试阶段
取S1的m万数据集,经过同样的数据预处理封箱过程,将向量输入训练好的指纹模型,通过CAVWNB_KL算法,计算出每条流量的最大后验概率。计算出测试精度等衡量指标。
S6、真实流量测试阶段
模仿nmap的发包方式,通过向目标网段发包的方式,采集真实流量,将真实流量输入指纹模型,预测结果。计算真实流量的测试精度。
朴素贝叶斯分类时,对给定的输入x,通过学习到的模型计算后验概率分布 P(Y=ck|X=x),将后验概率最大的类作为x的类输出,后验概率计算根据贝叶斯定理进行:
Figure BDA0002272173790000103
将独立性带入有:
Figure BDA0002272173790000111
其中,k=1,2,...,K。
于是,朴素贝叶斯分类器可表示为:
Figure BDA0002272173790000112
注意到,分母对所有ck都是相同的,所以,
Figure BDA0002272173790000113
CAVWNB_KL算法对朴素贝叶斯算法进行修改,为了缓解朴素贝叶斯特征之间相互独立的强特征,在分类时引入权重的概念,条件概率的计算方式有所修改,最终的最大后验概率的计算公式为:
Figure 2
S7、将采集到的真实流量进行筛选,选择其中没有噪声,且nmap指纹库中缺失的规则,以贝叶斯增量学习的方式增量训练,修正原有的指纹模型。
首次训练时,存下原训练集条件概率,原训练集先验概率,原训练集类名称,原训练集各个类的个数,原训练集总数。
将增量数据,调用训练原数据的方法,计算得到增量数据的条件概率,先验概率,类名称,各个类的个数,训练集总数。
因为首次训练时,为防止数字下溢,对先验概率做了log处理,所以在增量训练前,现将取出的先验概率做还原处理。
修改该类的先验概率为:
Figure BDA0002272173790000121
其中,D表示原训练集大小,n表示增量训练集大小,ni表示增量训练集中ci类的个数,P(ci)表示原来该类的先验概率。
条件概率修改公式为:
Figure BDA0002272173790000122
其中,P(wk|ci)表示原训练集在ci类上w特征取值为k的条件概率,wk表示该特征新增数据的取值,ni表示增量数据中ci类的个数,|ci|表示原训练集中ci类的个数,nk表示增量训练集中ci类上w特征取值为k的个数。
请参阅图2,建模模块主要用于为算法提供数据,通过对nmap指纹库的拆解,选取逻辑上独立的维度,通过映射规则将指纹转向量,蒙特卡洛方法抽取向量等步骤,为算法提供所需的训练和测试数据,算法模块对于建模模块提供的数据进行训练测试调参,得到基于模拟数据的最优模型,探针模块用于得到真实流量,并将真实流量指纹转化为真实流量向量,挑选其中无噪声的真实流量向量提供给算法模型,用于增量训练,进一步修正模型,最终输出经过我们多次优化的最优模型。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中的描述和所示的本发明实施例的组件可以通过各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图3,一种基于贝叶斯算法的操作系统识别方案,包括以下步骤:
S1、数据的收集阶段
分析nmap中的操作系统识别规则,nmap发送16个数据包对应生成响应序列,每个响应序列对应标志位;nmap的指纹库包含了nmap已知的操作系统对 nmap的16个探测包的回应数据包中所包含的该操作系统的指纹信息。因此,使用指纹库中的指纹名称来作为模型的标记数据,指纹名称下的响应序列的标志位来构成训练数据;
如下为nmap指纹库的一条指纹:
Figure BDA0002272173790000131
其中,Fingerprint行代表的是该指纹所属的操作系统,我们以此作为分类的类标记,接下来的SEQ、OPS、WIN、ECN、T1、T2、T3、T4、T5、T6、T7、 U1、IE为响应序列,每个响应序列会有后面的标志位,例如:SEQ的标志位为SP、GCD、ISR、TI、CI、II、TS,我们将每个响应序列加上他的标志位作为特征,例如:SEQ.SP、SEQ.GCD等,这样拆出119个特征。
其中,SEQ.SP表示TCP ISN序列可预测性指数,ISN是nmap接收的 SYN/ACK包,包含的32位初始序列号,SP用于预测下一个ISN,计算时需要的参数有seq_rates和GCD,其中seq_rates的计算方法为:diff1/两个探针之间经过的时间量(单位:S-0.1)=seq_rates数组,diff1表示对于namp接收的SYN/ACK 包,包含的32位初始序列号(ISN),diff1中第一个元素是第一和第二个探测包响应的ISN的差异;第二个元素是第二和第三个探测包响应的ISN的差异;如果接收了所有6个包,会有5个元素,diff1存放差值。SP的计算方法为:如果先前计算的GCD值大于9,则先前计算的seq_rates数组的元素除以该值,从而获取所得值的阵列的标准偏差,如果值为1或者更小,SP为0;否则计算结果的 log2n,然后将其乘以8,四舍五入到最接近的整数,并存储为SP;由于SP对于GCD逻辑上的强依赖关系,我们在选择维度时人为的删除SEQ.SP特征,这也是为了尽量保持朴素贝叶斯维度间独立的条件,得到118个特征。接下来,按照规则集拆分指纹库,指纹库包含的标志位取值的方法主要有:‘-’和‘|’。对于标志位取值类似于‘SP=0-5’,需要拆解成‘SP=0’,‘SP=1’到‘SP=5’,等6 个取值;对于标志位取值类似于‘GCD=B8|114|170|1CC’,需要拆解成‘GCD=B8’, ‘GCD=114’等4个值。并映射成118列的数字向量。按照蒙特卡洛方法,从拆分出的大量数据集中抽出90万数据作为训练数据,具体做法为:分别获取响应序列的全集,当全集数量大于500时,从全集随机挑选4个样本,当全集数量大于10小于等于500时,从全集随机挑选2个样本,当全集数量小于10时,随机挑选1个样本,从而获得90万数据作为模拟测试集。为了加大测试样本和训练样本的不同性,在挑选测试集时,用同样的方法,但不从响应序列(例如GCD) 而从单独的标志位(例如SP)作为标准衡量,即当单个特征的所有取值集合数量大于15,挑选数量为3,获得样本量为425096的测试集合。
S2、由于某些特征在指纹库的取值范围是上亿的,例如'SEQ.GCD',经过以上处理的取值范围为1-3458752002,但观察到实际取值比较分散,所以将数据进行封箱处理,具体做法为:在训练数据中,对于每一个维度,取所有值,去重,按照从小到大排序,将所有数据平均分散到40个区间内,取每个区间的首尾,将区间内的数据全部映射成另外一个数字;
例如:
某维度的取值为:[2,6,22,4,6,1,8,5,3,15,34,25,67,23]
去重排序后:[1,2,3,4,5,6,8,15,22,23,25,34,67]
均分到k个区间内(例如k=3):[1,2,3,4],[5,6,8,15],[22,23,25,34,67]
则该维度上1、2、3、4被映射成1,5、6、8、15被映射成2,22、23、25、 34、67被映射成3。
实际测试得知该做法比较适用于实际情况。
S3、第i个属性Ai对应的权值Wi
Figure 3
S4、将得到的90万训练数据,输入CAVWNB_KL模型,计算先验概率和后验概率,作为指纹存储;
S5、取第一步的40万数据集,通过同样的封箱操作,将向量输入训练好的指纹模型,通过CAVWNB_KL算法,计算出每条流量的最大后验概率。计算出测试精度等衡量指标;
S6、通过向目标网段发包的方式,采集真实流量,将真实流量输入指纹模型,预测结果。计算真实流量的测试精度。由于网络等原因的干扰,此时的真实流量可能与我们的模拟数据有些差异;
S7、将采集到的真实流量以增量学习的方式增量训练,修正原有的指纹模型。
分类出来的结果一般是类别+大版本+小版本的形式,例如:Fingerprnt Linux3.10,Fingerprint Windows 7.1,将Linux,windows这样的结果称为类别,Linux 3,windows 7称为大版本,Linux 3.10,windows 7.1称为小版本,以此可以在三个层次上计算精度。连续8天在某网段扫描,得到八批数据,每批有300条流量数据,主要包括80条windows类别,127条linux类别,93条Vmware类别,且包含多种大小版本,转化向量后输入算法模型,输出结果,计算准确度,得到以下验证效果(横轴为8批数据编号,实线表示CAVWNB_KL算法的效果,虚线表示朴素贝叶斯算法的效果),
图4表示类别层次上的分类效果对比图,图5表示大版本层次上的分类效果对比图,图6表示小版本层次上的分类效果对比图。可以明显看到使用 CAVWNB_KL算法缓解了朴素贝叶斯特征独立的要求后,在测试的三个层次上,无论是类别、大版本还是小版本都有不同程度的提升,表明了该方法的有效性。
以上内容仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明权利要求书的保护范围之内。

Claims (9)

1.一种基于CAVWNB_KL算法的操作系统识别方法,其特征在于,包括以下步骤:
S1、分析nmap中的操作系统识别规则,按照nmap指纹库拆分数据,加上类标记,并映射成N列的数字向量,从拆分出的大量数据集中抽出M万数据作为训练数据,同样的方法再次抽出m万数据作为模拟测试数据;
S2、将得到的M万数据进行封箱操作;
S3、使用KL散度计算属性与类之间的关联度作为每个属性的权值;
S4、将预处理过的M万数据,输入NB算法模型,计算先验概率和后验概率,作为指纹存储,设输入空间
Figure FDA0003548356170000011
为N维向量的集合,输出空间为类标记集合γ={c1,c2,...,ck},输入为特征向量x∈χ,输出为类标记y∈γ,X是定义在输入空间χ上的随机向量,Y是定义在输出空间γ上的随机变量;采用朴素贝叶斯法通过训练数据集学习联合概率分布P(X,Y),学习先验概率分布及条件概率分布;采用贝叶斯估计条件概率和先验概率;
S5、取步骤S1的m万数据集,经过同样的数据预处理封箱过程,将经过预处理封箱得到的向量输入训练好的指纹模型通过CAVWNB_KL算法计算出每条流量的最大后验概率,计算出测试精度衡量指标;
S6、模仿nmap的发包方式,通过向目标网段发包的方式,采集真实流量,将真实流量输入指纹模型,预测结果,计算真实流量的测试精度;
S7、将采集到的真实流量进行筛选,选择其中没有噪声,且nmap指纹库中缺失的规则,以贝叶斯增量学习的方式增量训练,修正原有的指纹模型,完成识别。
2.根据权利要求1所述的基于CAVWNB_KL算法的操作系统识别方法,其特征在于,步骤S1中,选取nmap指纹库的响应序列作为特征,筛选逻辑独立的维度,按照蒙特卡洛方法选取训练数据和模拟测试数据。
3.根据权利要求1所述的基于CAVWNB_KL算法的操作系统识别方法,其特征在于,步骤S2中,对于M万数据的每一个维度,将该维度的所有数据取出,去重,按从小到大排序,然后将排序后的数据均分到k个区间内,则每个区间内的数字被映射成区间的编号。
4.根据权利要求1所述的基于CAVWNB_KL算法的操作系统识别方法,其特征在于,步骤S3中,第i个属性Ai对应的权值Wi
Figure FDA0003548356170000021
其中,P(ai)为第i个属性Ai的取值ai的概率,P(c)为类别c的先验概率,P(cai)为第i个属性Ai的取值ai上类别为c的条件概率。
5.根据权利要求1所述的基于CAVWNB_KL算法的操作系统识别方法,其特征在于,步骤S4中,采用贝叶斯估计,具体地,条件概率的贝叶斯估计是:
Figure FDA0003548356170000022
其中,ajl表示第j个特征的第l个取值,Sj表示第j个特征的取值范围,ck表示第k个类别,λ表示拉普拉斯平滑时的参数,常取1,N表示训练样本个数;
先验概率的贝叶斯估计为:
Figure FDA0003548356170000023
其中,K代表标记类的个数。
6.根据权利要求5所述的基于CAVWNB_KL算法的操作系统识别方法,其特征在于,学习以下先验概率分布及条件概率分布,
先验概率分布:
P(Y=ck)
条件概率分布:
P(X=x|Y=ck)=P(X(1)=x(1),...,X(n)=x(n)|Y=ck)
朴素贝叶斯对条件概率分布做条件独立性假设,条件独立性假设为:
Figure FDA0003548356170000031
7.根据权利要求1所述的基于CAVWNB_KL算法的操作系统识别方法,其特征在于,步骤S5中,朴素贝叶斯分类时,对给定的输入x,通过学习到的模型计算后验概率分布P(Y=ck|X=x),将后验概率最大的类作为x的类输出,后验概率计算根据贝叶斯定理进行:
Figure FDA0003548356170000032
将独立性假设带入有:
Figure FDA0003548356170000033
其中,k=1,2,...,K;
CAVWNB_KL算法对朴素贝叶斯算法进行修改,在分类时引入权重的概念,最终的最大后验概率的计算公式为:
Figure FDA0003548356170000034
8.根据权利要求1所述的基于CAVWNB_KL算法的操作系统识别方法,其特征在于,步骤S7中,首次训练时,存下原训练集条件概率,原训练集先验概率,原训练集类名称,原训练集各个类的个数,原训练集总数;将增量数据,调用训练原数据的方法,计算得到增量数据的条件概率,先验概率,类名称,各个类的个数,训练集总数。
9.根据权利要求8所述的基于CAVWNB_KL算法的操作系统识别方法,其特征在于,首次训练时,对先验概率做了log处理,在增量训练前,将取出的先验概率做还原处理;
修改先验概率为:
Figure FDA0003548356170000041
其中,D表示原训练集大小,n表示增量训练集大小,ni表示增量训练集中ci类的个数,P(ci)表示原来该类的先验概率;
条件概率修改为:
Figure FDA0003548356170000042
其中,P(wk|ci)表示原训练集在ci类上w特征取值为k的条件概率,wk表示该特征新增数据的取值为k,ni表示增量数据中ci类的个数,|ci|表示原训练集中ci类的个数,nk表示增量训练集中ci类上w特征取值为k的个数。
CN201911109045.1A 2019-11-13 2019-11-13 一种基于cavwnb_kl算法的操作系统识别方法 Active CN111091194B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911109045.1A CN111091194B (zh) 2019-11-13 2019-11-13 一种基于cavwnb_kl算法的操作系统识别方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911109045.1A CN111091194B (zh) 2019-11-13 2019-11-13 一种基于cavwnb_kl算法的操作系统识别方法

Publications (2)

Publication Number Publication Date
CN111091194A CN111091194A (zh) 2020-05-01
CN111091194B true CN111091194B (zh) 2022-05-20

Family

ID=70393711

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911109045.1A Active CN111091194B (zh) 2019-11-13 2019-11-13 一种基于cavwnb_kl算法的操作系统识别方法

Country Status (1)

Country Link
CN (1) CN111091194B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112202718B (zh) * 2020-09-03 2021-08-13 西安交通大学 一种基于XGBoost算法的操作系统识别方法、存储介质及设备
CN116305148A (zh) * 2023-02-28 2023-06-23 南京瀚海伏羲防务科技有限公司 一种基于指纹自动收集与增量模型训练的被动操作系统识别方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018075752A1 (en) * 2016-10-19 2018-04-26 InAuth, Inc. Systems and methods for recognizing and facilitating recognition of a decivce and/or an instance of an app invoked on a device
CN110222744A (zh) * 2019-05-23 2019-09-10 成都信息工程大学 一种基于属性加权的朴素贝叶斯分类模型改进方法
CN110413601A (zh) * 2019-07-04 2019-11-05 东南大学 一种基于高斯朴素贝叶斯分类器和预报误差法相结合的发电机组辨识数据筛选方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018075752A1 (en) * 2016-10-19 2018-04-26 InAuth, Inc. Systems and methods for recognizing and facilitating recognition of a decivce and/or an instance of an app invoked on a device
CN110222744A (zh) * 2019-05-23 2019-09-10 成都信息工程大学 一种基于属性加权的朴素贝叶斯分类模型改进方法
CN110413601A (zh) * 2019-07-04 2019-11-05 东南大学 一种基于高斯朴素贝叶斯分类器和预报误差法相结合的发电机组辨识数据筛选方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"Deep feature weighting in Naive Bayes for Chinese text classification";Qiaowei Jiang等;《2016 4th International Conference on Cloud Computing and Intelligence Systems (CCIS)》;20161219;第160-164页 *
"基于特征加权的朴素贝叶斯学情预警分类研究";钟新成等;《山西大同大学学报(自然科学版)》;20190430;第35卷(第2期);第46-49页 *

Also Published As

Publication number Publication date
CN111091194A (zh) 2020-05-01

Similar Documents

Publication Publication Date Title
CN109949290B (zh) 路面裂缝检测方法、装置、设备及存储介质
Campbell et al. Assessing colour-dependent occupation statistics inferred from galaxy group catalogues
Muñoz et al. Exploratory landscape analysis of continuous space optimization problems using information content
CN111818198B (zh) 域名检测方法、域名检测装置和设备以及介质
CN113434859B (zh) 入侵检测方法、装置、设备及存储介质
CN111242179B (zh) 一种基于cfs_kl的贝叶斯加权方法
JP2001502831A (ja) 測定可能な時系列の統計的依存性の分類方法
CN111091194B (zh) 一种基于cavwnb_kl算法的操作系统识别方法
CN111027629A (zh) 基于改进随机森林的配电网故障停电率预测方法及系统
CN112115965A (zh) 一种基于svm的被动操作系统识别方法、存储介质及设备
CN115296984A (zh) 异常网络节点的检测方法及装置、设备、存储介质
CN117155771B (zh) 一种基于工业物联网的设备集群故障溯源方法及装置
Zhou et al. Eigenvalue significance testing for genetic association
US20200279148A1 (en) Material structure analysis method and material structure analyzer
CN113110961A (zh) 设备异常检测方法、装置、计算机设备及可读存储介质
CN114943674A (zh) 瑕疵检测方法、电子装置及存储介质
US6430522B1 (en) Enhanced model identification in signal processing using arbitrary exponential functions
US20220215144A1 (en) Learning Apparatus, Learning Method and Learning Program
CN113705092B (zh) 基于机器学习的疾病预测方法及装置
CN113420733B (zh) 一种高效分布式大数据数据采集实现方法及系统
CN113392086B (zh) 基于物联网的医疗数据库构建方法、装置及设备
CN113918471A (zh) 测试用例的处理方法、装置及计算机可读存储介质
CN109308565B (zh) 人群绩效等级识别方法、装置、存储介质及计算机设备
CN111754103A (zh) 企业风险画像方法、装置、计算机设备和可读存储介质
CN111581640A (zh) 一种恶意软件检测方法、装置及设备、存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant