网络消息识别过程中K‑means算法的k值确定方法及安全设备与流程

文档序号:12825647阅读:279来源:国知局
网络消息识别过程中K‑means算法的k值确定方法及安全设备与流程

本发明实施例涉及数字信息传输技术领域,尤其涉及一种网络消息识别过程中k-means算法的k值确定方法及安全设备。



背景技术:

基于接入端口动态分配注册表式mac地址的无线通信网络,已经成为互联网络的主要接入网络。接入端口动态分配注册表式mac地址,导致接入ip及与接入ip相对应的mac地址容易被盗用,决定了无线通信网络具有极强的接入隐蔽性,很难通过接入ip或与接入ip相对应的mac地址判断网络消息的源地址。同时,作为不同网络实体之间通信载体使用的网络通信协议中,包含有较多的协议规范文档没有公开的私有通信协议,相较于协议规范文档公开的公有通信协议,私有通信协议所承载的网络消息,很难被分类和识别,经常被用于网络入侵或者攻击,即,现有网络通信协议有其较脆弱的一面。

为了降低无线通信网络过程中被钓鱼、插入攻击、漫游攻击,通信信息被监视劫持甚至被窃取的安全风险,就需要对网络通信协议进行识别,从源自网络环境的未知混合多通信协议消息中将未知单私有通信协议消息分离出来,并找出相应的地址信息,对未知私有通信协议传递的网络消息数据进行监控。但,由于目前越来越多的未知私有通信协议采用公有通信协议的传输工具,复用公开的注册端口号,即采用自由端口作为其通信端口,通过端口映射和/或静态特征匹配来对未知私有通信协议进行识别,基本是不可能的事情。

现有的未知私有通信协议识别方法,可首先采用聚类算法,例如k-means聚类算法,从未知混合多通信协议消息中分离出未知单私有通信协议消息,再通过评估算法评估类类簇,得到可信的未知单私有通信协议消息。k-means聚类算法,基于k个初始类聚类中心,通过迭代算法获取新的聚类中心,得到与未知混合多通信协议消息相匹配的聚类中心,每个聚类中心对应一个单通信协议的消息,从而实现从未知混合多通信协议消息中分离出未知单私有通信协议消息;k-means聚类算法,时间复杂度近于线性,算法简单,计算速度快,适合挖掘大规模数据集。

然而,发明人在实现本发明实施例中的技术方案的过程中发现,现有采用k-means聚类算法从未知混合多通信协议消息中分离出未知单私有通信协议消息的方法,至少存在如下技术问题:

执行k-means聚类算法时,代表初始类聚类中心数量的k值只能通过事先指定,但由于事先无法知道用于测试的未知混合多通信协议消息应该分成多少个聚类类别比较合适,因此k值的选定非常困难,且,一旦k值选择不理想,一方面,在对大数据量进行处理时算法的时间开销是非常大,另一方面可能无法获得有效的与未知混合多通信协议消息相匹配的聚类中心。



技术实现要素:

有鉴于此,本发明的目的在于提供一种网络消息识别过程中k-means算法的k值确定方法及安全设备,用以解决现有技术中执行k-means聚类算法时代表初始类聚类中心数量的k值的选取只能凭感觉进行的缺陷;实现基于测试的混合多通信协议消息确定代表初始类聚类中心数量的k值,从而提高从混合多通信协议消息中分离出未知单私有通信协议消息的有效性,及大幅缩短算法时间开销。

为了实现上述目的,本发明采用的技术方案如下:

本发明实施例提供一种网络消息识别过程中k-means算法的k值确定方法,应用于无线通信网络系统中,包括:

将从网络环境中获得的混合通信协议消息数据流转换成十六进制消息数据流,以两个字节为单位长度切分所述十六进制消息数据流,获得与所述十六进制消息数据流相对应的单位数据序列;

将所述单位数据序列中的单位数据逐行顺序填入一m行n列的二维矩阵中,得到与所述单位数据序列相对应的单位数据矩阵;其中,m为大于等于2的正整数,n为不大于256的正整数;

