一种基于序列比对的自适应应用层网络协议报文聚类方法

文档序号:10655204阅读:599来源:国知局
一种基于序列比对的自适应应用层网络协议报文聚类方法
【专利摘要】一种基于序列比对的自适应应用层网络协议报文聚类方法,首先对报文进行划分得到各个报分词文序列,然后根据偏移、宽度、语义、类型、数据内容计算各个报分词文序列中分词的相似度,并使用位置和距离对分析相似度进行修正,进而得到各个报文分析序列的相似度,最后计算多个聚类数量下的聚类有效性评价指标,将聚类有效性评价指标最大值对应的聚类作为聚类结果。本发明与现有技术相比,通过综合考察分词的多个属性来对报文分词的相似程度进行比对,改善了以往序列比对中元素的比较仅考虑数值的片面性,能够更加全面准确地判断网络报文中分词的相似性,从而提高整体分析的性能。
【专利说明】
-种基于序列比对的自适应应用层网络协议报文聚类方法
技术领域
[0001] 本发明设及一种应用层网络协议报文聚类方法,特别是一种基于序列比对的自适 应应用层网络协议报文聚类方法。
【背景技术】
[0002] 当前互联网中安全问题日益突出,各种攻击手段层出不穷,而且呈现出通讯更隐 秘,攻击力更强等特点。在僵尸网络防控、深度数据包分析,Fuzzing测试等安全研究和技术 领域,对于使用未知协议通讯的发现和检测具有重要意义。而对于未知协议,研究其工作原 理,如协议报文特征和协议报文格式等信息对于进一步加强网络监控和安全管理与分析等 工作影响深远。高效准确的逆向分析网络中未知通讯协议的相关信息已成为目前网络安全 领域的一个重点研究内容。
[0003] 网络协议报文格式逆向分析的目标是通过分析未知协议格式的报文数据或分析 协议实体对报文数据的处理过程,获得报文的结构信息,并在此基础上推断报文中各个字 段的语义信息。目前对协议报文的逆向分析主要有两种方式:基于网络的分析和基于程序 的分析。基于程序的分析通过对协议程序进行动态污点分析,具有较高的准确度。但多数情 况下协议程序无法获得,使得基于网络报文的数据分析方法日渐趋于主流。
[0004] 目前通过网络数据进行协议格式逆向分析所使用的主要方法如下:网络协议报文 相似性度量方法主要借鉴文本序列比对或生物信息中基因序列比对的技术,有基于最长公 共子序列的序列比对和基于编辑距离的序列比对两种方法;网络协议报文聚类的方法主要 采取机器学习和数据挖掘中的聚类划分方法,包含基于均值的聚类和基于中屯、点的聚类两 种数据聚类方法,其中,网络协议报文相似度度量的结果是报文聚类的重要依据。在相似性 度量和聚类的过程中,分别存在如下的问题:
[0005] 报文相似性度量通过引进文本序列比对或基因序列比对中的方法来实现,能够在 一定程度上度量组成两个报文的字段序列的相似度。但是在比较的过程中,没有考虑到协 议报文结构独有的特点。在网络协议的报文结构中,通常存在位于报文前部的报文首部,其 中包含大部分协议报文格式的信息,尾部可能存在少量校验等信息,而带有负载的报文中 部大多为负载数据,与协议报文格式无关。因此,在进行报文相似性度量的过程中,如果把 报文不同位置的内容相同对待,就会很容易受到负载数据的影响,并且忽略对报文首尾位 置报文格式的分析和识别。
[0006] 在目前常用的聚类方法中,基于中屯、点的聚类更加适用于协议数据包格式聚类的 场景。但是基于中屯、点的聚类在执行时,需要事先输入目标聚类的数量,而运在分析未知协 议时是无法事先获知该协议实际报文种类的。此外,对于聚类数量的确定,基于中屯、点的聚 类没有给出具体的方法,而人工判断也缺乏合适的依据。

【发明内容】

