CN106021361A - 一种基于序列比对的自适应应用层网络协议报文聚类方法 - Google Patents
一种基于序列比对的自适应应用层网络协议报文聚类方法 Download PDFInfo
- Publication number
- CN106021361A CN106021361A CN201610305948.7A CN201610305948A CN106021361A CN 106021361 A CN106021361 A CN 106021361A CN 201610305948 A CN201610305948 A CN 201610305948A CN 106021361 A CN106021361 A CN 106021361A
- Authority
- CN
- China
- Prior art keywords
- participle
- rsqb
- lsqb
- message
- segmentation sequence
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
- G06F16/353—Clustering; Classification into predefined classes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Databases & Information Systems (AREA)
- General Health & Medical Sciences (AREA)
- Probability & Statistics with Applications (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种基于序列比对的自适应应用层网络协议报文聚类方法,首先对报文进行划分得到各个报分词文序列,然后根据偏移、宽度、语义、类型、数据内容计算各个报分词文序列中分词的相似度,并使用位置和距离对分析相似度进行修正,进而得到各个报文分析序列的相似度,最后计算多个聚类数量下的聚类有效性评价指标,将聚类有效性评价指标最大值对应的聚类作为聚类结果。本发明与现有技术相比,通过综合考察分词的多个属性来对报文分词的相似程度进行比对,改善了以往序列比对中元素的比较仅考虑数值的片面性,能够更加全面准确地判断网络报文中分词的相似性,从而提高整体分析的性能。
Description
技术领域
本发明涉及一种应用层网络协议报文聚类方法,特别是一种基于序列比对的自适应应用层网络协议报文聚类方法。
背景技术
当前互联网中安全问题日益突出,各种攻击手段层出不穷,而且呈现出通讯更隐秘,攻击力更强等特点。在僵尸网络防控、深度数据包分析,Fuzzing测试等安全研究和技术领域,对于使用未知协议通讯的发现和检测具有重要意义。而对于未知协议,研究其工作原理,如协议报文特征和协议报文格式等信息对于进一步加强网络监控和安全管理与分析等工作影响深远。高效准确的逆向分析网络中未知通讯协议的相关信息已成为目前网络安全领域的一个重点研究内容。
网络协议报文格式逆向分析的目标是通过分析未知协议格式的报文数据或分析协议实体对报文数据的处理过程,获得报文的结构信息,并在此基础上推断报文中各个字段的语义信息。目前对协议报文的逆向分析主要有两种方式:基于网络的分析和基于程序的分析。基于程序的分析通过对协议程序进行动态污点分析,具有较高的准确度。但多数情况下协议程序无法获得,使得基于网络报文的数据分析方法日渐趋于主流。
目前通过网络数据进行协议格式逆向分析所使用的主要方法如下:网络协议报文相似性度量方法主要借鉴文本序列比对或生物信息中基因序列比对的技术,有基于最长公共子序列的序列比对和基于编辑距离的序列比对两种方法;网络协议报文聚类的方法主要采取机器学习和数据挖掘中的聚类划分方法,包含基于均值的聚类和基于中心点的聚类两种数据聚类方法,其中,网络协议报文相似度度量的结果是报文聚类的重要依据。在相似性度量和聚类的过程中,分别存在如下的问题:
报文相似性度量通过引进文本序列比对或基因序列比对中的方法来实现,能够在一定程度上度量组成两个报文的字段序列的相似度。但是在比较的过程中,没有考虑到协议报文结构独有的特点。在网络协议的报文结构中,通常存在位于报文前部的报文首部,其中包含大部分协议报文格式的信息,尾部可能存在少量校验等信息,而带有负载的报文中部大多为负载数据,与协议报文格式无关。因此,在进行报文相似性度量的过程中,如果把报文不同位置的内容相同对待,就会很容易受到负载数据的影响,并且忽略对报文首尾位置报文格式的分析和识别。
在目前常用的聚类方法中,基于中心点的聚类更加适用于协议数据包格式聚类的场景。但是基于中心点的聚类在执行时,需要事先输入目标聚类的数量,而这在分析未知协议时是无法事先获知该协议实际报文种类的。此外,对于聚类数量的确定,基于中心点的聚类没有给出具体的方法,而人工判断也缺乏合适的依据。
发明内容
本发明解决的技术问题是:克服现有技术的不足,提供了一种通过综合考察报文分词的多个属性来对报文分词的相似程度进行比对,能够更全面准确地判断网络报文中分词的相似性,从而提高整体分析的性能的基于序列比对的自适应应用层网络协议报文聚类方法。
本发明的技术解决方案是:一种基于序列比对的自适应应用层网络协议报文聚类方法,包括如下步骤:
(1)获取需要进行报文聚类的报文,分别对各个报文进行划分得到分词,进而得到各个报文对应的报文分词序列;所述的分词为报文中的各个字段;
(2)从步骤(1)得到的报分词文序列中任意选择两个,分别记为Tm、Fn,计算报文分词序列Tm中第i个分词与报文分词序列Fn中第j个分词关于偏移的相似度scoreP(Tm[i],Fn[j]).o为
其中,
Tm[i].o=Fn[j].o表示报文分词序列Tm中第i个分词与报文分词序列Fn中第j个分词均包括偏移,Tm[i].o≠Fn[j].o表示报文分词序列Tm中第i个分词与报文分词序列Fn中第j个分词不均包括偏移,i=1,2,3...m,j=1,2,3...n,m为报文分词序列Tm中分词的个数,n为报文分词序列Fn中分词的个数,Tm.1为报文分词序列Tm的长度,Fn.1为报文分词序列Fn的长度;所述的偏移为分词首位到当前报文分词序列头部的距离;
(3)计算报文分词序列Tm中第i个分词与报文分词序列Fn中第j个分词关于宽度的相似度scoreP(Tm[i],Fn[j]).w为
其中,Tm[i].w=Fn[j].w表示报文分词序列Tm中第i个分词与报文分词序列Fn中第j个分词宽度相同,Tm[i].w≠Fn[j].w表示报文分词序列Tm中第i个分词与报文分词序列Fn中第j个分词宽度不同;所述的宽度为分词的长度;
(4)计算报文分词序列Tm中第i个分词与报文分词序列Fn中第j个分词关于语义的相似度scoreP(Tm[i],Fn[j]).s为
其中,Tm[i].s=Fn[j].s表示报文分词序列Tm中第i个分词与报文分词序列Fn中第j个分词语义相同,Tm[i].s≠Fn[j].s表示报文分词序列Tm中第i个分词与报文分词序列Fn中第j个分词语义不同;所述的语义为分词的含义;
(5)计算报文分词序列Tm中第i个分词与报文分词序列Fn中第j个分词关于类型的相似度scoreP(Tm[i],Fn[j]).t为
所述的类型为分词类型,其中,分词类型包括文本、二进制,Tm[i].t=Fn[j].t表示报文分词序列Tm中第i个分词与报文分词序列Fn中第j个分词类型相同,Tm[i].t≠Fn[j].t表示报文分词序列Tm中第i个分词与报文分词序列Fn中第j个分词类型不同;
(6)计算报文分词序列Tm中第i个分词与报文分词序列Fn中第j个分词关于数据内容的相似度scoreP(Tm[i],Fn[j]).d为
所述的数据内容为分词的取值;其中,Tm[i].d=Fn[j].d表示报文分词序列Tm中第i个分词与报文分词序列Fn中第j个分词数据内容相同,Tm[i].d≠Fn[j].d表示报文分词序列Tm中第i个分词与报文分词序列Fn中第j个分词数据内容不同;
(7)计算得到报文分词序列Tm中第i个分词与报文分词序列Fn中第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个分词的相对位置dis(Tm[i],Fn[j])=|Tm[i].o-Fn[j].o|,进而计算得到修正后的报文分词序列Tm中第i个分词与报文分词序列Fn中第j个分词的相似度scoreD(Tm[i],Fn[j])为
(9)将scoreD(Tm[i],Fn[j])作为最终的报文分词序列Tm中第i个分词与报文分词序列Fn中第j个分词的相似度score(Tm[i],Fn[j]),重复步骤(2)-步骤(8)得到各个报文分词序列中各个分词的相似度;
(10)计算报文分词序列Ti与报文分词序列Fj的相似度MS[i,j]为
其中,i的初值为1,j的初值为1,Ti为包括报文分词序列Tm中第e个分词的报文分词序列,e=1,2,3...i;
(11)i=i+1,重复步骤(10),直至i=m;
(12)j=j+1,重复步骤(10)-步骤(11),直至j=n,得到报文分词序列Tm与报文分词序列Fn的相似度MS[m,n],从而得到各个报文分词序列间的相似度;
(13)根据步骤(12)得到的各个报文分词序列间的相似度,对各个报文分词序列进行聚类,得到不同的报文序列聚类,并记为C1,C2,...,Ck,其中,k为聚类个数,k=1,2,3...g,g为报分词文序列个数;
(14)计算聚类有效性评价指标Dunn(k)为
其中,d(Tm,Fn)=min{dis(Tm[i],Fn[j])};
(15)选取聚类有效性评价指标Dunn(k)最大的报文序列聚类C1,C2,...,Ck作为聚类结果。
所述的对各个报文分词序列进行聚类的方法为PAM算法。
本发明与现有技术相比的优点在于:
(1)本发明通过设计基于多因素加权评分的报文分词序列比对方案,克服了以往序列比对中忽略网络报文自身结构特性的缺陷,实现了对数据包的格式结构相似性更加准确的度量;
(2)本发明通过设计报文自适应聚类方案,解决了未知协议报文聚类过程中需要预先指定聚类数量的问题,通过使用聚类结果分析与参数反馈的有关方法,实现了聚类过程自动递归执行,且有效地提高了分析效率和结果准确度;
(3)本发明通过综合考察分词的多个属性来对报文分词的相似程度进行比对,改善了以往序列比对中元素的比较仅考虑数值的片面性,能够更加全面准确地判断网络报文中分词的相似性,从而提高整体分析的性能。
附图说明
图1为本发明网络通信数据收集过程;
图2为本发明一种基于序列比对的自适应应用层网络协议报文聚类方法流程图。
具体实施方式
如图1所示为网络通信数据收集过程,首先使用数据包捕获工具如Wireshark或tcpdump等在进行通信的两个或多个协议实体之间对通信数据包进行捕获,然后将这些协议数据包进行分解,得到未知网络协议对应的报文序列作为分析对象。本发明在针对未知网络协议通过通信数据报文进行逆向分析的过程中,对报文相似度比对和报文聚类方法进行改进,设计针对网络协议数据包格式的报文字段序列相似度比对方法和具有反馈自动调节功能的聚类算法,提高未知网络协议逆向分析的自动化程度和准确度。
对于报文相似性度量,本发明方法重点考察网络协议数据包首部和尾部一定范围内的数据相似度,结合并改进现有序列比对技术,设计一种新型针对于未知协议的报文相似性度量方法。对于报文聚类,本发明方法通过引入聚类结果质量评价指标,通过反馈过程来影响和调节聚类的开始参数(主要是目标聚类的数量),使得整个分析过程脱离人工干预,自动高效地选择出合理的最优报文聚类,下面结合附图对本发明方法进行详细说明。
一、报文分词序列比对原理及实现方法,在格式逆向的预处理阶段,将截获的未知协议数据包进行初步字段划分,将报文分解为由一系列划分出的分词(即字段)组成的分词序列。
本发明基于编辑距离的LD(Levenshtein Distance)算法,通过进行相应的改造,设计符合报文分词序列比对特点的基于序列比对的报文相似度计算方法(MS算法,MessageSimilarity)来度量和比较两个聚类中报文分词序列的相似程度。在使用时,根据报文序列的特点,对其基本评分规则进行设计,并根据位置和距离对分词匹配相似程度的影响设计相应的位置加权和距离加权进而优化评分规则。
1)设置序列元素相似度基本评分规则
基本评分规则是指,在度量两个序列的相似程度的过程中,首先需要对两个相关元素的相似程度进行评价。在描述协议格式的分词序列中,对分词属性的描述包含多个方面,如目前已经可以分析的偏移(offset,分词首位到报文头部的距离),宽度(width,分词本身的长度),语义(syntax,分词的含义,如长度、序列等,语义识别在预处理过程进行),类型(type,本发明中定义为文本和二进制两种类型)和数据内容(data,即该分词本身的取值)。因此对分词的匹配采用分级方式进行评分,共分为五级:只有一项相同(如偏移相同)则评分为1,两项相同(如偏移和宽度相同)则评分为2,若五项全部相同,则评分为5。也就是说,在基本评分时,五个属性各自权值也就是基本分值为1。
基本评分规则形式化描述如下:
其中,T1[i],T2[j]表示分词序列T1和T2中分别在位置i和位置j进行相似度评价的两个分词,i、j为正整数,点下标表示分词的偏移、宽度等属性,o表示偏移,w表示宽度,s表示语义,t表示类型,d表示数据内容,scoreBase(T1[i],T2[j]).d表示T1[i],T2[j]关于数据内容的相似度评价基本评分结果,scoreBase(T1[i],T2[j])为相似度评价基本评分结果,T1[i].o=T2[j].o表示报文分词序列T1中第i个分词与报文分词序列T2中第j个分词均包括偏移属性,T1[i].o≠T2[j].o表示报文分词序列T1中第i个分词与报文分词序列T2中第j个分词不均包括偏移属性,T1[i].w=T2[j].w表示报文分词序列T1中第i个分词与报文分词序列T2中第j个分词的宽度相同,T1[i].w≠T2[j].w表示报文分词序列T1中第i个分词与报文分词序列T2中第j个分词的宽度不同,T1[i].s=T2[j].s表示报文分词序列T1中第i个分词与报文分词序列T2中第j个分词的语义相同,T1[i].s≠T2[j].s表示报文分词序列T1中第i个分词与报文分词序列T2中第j个分词的语义不同,T1[i].t=T2[j].t表示报文分词序列T1中第i个分词与报文分词序列T2中第j个分词的类型相同,T1[i].t≠T2[j].t表示报文分词序列T1中第i个分词与报文分词序列T2中第j个分词的类型不同,T1[i].d=T2[j].d表示报文分词序列T1中第i个分词与报文分词序列T2中第j个分词的数据内容相同,T1[i].d≠T2[j].d表示报文分词序列T1中第i个分词与报文分词序列T2中第j个分词的数据内容不同。
2)通过位置加权改进基本评分规则
位置加权是指:在报文序列中,通常报文头部是报文格式集中变化的地方,报文中部的大部分可能是数据域,尾部可能有若干报文格式域,但是数量不多。因此,对分词相似度评分追加评分规则,使得报文中描述格式的分词序列相对应位置相似时,按照分词相似度评分从高到低依次设定为报文头部,尾部,中部的优先级考虑优化相似度评分。同时,对于较长的报文,报文中部的数据对于格式分析的贡献相对较小,所以考虑在长报文的头尾截取一定长度赋予不同的权值来参加序列相似度比对的评分。分词相似度位置加权评分规则简要描述及说明(以偏移属性为例)如下:
<+0.5,+0.4,+0.3,+0.2,+0.1,-,......,-,+0.1,+0.2,+0.3> (7)
其中,序列开始处的″+0.5,+0.4,+0.3,+0.2,+0.1″表示用于比对的分词在所属序列中的位置为1-5时,若偏移相同,则所得评分在原有分值的基础上再加上相应的加权值,例如,当两个序列中第一个分词的偏移相同时,偏移项所得评分为1+0.5=1.5分;若偏移不同,则所得评分在两个附加权值的平均值的基础上加上相应的原有分值,例如,当第一个序列中第二个分词的偏移属性和第二个序列中第四个分词的偏移相同时,偏移项所得评分为1+sum(0.4,0.2)/2=1.3分。
相应地,序列结尾处的″+0.1,+0.2,+0.3″表示用于比对的分词在所属序列中的位置为后1-3个时,若偏移相同,则所得评分在原有基本权值的基础上再加上相应的分值,例如,当两个序列中的最后一个分词的偏移相同时,偏移项所得评分为1+0.3=1.3分;若偏移不同,则所得评分在两个附加权值的平均值的基础上加上相应的原有分值,例如,当第一个序列中最后一个分词的偏移属性和第二个序列中倒数第三个分词的偏移属性相同时,偏移项所得评分为1+sum(0.3,0.1)/2=1.2分。报文序列中间分词偏移项互相匹配时按照普通的基本权值打分即可,不再另加分值。
上述三个位置处的评分优先级依次为:首部、尾部,中间。匹配评分时,以前向优先级确定位置,以后向优先级确定分值,即当报文较短首部和尾部定义的一部分位置重合时,根据前向优先级将重合部分的分词定义为首部,其他重合情况处理类似;当首部分词与尾部分词偏移属性相同时,根据后向优先级将加权分值设置为尾部分词计算加权所得分值,其他位置不同的加权评分方法计算类似,具体加权分值见公式8,对于其他属性评分的修正方法与上述评分追加规则相同。位置加权评分规则形式化描述如下:
其中,T1.l和T2.l分别表示T1和T2两个报文的长度即各自所包含的分词个数。
化简后:
位置加权后的评分规则形式化描述如下:
scoreP(T1[i],T2[j])=scoreP(T1[i],T2[j]).o+scoreP(T1[i],T2[j]).w+scoreP(T1[i],T2[j]).s (15)+scoreP(T1[i],T2[j]).t+scoreP(T1[i],T2[j]).d
在后续分析中,使用改进的位置加权评分结果scoreP(T1[i],T2[j])代替原基本评分结果scoreBase(T1[i],T2[j])。
3)通过距离加权改进评分规则
距离加权是指:对两个相应的分词进行匹配,度量其相似度时,其相对距离越大,相应相似度的评分按一定规则降低。因为对于报文格式域的序列来说,只有在相同或者相近位置出现相匹配的分词才有意义,所以,对于序列比对中距离比较远的匹配,对其进行适当罚分,即将其在比对中的分值贡献降低。
因此,对分词相似度评分追加评分规则,使得两个分词的相似度随着其相对位置的增大而减小。分词相似度距离加权评分规则形式化描述及说明如下:
其中,scoreP(T1[i],T2[j])表示在基本评分和位置加权后得到的相似度分值,dis(T1[i],T2[j])表示分词s1和分词s2的偏移量差值即相对位置,可以通过计算两个分词偏移属性的差值得到,即dis(T1[i],T2[j])=|T1[i].o-T2[j].o|。在两个分词的距离不超过10时,距离加权的分值为 在两个分词的距离超过10之后,即使两个分词非常相似或相同,对于整个报文格式的比对也是没有意义的,因此将距离加权的结果设置为0。
举例来讲,如果两个分词的距离为2,则scoreD(T1[i],T2[j])=0.8*scoreP(T1[i],T2[j]),如果两个分词的距离为3,则scoreD(T1[i],T2[j])=0.7*scoreP(T1[i],T2[j]),如果两个分词的距离为14,则scoreD(T1[i],T2[j])=0。
将经过位置加权和距离加权运算后得到的scoreD(T1[i],T2[j])作为两个分词比对得到的相似程度结果score(T1[i],T2[j])=scoreD(T1[i],T2[j])。
4)参考分词相似度设计算法对报文序列相似度进行度量
本发明设计的MS(Message Similarity)算法采用基于文本编辑距离的方法,对报文序列比对设计动态规划算法求解。以下首先对报文序列相似度的最优子结构和重叠子问题进行分析,然后给出一个递归解和算法描述。
最优子结构:设两个报文序列分别为Tm=<t1,t2,...,tm>和Fn=<f1,f2,...,fn>,Tm和Fn的序列相似度记为MS(Tm,Fn),其中,t1,t2,...,tm均为报文分词,f1,f2,...,fn均为报文分词。对于Tm和Fn之间最后一个分词位置的编辑转换方式,可以有如下三种方式实现:
(1)序列T的最后一个分词转换为序列F的最后一个分词(或,F的最后一个分词转换为T的最后一个分词),此时,有MS(Tm,Fn)=MS(Tm-1,Fn-1)+score(tm,fn),其中,score(tm,fn)为两个序列最后一个分词tm,fn之间相似度的评分,MS(Tm-1,Fn-1)为最后一个分词的序列T与去除最后一个分词的序列F的序列相似度;
(2)序列T添加fn到序列尾部(或,序列F在尾部删除分词fn),此时,有MS(Tm,Fn)=MS(Tm,Fn-1);
(3)序列F添加tm到序列尾部(或,序列T在尾部删除分词tm),此时,有MS(Tm,Fn)=MS(Tm-1,Fn)。
在这三种方式得到的相似度分值中,选取最大的分值作为最终对序列相似性度量的结果。
在LD算法中,考虑两个元素相同时两个序列最后一个元素对编辑距离不造成影响,元素不同时需要选取相对最小前缀编辑距离加1,这实际上是将两个序列最后一个元素的相似程度对序列相似程度的影响二值化为0和1。而在MS算法中,对两个序列中元素的相似程度采用相似度评分的方法得到更加精确的度量,因此,在考虑元素相似对序列相似性的影响时,将序列相似度的增量设置为分词的相似度,并且将LD算法中序列元素相同和不相同的两种情况整合到一起,使用序列元素相似度即分词相似度进行度量。
此外,由于LD算法对两个文本(序列)的编辑距离也就是差异程度进行度量,而本发明所设计的MS算法是对两个序列的相似程度进行度量。由于差异性通常与相似性负相关,所以,不同于LD算法中选取子问题的最小结果值作为最终结果,MS算法选取子问题中的最大结果分值作为相似度评价的最终结果。
重叠子问题:由最优子问题分析可得,计算两个序列相似度时包含两个序列分别各自去掉最后一个元素的子问题,即计算MS(Tm,Fn)时,需要对MS(Tm,Fn-1)和MS(Tm-1,Fn)进行考察,而这两个子问题都包含的子问题是两个原序列都去掉最后一个元素的相似度的问题,即计算MS(Tm,Fn-1)和MS(Tm-1,Fn)时,都需要计算原本两个序列考察相似度时需要解决的子问题MS(Tm-1,Fn-1)。也就是说,原问题的子问题中,有两个包含相同的子问题。以此类推,MS算法的多个子问题中存在共享递进的子子问题。
递归解:将MS(Ti,Fj)记为MS[i,j],根据算法思想和以上分析,设计算法的递归求解方法如下:
具体求解步骤说明如下:
第一步:求解过程初始化,对于i或j为0的位置,设置MS[i,j]为0;
第二步:按照递归求解方程,i,j各自依次从小到大的顺序求解MS[i,j];
第三步:当i,j取到范围内最大值,即MS[i,j]表示两个完整报文分词序列的相似度时,求解结束。
该算法的时间复杂度和空间复杂度均为0(mn),其中,m,n分别为两个分词序列的规模,即分词序列所含分词数量:m=Len(A),n=Len(B)。本发明比较报文分词序列相似度的方法将用于本发明报文聚类过程的聚类对象距离度量,因此所涉及到的报文也可称之为用于比对和分析的格式模板。
二、报文自适应聚类原理及实现方案
目前使用的聚类算法需要将聚类的个数作为聚类算法的输入参数,但是对于这个参数的设定,并没有任何先验知识可以参考。而聚类的结果包括聚类个数、聚类中报文的分布以及聚类后得到的报文格式模版都对整体协议格式逆向的结果产生重要的影响。而在这之中,聚类的个数将在聚类过程中影响最终分析得到的报文分布和格式模版。所以,需要对PAM聚类的输入参数即目标聚类的个数进行选择,来获得较好的分析结果。为此,考虑引入一种聚类评价指标(Clustering Validity lndex)来对聚类结果进行考量,通过调整不同的输入参数,来找到能够使得聚类效果达到最优的聚类个数。
常用的聚类有效性评价指标有Dunn指标,DBI指标(DaviesBouldin lndex),CH有效性指标(Caiinski-Harabaszlndex),Partition Coefficient,S有效性指标(Silhouettelndex),CS lndex,Separation lndex等。根据目前聚类对象数据类型和聚类方式,选择Dunn指标作为本发明聚类归约阶段的聚类评价指标,用于指导选择聚类的个数,对于其他指标的效果测试和比较暂且留作将来进一步研究的工作内容。
具体地,Dunn指标是一种评价同一类别样本的紧密程度与不同类别之间样本分散程度的一个函数,其定义如下:
其中,C1,C2,...,Ck表示不同的报文序列聚类;表示聚类Ci的直径,x、y为聚类Ci中的两个报文分词序列; 表示两个聚类Ci,Cj之间的距离,x表示聚类Ci中的报文分词序列、y表示聚类Cj中的报文分词序列,d(x,y)表示报文分词序列x与报文分词序列y的距离,即报文序列x中分词与报文序列y中分词的最近距离,d(x,y)=min{dis(x[i],y[j])},x[i]为报文分词序列中的第i个分词,y[j]为报文分词序列中的第j个分词,k为报文聚类数量。
式(18)中,分子表示类间样本的分散程度,分母表示类内样本的紧密程度。Dunn(k)的值越大,表示聚类的结果越优。
本发明以PAM算法为基础,在聚类数目的有效取值范围内进行PAM聚类,选取结果最优即能够使得Dunn(k)最大的k值作为最优聚类数目并确定最优聚类结果,设计基于Dunn指数的改进PAM聚类算法如下:
以递归聚类结果中聚类内报文通用格式为对象,使用报文距离序列比对算法计算两个对象之间的距离,使用PAM算法对有效的聚类数目k计算聚类结果的Dunn(k),统计具有最大Dunn(k)的聚类数目作为最优聚类结果输出。
求解过程说明:
第一步:设置聚类数量取值范围为不超过报文数量的正整数;
第二步:选取初始聚类数量(1或最大值)使用PAM算法进行聚类,记录聚类结果和聚类质量;
第三步:依次调整更改聚类数量的取值,根据聚类数量进行聚类;
第四步:将新聚类方式与记录的聚类质量相比较,若新聚类较好,则替换原记录中的聚类结果和聚类质量;
第五步:在考察完毕所有可取的聚类数量之后,将对比和记录得到的具有最优聚类质量的聚类方法作为最优聚类的结果。
本设计的时间复杂度分析:
PAM算法具有O(k(n-k)2)的时间复杂度,本算法执行n+1次PAM算法,因此本算法的时间复杂度为O(kn(n-k)2)。
本方法设计的自适应聚类过程流程如图2所示。
本发明说明书中未作详细描述的内容属本领域技术人员的公知技术。
Claims (2)
1.一种基于序列比对的自适应应用层网络协议报文聚类方法,其特征在于包括如下步骤:
(1)获取需要进行报文聚类的报文,分别对各个报文进行划分得到分词,进而得到各个报文对应的报文分词序列;所述的分词为报文中的各个字段;
(2)从步骤(1)得到的报分词文序列中任意选择两个,分别记为Tm、Fn,计算报文分词序列Tm中第i个分词与报文分词序列Fn中第j个分词关于偏移的相似度scoreP(Tm[i],Fn[j]).o为
其中,
Tm[i].o=Fn[j].o表示报文分词序列Tm中第i个分词与报文分词序列Fn中第j个分词均包括偏移,Tm[i].o≠Fn[j].o表示报文分词序列Tm中第i个分词与报文分词序列Fn中第j个分词不均包括偏移,i=1,2,3…m,j=1,2,3…n,m为报文分词序列Tm中分词的个数,n为报文分词序列Fn中分词的个数,Tm.l为报文分词序列Tm的长度,Fn.l为报文分词序列Fn的长度;所述的偏移为分词首位到当前报文分词序列头部的距离;
(3)计算报文分词序列Tm中第i个分词与报文分词序列Fn中第j个分词关于宽度的相似度scoreP(Tm[i],Fn[j]).w为
其中,Tm[i].w=Fn[j].w表示报文分词序列Tm中第i个分词与报文分词序列Fn中第j个分词宽度相同,Tm[i].w≠Fn[j].w表示报文分词序列Tm中第i个分词与报文分词序列Fn中第j个分词宽度不同;所述的宽度为分词的长度;
(4)计算报文分词序列Tm中第i个分词与报文分词序列Fn中第j个分词关于语义的相似度scoreP(Tm[i],Fn[j]).s为
其中,Tm[i].s=Fn[j].s表示报文分词序列Tm中第i个分词与报文分词序列Fn中第j个分词语义相同,Tm[i].s≠Fn[j].s表示报文分词序列Tm中第i个分词与报文分词序列Fn中第j个分词语义不同;所述的语义为分词的含义;
(5)计算报文分词序列Tm中第i个分词与报文分词序列Fn中第j个分词关于类型的相似度scoreP(Tm[i],Fn[j]).t为
所述的类型为分词类型,其中,分词类型包括文本、二进制,Tm[i].t=Fn[j].t表示报文分词序列Tm中第i个分词与报文分词序列Fn中第j个分词类型相同,Tm[i].t≠Fn[j].t表示报文分词序列Tm中第i个分词与报文分词序列Fn中第j个分词类型不同;
(6)计算报文分词序列Tm中第i个分词与报文分词序列Fn中第j个分词关于数据内容的相似度scoreP(Tm[i],Fn[j]).d为
所述的数据内容为分词的取值;其中,Tm[i].d=Fn[j].d表示报文分词序列Tm中第i个分词与报文分词序列Fn中第j个分词数据内容相同,Tm[i].d≠Fn[j].d表示报文分词序列Tm中第i个分词与报文分词序列Fn中第j个分词数据内容不同;
(7)计算得到报文分词序列Tm中第i个分词与报文分词序列Fn中第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个分词的相对位置dis(Tm[i],Fn[j])=|Tm[i].o-Fn[j].o|,进而计算得到修正后的报文分词序列Tm中第i个分词与报文分词序列Fn中第j个分词的相似度scoreD(Tm[i],Fn[j])为
(9)将scoreD(Tm[i],Fn[j])作为最终的报文分词序列Tm中第i个分词与报文分词序列Fn中第j个分词的相似度score(Tm[i],Fn[j]),重复步骤(2)-步骤(8)得到各个报文分词序列中各个分词的相似度;
(10)计算报文分词序列Ti与报文分词序列Fj的相似度MS[i,j]为
其中,i的初值为1,j的初值为1,Ti为包括报文分词序列Tm中第e个分词的报文分词序列,e=1,2,3…i;
(11)i=i+1,重复步骤(10),直至i=m;
(12)j=j+1,重复步骤(10)-步骤(11),直至j=n,得到报文分词序列Tm与报文分词序列Fn的相似度MS[m,n],从而得到各个报文分词序列间的相似度;
(13)根据步骤(12)得到的各个报文分词序列间的相似度,对各个报文分词序列进行聚类,得到不同的报文序列聚类,并记为C1,C2,…,Ck,其中,k为聚类个数,k=1,2,3…g,g为报分词文序列个数;
(14)计算聚类有效性评价指标Dunn(k)为
其中,d(Tm,Fn)=min{dis(Tm[i],Fn[j])};
(15)选取聚类有效性评价指标Dunn(k)最大的报文序列聚类C1,C2,…,Ck作为聚类结果。
2.根据权利要求1所述的一种基于序列比对的自适应应用层网络协议报文聚类方法,其特征在于:所述的对各个报文分词序列进行聚类的方法为PAM算法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610305948.7A CN106021361A (zh) | 2016-05-10 | 2016-05-10 | 一种基于序列比对的自适应应用层网络协议报文聚类方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610305948.7A CN106021361A (zh) | 2016-05-10 | 2016-05-10 | 一种基于序列比对的自适应应用层网络协议报文聚类方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106021361A true CN106021361A (zh) | 2016-10-12 |
Family
ID=57098964
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610305948.7A Pending CN106021361A (zh) | 2016-05-10 | 2016-05-10 | 一种基于序列比对的自适应应用层网络协议报文聚类方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106021361A (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108600195A (zh) * | 2018-04-04 | 2018-09-28 | 国家计算机网络与信息安全管理中心 | 一种基于增量学习的快速工控协议格式逆向推断方法 |
CN108696521A (zh) * | 2018-05-11 | 2018-10-23 | 雷恩友力数据科技南京有限公司 | 一种网络空间入侵检测方法 |
CN108764335A (zh) * | 2018-05-28 | 2018-11-06 | 南方电网科学研究院有限责任公司 | 一种综合能源系统多能需求典型场景生成方法及装置 |
CN108959440A (zh) * | 2018-06-13 | 2018-12-07 | 福建新大陆软件工程有限公司 | 一种短信聚类方法及装置 |
CN109598278A (zh) * | 2018-09-20 | 2019-04-09 | 阿里巴巴集团控股有限公司 | 聚类处理方法、装置、电子设备及计算机可读存储介质 |
CN110225007A (zh) * | 2019-05-27 | 2019-09-10 | 国家计算机网络与信息安全管理中心 | webshell流量数据聚类分析方法以及控制器和介质 |
CN110363206A (zh) * | 2018-03-26 | 2019-10-22 | 阿里巴巴集团控股有限公司 | 数据对象的聚类、数据处理及数据识别方法 |
CN110765327A (zh) * | 2019-09-05 | 2020-02-07 | 深圳壹账通智能科技有限公司 | 数据分析方法、装置、计算机装置及存储介质 |
CN111585959A (zh) * | 2020-04-01 | 2020-08-25 | 浙江树人学院(浙江树人大学) | 一种基于自适应阈值的工控协议格式逆向方法 |
CN116016690A (zh) * | 2022-12-02 | 2023-04-25 | 国家工业信息安全发展研究中心 | 一种工业私有协议的自动化逆向分析方法及系统 |
US11823666B2 (en) | 2021-10-04 | 2023-11-21 | International Business Machines Corporation | Automatic measurement of semantic similarity of conversations |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102523167A (zh) * | 2011-12-23 | 2012-06-27 | 中山大学 | 一种未知应用层协议报文格式的最佳分段方法 |
CN104767736A (zh) * | 2015-03-23 | 2015-07-08 | 电子科技大学 | 将未知单协议数据流分离为不同类型的数据帧的方法 |
CN105183780A (zh) * | 2015-08-12 | 2015-12-23 | 中国工程物理研究院计算机应用研究所 | 基于改进agnes算法的协议分类方法 |
-
2016
- 2016-05-10 CN CN201610305948.7A patent/CN106021361A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102523167A (zh) * | 2011-12-23 | 2012-06-27 | 中山大学 | 一种未知应用层协议报文格式的最佳分段方法 |
CN104767736A (zh) * | 2015-03-23 | 2015-07-08 | 电子科技大学 | 将未知单协议数据流分离为不同类型的数据帧的方法 |
CN105183780A (zh) * | 2015-08-12 | 2015-12-23 | 中国工程物理研究院计算机应用研究所 | 基于改进agnes算法的协议分类方法 |
Non-Patent Citations (1)
Title |
---|
孙芳慧: "基于Net-Trace的未知协议格式逆向技术研究", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110363206A (zh) * | 2018-03-26 | 2019-10-22 | 阿里巴巴集团控股有限公司 | 数据对象的聚类、数据处理及数据识别方法 |
CN108600195A (zh) * | 2018-04-04 | 2018-09-28 | 国家计算机网络与信息安全管理中心 | 一种基于增量学习的快速工控协议格式逆向推断方法 |
CN108600195B (zh) * | 2018-04-04 | 2022-01-04 | 国家计算机网络与信息安全管理中心 | 一种基于增量学习的快速工控协议格式逆向推断方法 |
CN108696521A (zh) * | 2018-05-11 | 2018-10-23 | 雷恩友力数据科技南京有限公司 | 一种网络空间入侵检测方法 |
CN108764335A (zh) * | 2018-05-28 | 2018-11-06 | 南方电网科学研究院有限责任公司 | 一种综合能源系统多能需求典型场景生成方法及装置 |
CN108959440A (zh) * | 2018-06-13 | 2018-12-07 | 福建新大陆软件工程有限公司 | 一种短信聚类方法及装置 |
CN109598278A (zh) * | 2018-09-20 | 2019-04-09 | 阿里巴巴集团控股有限公司 | 聚类处理方法、装置、电子设备及计算机可读存储介质 |
CN110225007A (zh) * | 2019-05-27 | 2019-09-10 | 国家计算机网络与信息安全管理中心 | webshell流量数据聚类分析方法以及控制器和介质 |
CN110765327A (zh) * | 2019-09-05 | 2020-02-07 | 深圳壹账通智能科技有限公司 | 数据分析方法、装置、计算机装置及存储介质 |
CN111585959A (zh) * | 2020-04-01 | 2020-08-25 | 浙江树人学院(浙江树人大学) | 一种基于自适应阈值的工控协议格式逆向方法 |
US11823666B2 (en) | 2021-10-04 | 2023-11-21 | International Business Machines Corporation | Automatic measurement of semantic similarity of conversations |
CN116016690A (zh) * | 2022-12-02 | 2023-04-25 | 国家工业信息安全发展研究中心 | 一种工业私有协议的自动化逆向分析方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106021361A (zh) | 一种基于序列比对的自适应应用层网络协议报文聚类方法 | |
CN103166830B (zh) | 一种智能选择训练样本的垃圾邮件过滤系统和方法 | |
CN103473262B (zh) | 一种基于关联规则的Web评论观点自动分类系统及分类方法 | |
Wahono et al. | Genetic feature selection for software defect prediction | |
CN106228389A (zh) | 基于随机森林算法的网络潜力用户挖掘方法及系统 | |
CN109462853B (zh) | 一种基于神经网络模型的网络容量预测方法 | |
CN107894999A (zh) | 面向初等数学的基于解题思路的题型自动分类方法及系统 | |
CN107993636B (zh) | 基于递归神经网络的乐谱建模与生成方法 | |
US20230034994A1 (en) | Channel Identification Method and Apparatus, Transmission Method, Transmission Device, Base Station, and Medium | |
CN104978320A (zh) | 一种基于相似度的知识推荐方法和设备 | |
CN103780588A (zh) | 数字家庭网络中用户异常行为检测方法 | |
Kwon et al. | Multi-scale speaker embedding-based graph attention networks for speaker diarisation | |
CN105718368A (zh) | 一种软件测试数据扩增方法 | |
CN109376752A (zh) | 一种基于不平衡数据集的ptm-wknn分类方法和装置 | |
CN101901251A (zh) | 基于马尔科夫过程亚稳性的复杂网络簇结构分析和识别方法 | |
CN105930875A (zh) | 用户退课行为预测方法及装置 | |
Hsu et al. | On binary statistical classification from mismatched empirically observed statistics | |
CN113988558B (zh) | 基于盲区识别和电气坐标系扩展的电网动态安全评估方法 | |
CN114358193A (zh) | 基于油色谱的变压器状态诊断方法、终端及存储介质 | |
CN106156107A (zh) | 一种新闻热点的发现方法 | |
CN105468669A (zh) | 一种融合用户关系的自适应微博话题追踪方法 | |
CN117494760A (zh) | 一种基于超大规模语言模型的富语义标签数据增广方法 | |
CN110855519A (zh) | 一种网络流量预测方法 | |
CN103294828A (zh) | 数据挖掘模型维度的验证方法和验证装置 | |
CN110008120A (zh) | 一种基于频谱的软件故障定位方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20161012 |