遍历所述单位数据矩阵,逐列统计每一单位数据对象在所述单位数据矩阵的每一列中的出现次数,得到单位数据对象列出现的频次表;统计每一单位数据对象出现过的所述单位数据矩阵行的行号,得到单位数据对象行出现的行号集;所述单位数据对象为同一内容表示的单位数据;

基于所述单位数据对象列出现的频次表,获得所述单位数据矩阵的每一列中列出现频次最高的单位数据对象,在此基础上,再基于一预设的列出现频次下限阈值和一预设的列出现频次上限阈值,得到p个目标单位数据对象;其中,每个所述目标单位数据对象具有一个行号集,p为不大于n的正整数;

从p个所述目标单位数据对象的p个行号集中得到行号个数最多的行号集;

在将所述行号个数最多的行号集中的行号加入结果集后,将p个行号集中的每个集合中元素没被加入到所述结果集中的行号集作为一个结果集更新源行号集,以所述结果集为交集参照集合,遍历所有所述结果集更新源行号集,计算每个所述结果集更新源行号集与所述结果集的交集率,基于所述交集率小于预设不重复率值,将小于所述预设不重复率值的交集率所对应的结果集更新源行号集中的行号加入到所述结果集中,完成一次结果集更新;基于上一次更新得到的所述结果集作为下一次所述结果集更新的所述交集参照集合,对上一次更新得到的所述结果集进行再一次更新,当每个所述结果集更新源行号集与所述结果集的交集率均大于所述不重复率值时,得到与所述预设不重复率值对应的最终结果集;

统计并将所述最终结果集中的行号个数作为网络消息识别过程中k-means算法的k值。

可能的实施方式中,所述每个所述结果集更新源行号集与所述结果集的交集率的计算公式为:

r=n(si∩rset)/nrset

其中,r为交集率,si为第i个结果集更新源行号集,i为小于p的正整数,rset为结果集,nrset为结果集中的行号个数,n(si∩rset)为第i个结果集更新源行号集与结果集交集的行号个数。

可能的实施方式中,所述方法还包括:

所述预设不重复率值为q个,获得与q个所述预设不重复率值对应的q个所述最终结果集,将计算得到的q个所述最终结果集中的行号个数平均值的取整值作为网络消息识别过程中k-means算法的k值,其中,q为不小于2的正整数。

可能的实施方式中,当q为不小于5的正整数时,执行步骤:所述预设不重复率值为q个,获得与q个所述预设不重复率值对应的q个所述最终结果集,将计算得到的q个所述最终结果集中的行号个数平均值的取整值作为网络消息识别过程中k-means算法的k值的过程,包括:

基于q个所述预设不重复率值,获得与q个所述预设不重复率值对应的q个所述最终结果集:

以所述预设不重复率值为x轴,以与所述不重复率值对应的最终结果集的行号个数为y轴,得到所述预设不重复率值与所述最终结果集的行号个数之间的对应关系曲线;

将斜率为0.8~1.2的对应关系曲线区间作为行号个数平均值计算区间,通过计算得到所述行号个数平均值计算区间的所述最终结果集的行号个数平均值,以所述最终结果集的行号个数平均值的取整值作为网络消息识别过程中k-means算法的k值。

可能的实施方式中,所述预设不重复率值的取值区间为51%~98%。

可能的实施方式中,所述列出现频次下限阈值为大于或者等于2的正整数,所述列出现频次上限阈值为不大于256的正整数,所述列出现频次上限阈值大于所述列出现频次下限阈值。

本发明实施例提供一种安全设备,应用于无线通信网络系统中,包括:

至少一个处理器;以及,

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行前述的网络消息识别过程中k-means算法的k值确定方法。