[0007] 本发明解决的技术问题是:克服现有技术的不足,提供了一种通过综合考察报文 分词的多个属性来对报文分词的相似程度进行比对,能够更全面准确地判断网络报文中分 词的相似性,从而提高整体分析的性能的基于序列比对的自适应应用层网络协议报文聚类 方法。
[0008] 本发明的技术解决方案是:一种基于序列比对的自适应应用层网络协议报文聚类 方法,包括如下步骤:
[0009] (1)获取需要进行报文聚类的报文,分别对各个报文进行划分得到分词,进而得到 各个报文对应的报文分词序列;所述的分词为报文中的各个字段;
[0010] (2)从步骤(1)得到的报分词文序列中任意选择两个,分别记为T"、Fn,计算报文分 词序列Tm中第i个分词与报文分词序列Fn中第j个分词关于偏移的相似度SC〇reP(Tm[i],Fn 山).0为
[0011]
[0012]
[OOK] Tm[i].0=Fn[j].0表示报文分词序列Tm中第i个分词与报文分词序列Fn中第j个分 词均包括偏移,Tm[i] .O声Fn[j] .O表示报文分词序列Tm中第i个分词与报文分词序列Fn中第 j个分词不均包括偏移,1 = 1,2,3...111〇 = 1,2,3...11,111为报文分词序列1"中分词的个数,11 为报文分词序列Fn中分词的个数,Tm. 1为报文分词序列Tm的长度,Fn. 1为报文分词序列Fn的 长度;所述的偏移为分词首位到当前报文分词序列头部的距离;
[0014] (3)计算报文分词序列Tm中第i个分词与报文分词序列Fn中第j个分词关于宽度的 相似度 scoreP(Tm[i],Fn[j]) .W为
[0015]
[0016] 其中,Tm[i] .W = Fn[ j] .W表示报文分词序列Tm中第i个分词与报文分词序列Fn中第 j个分词宽度相同,Tm[i] .W声Fn[j] .W表示报文分词序列Tm中第i个分词与报文分词序列Fn 中第j个分词宽度不同;所述的宽度为分词的长度;
[0017] (4)计算报文分词序列Tm中第i个分词与报文分词序列Fn中第j个分词关于语义的 相似度3(30的?(1"山少山]).3为
[001 引
[0019]其中,Tm[i] .S=FnU] .S表示报文分词序列Tm中第i个分词与报文分词序列Fn中第 j个分词语义相同,Tm[i]. S声Fn[j]. S表示报文分词序列Tm中第i个分词与报文分词序列Fn 中第j个分词语义不同;所述的语义为分词的含义;
[0020] (5)计算报文分词序列Tm中第i个分词与报文分词序列Fn中第j个分词关于类型的 相似度 scoreP(Tm[i],Fn[j]).t 为
[0021]
[0022] 所还的类型刃分词类型,其甲,分词类型包巧义本、二巧制,TmLi」.t = Fn[j].t表示 报文分词序列Tm中第i个分词与报文分词序列Fn中第j个分词类型相同,Tm[i].t声Fn[j].t 表示报文分词序列Tm中第i个分词与报文分词序列Fn中第j个分词类型不同;
[0023] (6)计算报文分词序列Tm中第i个分词与报文分词序列Fn中第j个分词关于数据内 容的相似度 scoreP(Tm[i],Fn[j]).d 为
[0024]
[0025] 所述的数据内容为分词的取值;其中,Tm[i].d = Fn[j].d表示报文分词序列Tm中第 i个分词与报文分词序列Fn中第j个分词数据内容相同,Tm[i] .d声Fn[ j] .d表示报文分词序 列Tm中第i个分词与报文分词序列Fn中第j个分词数据内容不同;
[0026] (7)计算得到报文分词序列Tm中第i个分词与报文分词序列Fn中第j个分词的相似 度scoreP(Tm[i],Fn[j])为
[0027] scoreP(Tm[i],Fn[ j]) = scoreP(Tm[i],Fn[ j]) .o+scoreP(Tm[i],Fn[ j]) .w+scoreP (Tm[i],Fn[ j]) .s+scoreP(Tm[i],Fn[ j]).t+scoreP(Tm[i],Fn[ j]).d;
[0028] (8)分别计算报文分词序列Tm中第i个分词与报文分词序列Fn中第j个分词的相对 位置dis(Tm山,。山])=巾山.0斗。。'].〇|,进而计算得到修正后的报文分词序列1"中第1 个分词与报文分词序列Fn中第j个分词的相似度SC〇reD(Tm[i],Fn[j])为
[0029]
[0030] (9)将3(3〇'6〇(1^1」^。^'」)作为最终的报文分词序列1?中第1个分词与报文分词 序列Fn中第j个分词的相似度3(30'6(1"[。术。。']),重复步骤(2)-步骤(8)得到各个报文分 词序列中各个分词的相似度;
[0031] (10)计算报文分词序列Tl与报文分词序列Fj的相似度MS[i,j]为
[0032]
[0033] 其中,i的初值为l,j的初值为l,Ti为包括报文分词序列Tm中第e个分词的报文分词 序列,e = l,2,3. . . i ;
[0034] (ll)i = i+l,重复步骤(10),直至i=m;
[0035] (12) j = j + l,重复步骤(10)-步骤(11),直至j=n,得到报文分词序列Tm与报文分 词序列Fn的相似度MS[m,n],从而得到各个报文分词序列间的相似度;
[0036] (13)根据步骤(12)得到的各个报文分词序列间的相似度,对各个报文分词序列进 行聚类,得到不同的报文序列聚类,并记为Ci,C2,. . .,Ck,其中,k为聚类个数,k=l,2, 3. . .g,g为报分词文序列个数;
[0037] (14)计算聚类有效性评价指标Dunn化)为
[00;3 引
[0039] d(Tm,Fn)=min{dis(Tm[i],Fn[ j])};
[0040] (15)选取聚类有效性评价指标Dunn化)最大的报文序列聚类Ci,C2,. . .,Ck作为聚 类结果。
[0041 ]所述的对各个报文分词序列进行聚类的方法为PAM算法。
[0042] 本发明与现有技术相比的优点在于:
[0043] (1)本发明通过设计基于多因素加权评分的报文分词序列比对方案,克服了 W往 序列比对中忽略网络报文自身结构特性的缺陷,实现了对数据包的格式结构相似性更加准 确的度量;
[0044] (2)本发明通过设计报文自适应聚类方案,解决了未知协议报文聚类过程中需要 预先指定聚类数量的问题,通过使用聚类结果分析与参数反馈的有关方法,实现了聚类过 程自动递归执行,且有效地提高了分析效率和结果准确度;
[0045] (3)本发明通过综合考察分词的多个属性来对报文分词的相似程度进行比对,改 善了 W往序列比对中元素的比较仅考虑数值的片面性,能够更加全面准确地判断网络报文 中分词的相似性,从而提高整体分析的性能。
【附图说明】
[0046] 图1为本发明网络通信数据收集过程;
[0047] 图2为本发明一种基于序列比对的自适应应用层网络协议报文聚类方法流程图。
【具体实施方式】
[004引如图1所示为网络通信数据收集过程,首先使用数据包捕获工具如Wireshark或 tcpdump等在进行通信的两个或多个协议实体之间对通信数据包进行捕获,然后将运些协 议数据包进行分解,得到未知网络协议对应的报文序列作为分析对象。本发明在针对未知 网络协议通过通信数据报文进行逆向分析的过程中,对报文相似度比对和报文聚类方法进 行改进,设计针对网络协议数据包格式的报文字段序列相似度比对方法和具有反馈自动调 节功能的聚类算法,提高未知网络协议逆向分析的自动化程度和准确度。
[0049]对于报文相似性度量,本发明方法重点考察网络协议数据包首部和尾部一定范围 内的数据相似度,结合并改进现有序列比对技术,设计一种新型针对于未知协议的报文相 似性度量方法。对于报文聚类,本发明方法通过引入聚类结果质量评价指标,通过反馈过程 来影响和调节聚类的开始参数(主要是目标聚类的数量),使得整个分析过程脱离人工干 预,自动高效地选择出合理的最优报文聚类,下面结合附图对本发明方法进行详细说明。 [0050] -、报文分词序列比对原理及实现方法,在格式逆向的预处理阶段,将截获的未知 协议数据包进行初步字段划分,将报文分解为由一系列划分出的分词(即字段)组成的分词 序列。
[0化1 ] 本发明基于编辑距离的UKLevenshtein Distance)算法,通过进行相应的改造, 设计符合报文分词序列比对特点的基于序列比对的报文相似度计算方法(MS算法,Message Similarity)来度量和比较两个聚类中报文分词序列的相似程度。在使用时,根据报文序列 的特点,对其基本评分规则进行设计,并根据位置和距离对分词匹配相似程度的影响设计 相应的位置加权和距离加权进而优化评分规则。
[0052] 1)设置序列元素相似度基本评分规则
[0053] 基本评分规则是指,在度量两个序列的相似程度的过程中,首先需要对两个相关 元素的相似程度进行评价。在描述协议格式的分词序列中,对分词属性的描述包含多个方 面,如目前已经可W分析的偏移(offset,分词首位到报文头部的距离),宽度(width,分词 本身的长度),语义(syntax,分词的含义,如长度、序列等,语义识别在预处理过程进行),类 型(type,本发明中定义为文本和二进制两种类型)和数据内容(data,即该分词本身的取 值)。因此对分词的匹配采用分级方式进行评分,共分为五级:只有一项相同(如偏移相同) 则评分为1,两项相同(如偏移和宽度相同)则评分为2,若五项全部相同,则评分为5。也就是 说,在基本评分时,五个属性各自权值也就是基本分值为1。
[0054] 基本评分规则形式化描述如下:
[0化5] (1)
[0化6] (2)
[0化7] (3)
[0化引 (斗)
[0化9] 巧)
[0060] 货)
[0061] 其中,Ti[i],T2[j]表示分词序列Tl和T2中分别在位置i和位置j进行相似度评价的 两个分词,i、j为正整数,点下标表示分词的偏移、宽度等属性,0表示偏移,W表示宽度,S表 示语义,t表示类型,d表示数据内容,scoreBase(Tl[ i ],T2[ j ]). d表示Tl[ i ],T2[ j ]关于数据 内容的相似度评价基本评分结果,ScoreBase (Tl [ i ],T2 [ j ])为相似度评价基本评分结果,Tl
[i].〇 = T2[j].o表示报文分词序列Tl中第i个分词与报文分词序列T2中第j个分词均包括偏 移属性,Ti[i].o声T2[j].o表示报文分词序列Tl中第i个分词与报文分词序列T2中第j个分 词不均包括偏移属性,Ti[i].w = T2[j].w表示报文分词序列Tl中第i个分词与报文分词序列 T2中第j个分词的宽度相同,Ti[i] .W声T2[ j] .W表示报文分词序列Tl中第i个分词与报文分 词序列T2中第j个分词的宽度不同,Ti[i].s = T2[j].s表示报文分词序列Tl中第i个分词与 报文分词序列T2中第j个分词的语义相同,Ti[i].s声T2[j].s表示报文分词序列Tl中第i个 分词与报文分词序列T2中第j个分词的语义不同,Ti[i].t = T2[j].t表示报文分词序列Tl中 第i个分词与报文分词序列T2中第j个分词的类型相同,Ti[i].t声T2[j].t表示报文分词序 列Tl中第i个分词与报文分词序列T2中第j个分词的类型不同,Ti[i].d = T2[j].d表示报文 分词序列Tl中第i个分词与报文分词序列T2中第j个分词的数据内容相同,Ti[i].d声T2[j] .d表示报文分词序列Tl中第i个分词与报文分词序列T2中第j个分词的数据内容不同。
[0062] 2)通过位置加权改进基本评分规则
[0063] 位置加权是指:在报文序列中,通常报文头部是报文格式集中变化的地方,报文中 部的大部分可能是数据域,尾部可能有若干报文格式域,但是数量不多。因此,对分词相似 度评分追加评分规则,使得报文中描述格式的分词序列相对应位置相似时,按照分词相似 度评分从高到低依次设定为报文头部,尾部,中部的优先级考虑优化相似度评分。同时,对 于较长的报文,报文中部的数据对于格式分析的贡献相对较小,所W考虑在长报文的头尾 截取一定长度赋予不同的权值来参加序列相似度比对的评分。分词相似度位置加权评分规 则简要描述及说明(W偏移属性为例)如下:
[0064] <+0.5,+0.4,+0.3,+0.2,+0.1,_,......,-,+0.1,+0.2,+0.3> (7)
[00化]其中,序列开始处的"+0.5,+0.4,+0.3,+0.2,+0.1"表示用于比对的分词在所属序 列中的位置为1-5时,若偏移相同,则所得评分在原有分值的基础上再加上相应的加权值, 例如,当两个序列中第一个分词的偏移相同时,偏移项所得评分为1+0.5 = 1.5分;若偏移不 同,则所得评分在两个附加权值的平均值的基础上加上相应的原有分值,例如,当第一个序 列中第二个分词的偏移属性和第二个序列中第四个分词的偏移相同时,偏移项所得评分为 l+sum(0.4,0.2)/2 = 1.3 分。
[0066] 相应地,序列结尾处的"+0.1 ,+0.2,+0.3"表示用于比对的分词在所属序列中的位 置为后1-3个时,若偏移相同,则所得评分在原有基本权值的基础上再加上相应的分值,例 如,当两个序列中的最后一个分词的偏移相同时,偏移项所得评分为1+0.3 = 1.3分;若偏移 不同,则所得评分在两个附加权值的平均值的基础上加上相应的原有分值,例如,当第一个 序列中最后一个分词的偏移属性和第二个序列中倒数第立个分词的偏移属性相同时,偏移 项所得评分为l+sum(0.3,0.1)/2 = 1.2分。报文序列中间分词偏移项互相匹配时按照普通 的基本权值打分即可,不再另加分值。
[0067] 上述=个位置处的评分优先级依次为:首部、尾部,中间。匹配评分时,W前向优先 级确定位置,W后向优先级确定分值,即当报文较短首部和尾部定义的一部分位置重合时, 根据前向优先级将重合部分的分词定义为首部,其他重合情况处理类似;当首部分词与尾 部分词偏移属性相同时,根据后向优先级将加权分值设置为尾部分词计算加权所得分值, 其他位置不同的加权评分方法计算类似,具体加权分值见公式8,对于其他属性评分的修正 方法与上述评分追加规则相同。位置加权评分规则形式化描述如下:
[0068; 巧)
[0069] 其中,Tl. I和T2. I分别表示Tl和T2两个报文的长度即各自所包含的分词个数。
[0070] 化简后:
[0071]
识)
[0072] 位置加权后的评分规则形式化描述如下:
[0073] (10)
[0074] (11)
[0075] (巧
[0076]
[0077] (14)
[007引 scoreP(Ti[i],T2[j]) = ScoreP(Ti[i],T2[j]).o+scoreP(Ti[i],T2[j]) .w+scoreP (Ti[i],T2[ j]).S (15)+scoreP(Ti[i],T2[ j]).t+scoreP(Ti[i],T2[ j]) .d
[0079] 在后续分析中,使用改进的位置加权评分结果scoreP(Ti[i],T2[j])代替原基本评 分结果scoreBase(Ti[i],T2[ j])。
[0080] 3)通过距离加权改进评分规则
[0081 ]距离加权是指:对两个相应的分词进行匹配,度量其相似度时,其相对距离越大, 相应相似度的评分按一定规则降低。因为对于报文格式域的序列来说,只有在相同或者相 近位置出现相匹配的分词才有意义,所W,对于序列比对中距离比较远的匹配,对其进行适 当罚分,即将其在比对中的分值贡献降低。
[0082]因此,对分词相似度评分追加评分规则,使得两个分词的相似度随着其相对位置 的增大而减小。分词相似度距离加权评分规则形式化描述及说明如下:
[0083]
(1巧
[0084] 其中,3(30'6口(1'1[。^2。'])表示在基本评分和位置加权后得到的相似度分值,山3 (Tl[i],T2[j])表示分词Sl和分词S2的偏移量差值即相对位置,可W通过计算两个分词偏移 属性的差值得到,即diS (Tl「i L T2「H ) = Tl「i L 0-T2「H . O。在两个分词的距离不超过10 时,距离加权的分值3
,在两个分词的距离超 过10之后,即使两个分词非常相似或相同,对于整个报文格式的比对也是没有意义的,因此 将距离加权的结果设置为0。
[00化]举例来讲,如果两个分词的距离为2,贝lJscoreD(Ti[i],T2[ j]) = 0.8*scoreP(Ti
[i] ,了2[ j]),如果两个分词的距离为 3,贝lJscoreD(Ti[i],T2[ j])=〇.7*scoreP(Ti[i],T2
[j] ),如果两个分词的距离为14,则scoreD(Ti[i],T2[ j])=0。
[00化]将经过位置加权和距离加权运算后得到的scoreD(Ti[i],T2[j])作为两个分词比 对得到的相似程度结果score(Tl[ i ],T2 [ j ]) = scoreD(;Tl[ i ],T2[ j ])。
[0087] 4)参考分词相似度设计算法对报文序列相似度进行度量
[0088] 本发明设计的MS(Message SimiIarity)算法采用基于文本编辑距离的方法,对报 文序列比对设计动态规划算法求解。W下首先对报文序列相似度的最优子结构和重叠子问 题进行分析,然后给出一个递归解和算法描述。
[0089] 最优子结构:设两个报文序列分别为Tm=<tl,t2, . . .,*。>和。。=<'1^2, . . .,fn >,Tm和Fn的序列相似度记为MS(Tm,Fn),其中,tl,t2,. . .,tm均为报文分词,fl,f2,. . .,fn均 为报文分词。对于Tm和Fn之间最后一个分词位置的编辑转换方式,可W有如下立种方式实 现:
[0090] (1)序列T的最后一个分词转换为序列F的最后一个分词(或,F的最后一个分词转 换为 T 的最后一个分词),此时,有 15(1'111术)=15(1'111-1术-1) + 3(30'6(1:111,打),其中,3(30'6(1:111, fn)为两个序列最后一个分词tm,fn之间相似度的评分,MS(Tm-l,Fn-l)为最后一个分词的序列 T与去除最后一个分词的序列F的序列相似度;
[0091] (2)序列T添加 fn到序列尾部(或,序列F在尾部删除分词fn),此时,有MS(TmJn) = MS(Tm'Fn-l);
[0092] (3)序列F添加 tm到序列尾部(或,序列T在尾部删除分词tm),此时,有MS(Tm,Fn) = MS(Tm-IjFn) O
[0093] 在运=种方式得到的相似度分值中,选取最大的分值作为最终对序列相似性度量 的结果。
[0094] 在LD算法中,考虑两个元素相同时两个序列最后一个元素对编辑距离不造成影 响,元素不同时需要选取相对最小前缀编辑距离加1,运实际上是将两个序列最后一个元素 的相似程度对序列相似程度的影响二值化为0和1。而在MS算法中,对两个序列中元素的相 似程度采用相似度评分的方法得到更加精确的度量,因此,在考虑元素相似对序列相似性 的影响时,将序列相似度的增量设置为分词的相似度,并且将LD算法中序列元素相同和不 相同的两种情况整合到一起,使用序列元素相似度即分词相似度进行度量。
[OOM]此外,由于LD算法对两个文本(序列)的编辑距离也就是差异程度进行度量,而本 发明所设计的MS算法是对两个序列的相似程度进行度量。由于差异性通常与相似性负相 关,所W,不同于LD算法中选取子问题的最小结果值作为最终结果,MS算法选取子问题中的 最大结果分值作为相似度评价的最终结果。
[0096] 重叠子问题:由最优子问题分析可得,计算两个序列相似度时包含两个序列分别 各自去掉最后一个元素的子问题,即计算MS(TmJn)时,需要对MS(Tm,Fn-l)和MS(Tm-l,Fn)进 行考察,而运两个子问题都包含的子问题是两个原序列都去掉最后一个元素的相似度的问 题,即计算MS(Tm,Fn-l)和MS(Tm-l,Fn)时,都需要计算原本两个序列考察相似度时需要解决的 子问题MS(Tm-l,Fn-l)。也就是说,原问题的子问题中,有两个包含相同的子问题。W此类推, MS算法的多个子问题中存在共享递进的子子问题。
[0097] 递归解:将MS(Ti,門)记为MS[i,j],根据算法思想和W上分析,设计算法的递归求 解方法如下:
[009引
(17)
[0099] 具体求解步骤说明如下:
[0100] 第一步:求解过程初始化,对于i或j为0的位置,设置MS[i,j]为0;
[0101 ]第二步:按照递归求解方程,i,j各自依次从小到大的顺序求解MS[ i,j ];
[0102] 第S步:当i,j取到范围内最大值,即MS[i,j]表示两个完整报文分词序列的相似 度时,求解结束。
[0103] 该算法的时间复杂度和空间复杂度均为〇(mn),其中,m,n分别为两个分词序列的 规模,即分词序列所含分词数量:m = Len(A),n = Len(B)。本发明比较报文分词序列相似度 的方法将用于本发明报文聚类过程的聚类对象距离度量,因此所设及到的报文也可称之为 用于比对和分析的格式模板。
[0104] 二、报文自适应聚类原理及实现方案
[0105] 目前使用的聚类算法需要将聚类的个数作为聚类算法的输入参数,但是对于运个 参数的设定,并没有任何先验知识可W参考。而聚类的结果包括聚类个数、聚类中报文的分 布W及聚类后得到的报文格式模版都对整体协议格式逆向的结果产生重要的影响。而在运 之中,聚类的个数将在聚类过程中影响最终分析得到的报文分布和格式模版。所W,需要对 PAM聚类的输入参数即目标聚类的个数进行选择,来获得较好的分析结果。为此,考虑引入 一种聚类评价指标(Clustering Validity Index)来对聚类结果进行考量,通过调整不同 的输入参数,来找到能够使得聚类效果达到最优的聚类个数。
[0106] 常用的聚类有效性评价指标有Dunn指标,DBI指标(DaviesBouldin Index),CH有 效性指标Waiinski-HarabaszIndex) ,Partition Coeff icient,S有效性指标(SiIhouette Index) ,CS Index,Separation Index等。根据目前聚类对象数据类型和聚类方式,选择 Dunn指标作为本发明聚类归约阶段的聚类评价指标,用于指导选择聚类的个数,对于其他 指标的效果测试和比较暂且留作将来进一步研究的工作内容。
[0107] 具体地,Dunn指标是一种评价同一类别样本的紧密程度与不同类别之间样本分散 程度的一个函数,其定义如下:
[010 引
(18)
[0109] 其中,Ci,C2, . . .,Ck表示不同的报文序列I 示 聚类Cl的直径,x、y为聚类Cl中的两个报文分词序巧 表 示两个聚类Cl, Cj之间的距离,X表示聚类Cl中的报文分词序列、y表示聚类Cj中的报文分词 序列,d(x,y)表示报文分词序列X与报文分词序列y的距离,即报文序列X中分词与报文序列 7中分词的最近距离,(1^,7)=111;[]1{(113^[;[],7。'])},义[;[]为报文分词序列中的第;[个分 词,y[ j ]为报文分词序列中的第j个分词,k为报文聚类数量。
[0110] 式(18)中,分子表示类间样本的分散程度,分母表示类内样本的紧密程度。Dunn 化)的值越大,表示聚类的结果越优。
[0111] 本发明WPAM算法为基础,在聚类数目的有效取值范围内进行PAM聚类,选取结果 最优即能够使得Dunn化)最大的k值作为最优聚类数目并确定最优聚类结果,设计基于Dunn 指数的改进PAM聚类算法如下:
[0112] W递归聚类结果中聚类内报文通用格式为对象,使用报文距离序列比对算法计算 两个对象之间的距离,使用PM算法对有效的聚类数目k计算聚类结果的Dunn化),统计具有 最大Dunn化)的聚类数目作为最优聚类结果输出。
[0113] 求解过程说明:
[0114] 第一步:设置聚类数量取值范围为不超过报文数量的正整数;
[0115] 第二步:选取初始聚类数量(1或最大值)使用PAM算法进行聚类,记录聚类结果和 聚类质量;
[0116] 第=步:依次调整更改聚类数量的取值,根据聚类数量进行聚类;
[0117] 第四步:将新聚类方式与记录的聚类质量相比较,若新聚类较好,则替换原记录中 的聚类结果和聚类质量;
[0118] 第五步:在考察完毕所有可取的聚类数量之后,将对比和记录得到的具有最优聚 类质量的聚类方法作为最优聚类的结果。
[0119] 本设计的时间复杂度分析:
[0120] PAM算法具有(Kk(n-k)2)的时间复杂度,本算法执行n+1次PAM算法,因此本算法的 时间复杂度为(Kkn(n-k)2)。
[0121] 本方法设计的自适应聚类过程流程如图2所示。
[0122] 本发明说明书中未作详细描述的内容属本领域技术人员的公知技术。
【主权项】
1. 一种基于序列比对的自适应应用层网络协议报文聚类方法,其特征在于包括如下步 骤: (1) 获取需要进行报文聚类的报文,分别对各个报文进行划分得到分词,进而得到各个 报文对应的报文分词序列;所述的分词为报文中的各个字段; (2) 从步骤(1)得到的报分词文序列中任意选择两个,分别记为Tm、Fn,计算报文分词序 列Tm中第i个分词与报文分词序列F n中第j个分词关于偏移的相似度scoreP(Tm[i],Fn[ j]) ·〇为Tm[i].o = Fn[j].o表示报文分词序列Tm中第i个分词与报文分词序列?"中第j个分词均 包括偏移,Tm[i] .o#Fn[ j] .〇表示报文分词序列Tm中第i个分词与报文分词序列?"中第j个 分词不均包括偏移,i = l,2,3···ηι,j = l,2,3···η,ηι为报文分词序列Tm中分词的个数,η为报 文分词序列Fn中分词的个数,Tm. 1为报文分词序列Tm的长度,Fn. 1为报文分词序列Fn的长度; 所述的偏移为分词首位到当前报文分词序列头部的距离; (3) 计算报文分词序列Tm中第i个分词与报文分词序列?"中第j个分词关于宽度的相似 度scoreP(Tm[i],F n[j]).w为其中,Tm[i] .w = Fn[j] .w表不报文分词序列Tm中第i个分词与报文分词序列Fn中第j个分 词宽度相同,Tm[i] .w#Fn[ j] .w表示报文分词序列Tm中第i个分词与报文分词序列?"中第j 个分词宽度不同;所述的宽度为分词的长度; (4) 计算报文分词序列Tm中第i个分词与报文分词序列?"中第j个分词关于语义的相似 度scoreP(Tm[i],F n[j])·s为其中,Tm[i].s = Fn[j].s表示报文分词序列Tm中第i个分词与报文分词序列?"中第j个分 词语义相同,1^[1].8^^11[」].8表示报文分词序列1?中第1个分词与报文分词序列? 11中第」 个分词语义不同;所述的语义为分词的含义; (5) 计算报文分词序列Tm中第i个分词与报文分词序列?"中第j个分词关于类型的相似 度scoreP(Tm[i],F n[j])·t为所述的类型为分词类型,其中,分词类型包括文本、二进制,Tm[i].t = Fn[j].t表示报文 分词序列!"中第i个分词与报文分词序列?"中第j个分词类型相同, 报文分词序列Tm中第i个分词与报文分词序列?"中第j个分词类型不同; (6) 计算报文分词序列Tm中第i个分词与报文分词序列?"中第j个分词关于数据内容的 相似度scoreP(T m「il .Fn「il) .d为所述的数据内容为分词的取值;其中,Tm[i].d = Fn[j].d表示报文分词序列Tm中第i个 分词与报文分词序列Fn中第j个分词数据内容相同,Tm[i] .d辛Fn[j] .d表不报文分词序列Tm 中第i个分词与报文分词序列?"中第j个分词数据内容不同; (7) 计算得到报文分词序列1"中第i个分词与报文分词序列?"中第j个分词的相似度 scoreP(Tm[i],Fn[j])为 scoreP(Tm[i] ,Fn[ j ]) = scoreP(Tm[ i ] ,Fn[ j]). o+scoreP(Tm[ i ] ,Fn[ j]) .w+scoreP(Tm [i],Fn[ j]).s+scoreP(Tm[i],Fn[ j]).t+scoreP(Tm[i],Fn[ j]).d; (8) 分别计算报文分词序列Tm中第i个分词与报文分词序列Fn中第j个分词的相对位置 (^(1"[1]$[」])=|1"[1]. 〇$[」].〇|,进而计算得到修正后的报文分词序列1"中第1个分 词Iis枏f令福痒别R1由笛彳个令福的和化IlifQmrpnnni(9) 将%〇代0(1'^]^11[幻)作为最终的报文分词序列1"中第1个分词与报文分词序列?11 中第j个分词的相似度8〇〇^(1'^]^幻),重复步骤(2)-步骤(8)得到各个报文分词序列 中各个分词的相似度; (10) 计算报文分词序列1^与报文分词序列Fj的相似度MS[i,j]为其中,i的初值为I,j的初值为I,Ti为包括报文分词序列Tm中第e个分词的报文分词序 列,e = l,2,3...i; (11) i = i+l,重复步骤(10),直至i=m; (12) j = j+l,重复步骤(10)-步骤(11),直至j=n,得到报文分词序列1?与报文分词序列 ?"的相似度MS[m,n],从而得到各个报文分词序列间的相似度; (13) 根据步骤(12)得到的各个报文分词序列间的相似度,对各个报文分词序列进行聚 类,得到不同的报文序列聚类,并记为(^,(^,…,(^,其中汰为聚类个数汰二^一-飞^为报 分词文序列个数; (14) 计算聚类有效性评价指标Dunn(k)为d(Tm,Fn)=rnin{dis(Tm[i] ,Fn[ j])}; (15) 选取聚类有效性评价指标Dunn(k)最大的报文序列聚类C^C2,- ,Ck作为聚类结 果。2.根据权利要求1所述的一种基于序列比对的自适应应用层网络协议报文聚类方法, 其特征在于:所述的对各个报文分词序列进行聚类的方法为PAM算法。
【文档编号】G06K9/62GK106021361SQ201610305948
【公开日】2016年10月12日
【申请日】2016年5月10日
【发明人】齐维孔, 衣龙腾, 李明, 周钠, 刘晓晖
【申请人】中国空间技术研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1