基于上述技术方案,本发明实施例中的网络消息识别过程中k-means算法的k值确定方法及安全设备,通过将从网络环境中获得的混合通信协议消息数据流处理成由单位数据对象构成的单位数据序列,然后将单位数据序列转换成位置上一一对应的单位数据矩阵,以单位数据矩阵作为网络地址信息发现的载体,基于单位数据对象在单位数据矩阵中列出现的频次得到可以认定为网络地址信息的p个目标单位数据,基于同一协议的网络地址信息通常集中出现在单位数据矩阵列的同一行,对p个目标单位数据行出现的行号集进行分析,将行号最多的行号集中的行号加入结果集,得到初始结果集,以结果集为交集参照集合,以p个行号集中的每个集合中元素没被加入到结果集中的行号集作为一个结果集更新源行号集,基于结果集更新源行号集与结果集的交集率及预设不重复率值,更新结果集,实现行号甄选,直到得到最终结果集。通过上述步骤得到的最终结果集中的行号个数,能表征混合通信协议消息数据流中的协议种类数,该协议种类数与表征k-means算法的初始类聚类中心数值k相近,因此,可将最终结果集中的行号个数作为网络消息识别过程中k-means算法的k值,改变了现有技术基于用户的感觉选取代表初始类聚类中心数量的k值,实现基于真实网络环境中的多通信协议消息中的单位数据对象的特性,判断多通信协议消息中具有的协议种类数,使k-means算法的初始类聚类中心数量与最终得到的混合多通信协议消息相匹配的聚类中心更接近,从而,从而提高从混合多通信协议消息中分离出未知单私有通信协议消息的有效性,及大幅缩短算法时间开销。

附图说明

图1示出了本发明实施例中提供的一种网络消息识别过程中k-means算法的k值确定方法的流程示意图;

图2示出了本发明实施例中提供的一种安全设备的结构示意图。

具体实施方式

为了便于清楚、完整地理解本发明实施例的技术方案,下面对本发明实施例中所涉及的术语进行说明。

术语“k-means算法”,是一种基于距离的聚类算法,该算法采用距离作为相似性的评价指标,两个对象的距离越近,其相似度就越大;该算法认为类簇是由距离靠近的对象组成,获得紧凑且独立的类簇是该算法的目标。具体算法公式如下:

其中,k为初始类聚类中心的数目,在网络消息识别过程中,k值可以理解为混合通信协议消息数据流中所包含的协议种类数。

执行k-means聚类算法时,代表初始类聚类中心数量的k值只能通过事先指定,但由于事先无法知道用于测试的混合多通信协议消息应该分成多少个聚类类别比较合适,因此k值的选定非常困难,且,一旦k值选择不理想,一方面,在对大数据量进行处理时算法的时间开销是非常大,另一方面可能无法获得有效的与未知混合多通信协议消息相匹配的聚类中心。

基于解决上述技术问题,本申请发明人提供一种网络消息识别过程中k-means算法的k值确定方法设备。

图1示出了本发明实施例中提供的一种网络消息识别过程中k-means算法的k值确定方法的流程示意图。所述方法应用于无线网络通信系统中,用于在网络消息识别过程中确定混合通信协议消息数据流中所包含的协议种类数,以作为k-means算法的k值。

所述方法应用于无线网络通信系统中,具体可应用于无线网络通信系统中的云平台、基于网路的硬件设备、及硬件设备上运行的操作系统或者应用软件中;其中,基于网路的硬件设备,具体可以是网络交换设备、网络安全设备、网络终端设备,其中,网络交换设备,具体可以是网络交换机、路由器、网关、中继器、网桥;网络安全设备,具体可以是硬件防火墙、入侵检测设备、安全网关;网络终端设备,具体可以服务器、工控计算机、工作站、客户端、移动终端等用户设备。硬件设备上运行的操作系统,具体可以是windows系统、unix系统、linux系统;其中,linux系统,具体可以是安卓系统,unix系统,具体可以是osx系统;硬件设备上运行的应用软件,具体可以是安全软件、网络管理软件。

现参照图1所示,本发明实施例中提供的一种网络消息识别过程中k-means算法的k值确定方法,具体流程如下:

s010,将从网络环境中获得的混合通信协议消息数据流转换成十六进制消息数据流,以两个字节为单位长度切分所述十六进制消息数据流,获得与所述十六进制消息数据流相对应的单位数据序列;

在本发明实施例中,混合通信协议消息数据流中,具体可以包括公有通信协议消息数据、未知私有通信协议消息数据,其中,公有通信协议,具体可以是arp协议、icmp协议、smtp协议、tcp/ip协议。网络环境,具体可以是真实的网络环境,也可以是模拟网络环境,后者主要是为了提高任务难度,例如,为了增加本发明实施例中的网络消息识别过程中k-means算法的k值确定方法的任务实现难度,验证该方法的有效性,具体可以采用美国国防部先进研究项目局darpa的标准数据集作为构成混合通信协议消息数据流的源消息数据包,通过对源消息数据包的种类和数量的选择来模拟网络环境,例如,用于模拟真实网络环境的源消息数据包包括:3556个arp协议消息数据包,1126个icmp协议消息数据包,12000未知协议消息数据包。

具体实施过程可以是,从网络环境中直接抓取二进制混合通信协议消息数据流,将混合通信协议消息数据流转换成十六进制消息数据流,也可以转换成八进制消息数据流,之所以采用十六进制,是因为十六进制是计算设备,例如计算机最常用的数据制式,相较于八进制,十六进制在后续数据处理过程中,具有更好处理效率且在编程上更易于实现;以两个字节为单位长度切分所述十六进制消息数据流,获得与所述十六进制消息数据流相对应的由单位数据对象构成的单位数据序列,单位数据对象是指同一内容表示的单位数据;如果为八进制,则可以采用单字节为单位长度切分所述八进制消息数据流,获得与八进制消息数据流相对应的单位数据序列。

s020,将所述单位数据序列中的单位数据逐行顺序填入一m行n列的二维矩阵中,得到与所述单位数据序列相对应的单位数据矩阵;其中,m为大于等于2的正整数,n为不大于256的正整数;

具体实施过程可以是,用户基于对网络环境中的混合通信协议消息数据流具有的协议种类数的区间范围认识,及从网络环境中获得的混合通信协议消息数据流的数据量,建立一个m行n列的二维矩阵,为了提高通过二维矩阵处理混合通信协议消息数据流的能力,m为大于等于2的正整数,n为不大于256的正整数;将步骤s010中得到的单位数据序列逐行顺序填入得到与单位数据序列相对应的单位数据矩阵,该相对应,具体可以是单位数据在单位数据序列中的位置与单位数据在单位数据矩阵中的位置相对应。

由此可知,就单位数据的位置信息而言,单位数据序列与单位数据矩阵只是表现形式不同,所能体现的单位数据的位置信息是相同的,将单位数据序列转换成单位数据矩阵,可通过单位数据矩阵的行直观体现基于同一通信协议的消息数据,及可通过统计单位数据对象在列中出现的频次,发现频繁单位数据对象,在基于数据包技术形成的消息数据中,地址信息是出现最为频繁的信息。

s030,遍历所述单位数据矩阵,逐列统计每一单位数据对象在所述单位数据矩阵的每一列中的出现次数,得到单位数据对象列出现的频次表;统计每一单位数据对象出现过的所述单位数据矩阵行的行号,得到单位数据对象行出现的行号集;所述单位数据对象为同一内容表示的单位数据;

具体实施过程可以是,以步骤s020中得到的单位数据矩阵,作为统计样本空间,遍历单位数据矩阵,逐列统计每一单位数据对象在单位数据矩阵的每一列中的出现次数,得到单位数据对象列出现的频次表,频次表中出现频次高的单位数据对象通常为位于数据包帧头或者帧尾的网络地址信息;统计每一单位数据对象出现过的单位数据矩阵行的行号,得到单位数据对象行出现的行号集,同时出现在同一行的多个单位数据对象通常为同一单通信协议的消息数据。

s040,基于所述单位数据对象列出现的频次表,获得所述单位数据矩阵的每一列中列出现频次最高的单位数据对象,在此基础上,再基于一预设的列出现频次下限阈值和一预设的列出现频次上限阈值,得到p个目标单位数据对象;其中,每个所述目标单位数据对象具有一个行号集,p为不大于n的正整数;

其中,所述列出现频次下限阈值为大于或者等于2的正整数,所述列出现频次上限阈值为不大于256的正整数,所述列出现频次上限阈值大于所述列出现频次下限阈值。

具体实施过程可以是,基于步骤s030中得到的单位数据对象列出现的频次表,预选出单位数据矩阵n列的每一列中出现次数最多的单位数据对象,共n个,然后,再基于一预设的列出现频次下限阈值和一预设的列出现频次上限阈值,其中,列出现频次下限阈值为大于或者等于2的正整,列出现频次上限阈值为不大于256的正整数,对预选出的n个单位数据对象进行第二次筛选,将大于列出现频次上限阈值的预选出的单位数据对象去掉,大于列出现频次上限阈值的预选出的单位数据对象主要是消息数据包中的标识名称字段,例如源地址、目标地址,虽然与消息数据的网络地址有关,但,其是网络地址的干扰项,将小于列出现频次下限阈值的预选出的单位数据对象去掉,小于列出现频次下限阈值的预选出的单位数据对象主要是数据包中数据部分频繁出现的单位数据对象,其与消息数据的网络地址无关。通过上述步骤,可得到p个目标单位数据对象,该p个目标单位数据对象与消息数据的网络地址相关度最高,每个目标单位数据对象具有一个行号集,p为不大于n的正整数。

s050,从p个所述目标单位数据对象的p个行号集中得到行号个数最多的行号集;

具体实施过程可以是,步骤s040中得到的p个目标单位数据对象,每个目标单位数据对象具有一个行号集,统计p个行号集的行号个数,获得行号个数最多的行号集。

s060,在将所述行号个数最多的行号集中的行号加入结果集后,将p个行号集中的每个集合中元素没被加入到所述结果集中的行号集作为一个结果集更新源行号集,以所述结果集为交集参照集合,遍历所有所述结果集更新源行号集,计算每个所述结果集更新源行号集与所述结果集的交集率,基于所述交集率小于预设不重复率值,将小于所述预设不重复率值的交集率所对应的结果集更新源行号集中的行号加入到所述结果集中,完成一次结果集更新;基于上一次更新得到的所述结果集作为下一次所述结果集更新的所述交集参照集合,对上一次更新得到的所述结果集进行再一次更新,当每个所述结果集更新源行号集与所述结果集的交集率均大于所述不重复率值时,得到与所述预设不重复率值对应的最终结果集;

具体实施过程可以是,将步骤s050得到的行号个数最多的行号集的行号加入结果集,得到初始结果集,以初始结果集为交集参照集合,将p个行号集中的每个集合中元素没被加入到结果集中的行号集作为一个结果集更新源行号集,对结果集进行更新,更新过程具体可以是,遍历所有结果集更新源行号集,计算每个结果集更新源行号集与结果集的交集率,每个结果集更新源行号集与结果集的交集率的计算公式为:

r=n(si∩rset)/nrset

其中,r为交集率,si为第i个结果集更新源行号集,i为小于p的正整数,rset为结果集,nrset为结果集中的行号个数,n(si∩rset)为第i个结果集更新源行号集与结果集交集的行号个数。

基于预设不重复率值与交集率的数值大小关系判断是否采用与交集率对应的结果集更新源行号集,对结果集进行行号更新。其中,预设不重复率值的取值区间,具体可以是51%~98%。

在交集率小于预设不重复率值的情况下,将交集率所对应的结果集更新源行号集中的行号加入到结果集中,完成一次结果集更新;

基于上一次更新得到的结果集作为下一次结果集更新的交集参照集合,对上一次更新得到的结果集进行再一次更新,当每个结果集更新源行号集与结果集的交集率均大于不重复率值时,得到与预设不重复率值对应的最终结果集。

s070,统计并将所述最终结果集中的行号个数作为网络消息识别过程中k-means算法的k值。

具体实施过程可以是,统计最终结果集中的行号个数,该行号个数为p个目标单位数据集中出现的单位矩阵的行号,每一个行中出现的单位数据对象,可以认为是一个单通信协议消息数据的网络地址信息,最终结果集中多少个行号,就可认为混合多通信协议中具有多个个单通信协议,在k-means算法网络消息过程中,一个聚类中心对应一个单通信协议,因此,可将最终结果集中的行号个数作为网络消息识别过程中k-means算法的k值。

为了使获得的最终结果集中的行号个数更接近于所述混合通信协议消息数据流中具有的协议种类数,进一步的,所述方法还包括:

所述预设不重复率值为q个,获得与q个所述预设不重复率值对应的q个所述最终结果集,将计算得到的q个所述最终结果集中的行号个数平均值的取整值作为网络消息识别过程中k-means算法的k值,其中,q为不小于2的正整数。

为了使平均值的取整值更接近于所述混合通信协议消息数据流中具有的协议种类数,进一步的,当q为不小于5的正整数时,执行步骤:所述预设不重复率值为q个,获得与q个所述预设不重复率值对应的q个所述最终结果集,将计算得到的q个所述最终结果集中的行号个数平均值的取整值作为网络消息识别过程中k-means算法的k值的过程,包括:

基于q个所述预设不重复率值,获得与q个所述预设不重复率值对应的q个所述最终结果集:

以所述预设不重复率值为x轴,以与所述不重复率值对应的最终结果集的行号个数为y轴,得到所述预设不重复率值与所述最终结果集的行号个数之间的对应关系曲线;

将斜率为0.8~1.2的对应关系曲线区间作为行号个数平均值计算区间,通过计算得到所述行号个数平均值计算区间的所述最终结果集的行号个数平均值,以所述最终结果集的行号个数平均值的取整值作为网络消息识别过程中k-means算法的k值。

当预设不重复率值为q个时,采用每个预设不重复率值对结果集进行更新的过程可参照步骤s060,在此不再一一赘述。对q个预设不重复率值对应得到q个最终结果集中的行号个数取平均值,可使作为网络消息识别过程中k-means算法的k值更接近于混合多通信协议中的单通信协议种类,这样,k值的有效性更高,更能缩短后续采用k-means算法获得单通信协议的网络地址信息的时间开销。

本发明实施例中提供的网络消息识别过程中k-means算法的k值确定方法,基于网络地址信息是通信协议消息中频繁出现的信息且均出现在数据包的帧头或者帧尾,同一通信协议消息的网络地址信息为相同的单位数据对象构成的消息且要么在帧头中出现要么在帧尾中出现的技术特点,通过将从网络环境中获得的混合通信协议消息数据流处理成由单位数据对象构成的单位数据序列,采用与单位数据序列位置上能一一对应的单位数据矩阵作为网络地址信息发现的载体,基于单位数据对象在单位数据矩阵中列出现的频次得到可以认定为网络地址信息的p个目标单位数据,对p个目标单位数据行出现的行号集进行分析,得到能表征混合通信协议消息数据流中的协议种类数的最终结果集中的行号个数,混合通信协议消息数据流中的协议种类数与表征k-means算法的初始类聚类中心数值k相近,因此,可将最终结果集中的行号个数作为网络消息识别过程中k-means算法的k值。从而提高从混合多通信协议消息中分离出未知单私有通信协议消息的有效性,及大幅缩短算法时间开销。

前述本发明网络消息识别过程中k-means算法的k值确定方法实施例的任一实施例揭示的过程所对应的步骤,可根据一个或者多个步骤所能实现的功能及具体实施应用环境,基于逻辑功能划分得到与任一实施例揭示的过程所对应的多个功能模块,一个功能模块可以同一个步骤相对应,也可以同两个或者两个以上步骤相对应,各个功能模块可以单独物理存在,两个或者两个以上功能模块可共同物理存在。在执行上,可通过执行与功能模块相对应的指令,实现功能模块所对应的步骤的执行,用于执行与功能模块相对应的指令的执行主体可以是一个,也可以是多个。

在不同的具体实施例中,由于所要实现的功能存在差异,具体实施应用环境也可能会有所不同,因此,得到的与具体实施例揭示的过程所对应的多个功能模块,也会存在差异,在一些具体实施例中,可以将一些功能模块省略,或不执行,在一些具体实施例中,可以将两个或两个以上功能模块集成在一个功能模块中,在一些具体实施例中,可将一个或者一个以上功能模块结合或者集成到另一个系统中。

前述基于逻辑功能划分得到的本发明网络消息识别过程中k-means算法的k值确定方法实施例的任一实施例揭示的过程所对应的多个功能模块,可以通过程序代码实现得到相对应的程序,所述程序,可安装于存储器中并包括一个或多个由处理器执行的软件功能模块,处理器执行与程序相对应的指令执行与功能模块相对应的方法步骤。

所述程序的形式,可以是外部或驻留的软件、固件或微码(源代码或目标代码),这时,所述程序可以与数据处理系统连接,被其使用;本发明网络消息识别过程中k-means算法的k值确定方法实施例的任一实施例揭示的过程所对应的所述程序,可以以处理器可执行的非易失的程序代码的计算机可读介质来提供,所述计算机可读介质为存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前述本发明网络消息识别过程中k-means算法的k值确定方法实施例中的网络消息识别过程中k-means算法的k值确定方法。所述计算机可读介质可以是任何适合包含、存储、通信、传播或传输程序的元件,具体可以是电子的、磁性的、光学的、电磁的、红外的或半导体的类型。例如,可移动盘、磁带、卡片、电线、光纤、无线连接、网络、广播波、可以在其中预加载程序的固定盘等等。

前述基于逻辑功能划分得到的本发明网络消息识别过程中k-means算法的k值确定方法实施例的任一实施例揭示的过程所对应的多个功能模块,也可以通过逻辑电路来实现,相应地,本发明网络消息识别过程中k-means算法的k值确定方法实施例的任一实施例揭示的过程,利用一个硬件结构(例如,集成在半导体材料的芯片中),或者适当编程的或以其他方式配置的软件与硬件组合来实现。

无论通过哪一种实现方式来实现本发明网络消息识别过程中k-means算法的k值确定方法实施例的任一实施例揭示的过程所对应的步骤,均可得到本发明安全设备实施例。由于其与本发明网络消息识别过程中k-means算法的k值确定方法实施例基于相同的发明构思,在所要解决的技术问题、实现功能的工作过程、所能获得的技术效果等方面,均与本发明网络消息识别过程中k-means算法的k值确定方法实施例相同或者相近。因此,所属领域的技术人员,可参照本发明安全设备实施例,理解本发明网络消息识别过程中k-means算法的k值确定方法实施例的具体实现形式,同样地,可参照本发明网络消息识别过程中k-means算法的k值确定方法实施例中的对方法步骤的具体描述,理解本发明安全设备实施例中的各执行主体执行与功能模块相对应的指令时,所执行与功能模块相对应的方法步骤的过程。

为描述的方便和简洁,在对基于本发明网络消息识别过程中k-means算法的k值确定方法实施例得到的本发明安全设备实施例进行说明的过程中,也不再一一具体赘述,可参照本发明网络消息识别过程中k-means算法的k值确定方法实施例理解的内容部分。

基于本发明网络消息识别过程中k-means算法的k值确定方法实施例的技术方案,本发明实施例中提供一种安全设备,所述安全设备与所述网络消息识别过程中k-means算法的k值确定方法属于相同的发明构思。所述安全设备,为本发明网络消息识别过程中k-means算法的k值确定方法实施例应用,形成的具有网络消息分析和/或识别能力基于网路的硬件设备或者云平台;就硬件设备而言,其具体可以是网络交换设备、网络安全设备、网络终端设备,其中,网络交换设备,具体可以是网络交换机、路由器、网关、中继器、网桥;网络安全设备,具体可以是硬件防火墙、入侵检测设备、安全网关;网络终端设备,具体可以服务器、工控计算机、工作站、客户端、移动终端等用户设备。

图2示出了本发明实施例中提供的一种安全设备的结构示意图。

现参照图2所示,该安全设备100包括:总线130,连接总线130的至少一个处理器110,以及与至少一个处理器110通信连接存储器120。其中,存储器120存储有可被至少一个处理器110执行的指令,指令被至少一个处理器110执行,以在执行所述指令时执行如下步骤:

将从网络环境中获得的混合通信协议消息数据流转换成十六进制消息数据流,以两个字节为单位长度切分十六进制消息数据流,获得与十六进制消息数据流相对应的单位数据序列;

将单位数据序列中的单位数据逐行顺序填入一m行n列的二维矩阵中,得到与单位数据序列相对应的单位数据矩阵;其中,m为大于等于2的正整数,n为不大于256的正整数;

遍历单位数据矩阵,逐列统计每一单位数据对象在单位数据矩阵的每一列中的出现次数,得到单位数据对象列出现的频次表;统计每一单位数据对象出现过的单位数据矩阵行的行号,得到单位数据对象行出现的行号集;单位数据对象为同一内容表示的单位数据;

基于单位数据对象列出现的频次表,获得单位数据矩阵的每一列中列出现频次最高的单位数据对象,在此基础上,再基于一预设的列出现频次下限阈值和一预设的列出现频次上限阈值,得到p个目标单位数据对象;其中,每个目标单位数据对象具有一个行号集,p为不大于n的正整数;

从p个目标单位数据对象的p个行号集中得到行号个数最多的行号集;

在将行号个数最多的行号集中的行号加入结果集后,将p个行号集中的每个集合中元素没被加入到结果集中的行号集作为一个结果集更新源行号集,以结果集为交集参照集合,遍历所有结果集更新源行号集,计算每个结果集更新源行号集与结果集的交集率,基于交集率小于预设不重复率值,将小于预设不重复率值的交集率所对应的结果集更新源行号集中的行号加入到结果集中,完成一次结果集更新;基于上一次更新得到的结果集作为下一次结果集更新的交集参照集合,对上一次更新得到的结果集进行再一次更新,当每个结果集更新源行号集与结果集的交集率均大于不重复率值时,得到与预设不重复率值对应的最终结果集;

统计并将最终结果集中的行号个数作为网络消息识别过程中k-means算法的k值。

在计算每个结果集更新源行号集与结果集的交集率的过程中,至少一个处理器110具体通过以下公式计算交集率:

r=n(si∩rset)/nrset

其中,r为交集率,si为第i个结果集更新源行号集,i为小于p的正整数,rset为结果集,nrset为结果集中的行号个数,n(si∩rset)为第i个结果集更新源行号集与结果集交集的行号个数。

在确定网络消息识别过程中k-means算法的k值的过程中,至少一个处理器110还用于:

预设不重复率值为q个,获得与q个预设不重复率值对应的q个最终结果集,将计算得到的q个最终结果集中的行号个数平均值的取整值作为网络消息识别过程中k-means算法的k值,其中,q为不小于2的正整数。

在该过程中,至少一个处理器110具体用于:

当q为不小于5的正整数时,执行步骤:预设不重复率值为q个,获得与q个预设不重复率值对应的q个最终结果集,将计算得到的q个最终结果集中的行号个数平均值的取整值作为网络消息识别过程中k-means算法的k值的过程,包括:

基于q个预设不重复率值,获得与q个预设不重复率值对应的q个最终结果集:

以预设不重复率值为x轴,以与不重复率值对应的最终结果集的行号个数为y轴,得到预设不重复率值与最终结果集的行号个数之间的对应关系曲线;

将斜率为0.8~1.2的对应关系曲线区间作为行号个数平均值计算区间,通过计算得到行号个数平均值计算区间的最终结果集的行号个数平均值,以最终结果集的行号个数平均值的取整值作为网络消息识别过程中k-means算法的k值。

其中,至少一个处理器110在获得p个目标单位数据对象过程中,所采用的列出现频次下限阈值为大于或者等于2的正整数,列出现频次上限阈值为不大于256的正整数,列出现频次上限阈值大于列出现频次下限阈值。

至少一个处理器110在获得与预设不重复率值对应的最终结果集的过程中,所采用的预设不重复率值的取值区间为51%~98%。

基于上述技术方案,本发明实施例中,通过将从网络环境中获得的混合通信协议消息数据流处理成由单位数据对象构成的单位数据序列,然后将单位数据序列转换成位置上一一对应的单位数据矩阵,以单位数据矩阵作为网络地址信息发现的载体,基于单位数据对象在单位数据矩阵中列出现的频次得到可以认定为网络地址信息的p个目标单位数据,基于同一协议的网络地址信息集中出现在单位数据矩阵列的同一行,对p个目标单位数据行出现的行号集进行分析,以结果集更新的方式,实现行号甄选,得到能表征混合通信协议消息数据流中的协议种类数的最终结果集中的行号个数,该协议种类数与表征k-means算法的初始类聚类中心数值k相近,因此,可将最终结果集中的行号个数作为网络消息识别过程中k-means算法的k值。从而提高从混合多通信协议消息中分离出未知单私有通信协议消息的有效性,及大幅缩短算法时间开销。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1