CN112367325B - 基于闭合频繁项挖掘的未知协议报文聚类方法和*** - Google Patents
基于闭合频繁项挖掘的未知协议报文聚类方法和*** Download PDFInfo
- Publication number
- CN112367325B CN112367325B CN202011266863.5A CN202011266863A CN112367325B CN 112367325 B CN112367325 B CN 112367325B CN 202011266863 A CN202011266863 A CN 202011266863A CN 112367325 B CN112367325 B CN 112367325B
- Authority
- CN
- China
- Prior art keywords
- message
- clustering
- frequent item
- vector
- messages
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 97
- 238000005065 mining Methods 0.000 title claims abstract description 25
- 239000013598 vector Substances 0.000 claims abstract description 91
- 238000013528 artificial neural network Methods 0.000 claims abstract description 33
- 230000011218 segmentation Effects 0.000 claims abstract description 33
- 230000009467 reduction Effects 0.000 claims abstract description 27
- 230000008569 process Effects 0.000 claims description 20
- 210000002569 neuron Anatomy 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 8
- 238000012216 screening Methods 0.000 claims description 8
- 238000013507 mapping Methods 0.000 claims description 7
- 238000003860 storage Methods 0.000 claims description 4
- 238000001914 filtration Methods 0.000 claims description 3
- 229910002056 binary alloy Inorganic materials 0.000 claims 2
- 238000004422 calculation algorithm Methods 0.000 abstract description 20
- 230000006854 communication Effects 0.000 abstract description 13
- 238000004891 communication Methods 0.000 abstract description 12
- 230000007547 defect Effects 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 7
- 238000002864 sequence alignment Methods 0.000 description 6
- 239000003795 chemical substances by application Substances 0.000 description 5
- 238000007781 pre-processing Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000003064 k means clustering Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000007621 cluster analysis Methods 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/06—Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/216—Parsing using statistical methods
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/03—Protocol definition or specification
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Biomedical Technology (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于闭合频繁项挖掘的未知协议报文聚类方法和***,将目标协议的数据报转换成报文,进而将报文划分成不同类型。对报文进行分词;根据分词及其频繁度,挖掘报文中的闭合频繁项。在此基础上,依据闭合频繁项对报文进行向量化,而后使用t‑sne算法对报文向量进行降维处理。最后,根据报文的向量信息,利用自组织映射神经网络对报文进行聚类。本发明适用于协议规范未知的网络通信协议,采用协议报文中的闭合频繁项作为特征对报文进行聚类,解决了传统序列比对方法应用于报文聚类时准确性低的缺点,具有通用性强、聚类准确性高的优势。
Description
技术领域
本发明涉及一种网络通信报文的聚类方法,具体涉及一种基于闭合频繁项挖掘的未知协议报文聚类方法和***,属于网络技术领域。
背景技术
网络协议是为在计算机网络中进行数据交换而建立的规则、标准或者约定的集合。网络协议是计算机网络中不可替代的重要组成部分,它规范了网络实体之间的通信过程。网络管理、流量监控、漏洞挖掘、入侵检测等网络安全应用都依赖于协议规范。然而,由于商业原因或私人原因,大量协议的规范信息并没有公开,除此之外还有许多恶意软件也使用自定义的协议进行通信。这些协议都属于未知协议。
协议逆向工程是指在不依赖协议描述的情况下,通过对协议实体的网络输入输出、***行为和指令执行流程进行监控和分析,提取协议语法、语义和同步信息的过程。协议逆向工程是获得未知协议的协议规范信息的主要方法。
对网络报文进行聚类,将同种类型的协议报文聚集在一起,是协议逆向过程中的一个重要环节。在真实网络环境中,各种网络协议的通信报文交织在一起,且一种网络协议通常包含众多的报文类型,这给协议逆向分析带来了巨大挑战。因此,在进行协议逆向时,往往必须先对网络中的通信报文进行聚类,使同种类型的报文聚合成簇。在此基础上进行分析,降低协议逆向的难度,提升逆向分析结果的准确率。
每种网络协议通常都会包含多种报文类型,例如在HTTP协议中,有“GET”类型的报文和“POST”类型的报文。对于协议规范已知的协议,可以利用协议特征进行报文聚类,将同种类型的报文聚集在一起,实施起来相对容易。但是如果协议规范未知,则报文聚类并不容易。本发明主要聚焦协议规范未知的通信协议的报文聚类问题。
未知协议报文聚类需要考虑如何在没有协议先验知识的情况下,将相同类型的报文聚合在一起。一种网络协议往往包含多种报文类型,本发明旨在将捕获的网络协议报文聚合成多个簇,其中每个簇中的报文对应于协议的一种报文类型。
PI项目(Protocol Information Project)是最早的一个自动化协议逆向项目,它将生物信息学中的序列比对算法应用于衡量报文相似性,根据相似性建立报文相似性矩阵,然后使用非加权成对群算数平均法对报文进行聚类。然而,使用基于序列比对算法衡量报文相似性,然后对报文聚类的方法,不能发现局部差异导致的报文类型的不同。例如,网络中捕捉到SMTP协议的两条报文:“HELO crow.eyrie.af.mil”和“EHLOcrow.eyrie.af.mil”分别表示不需要用户认证的连接方式和需要用户认证的连接方式。由于“HELO”和“EHLO”的局部微小差异,导致了报文类型的不同。使用基于序列比对算法的聚类会因为察觉不出局部微小差异而导致聚类结果准确率较低的情况。
Siyu Tao等研究人员利用Needle-Wunsch算法衡量报文的相似性,使用轮廓系数指导的K-means聚类算法对报文进行聚类。这种聚类方法不需要知道K-means聚类算法中K的取值,因为通过轮廓系数指导能够自动选取最优K值。但是,这种聚类方法同PI项目一样,由于使用序列比对算法,难以发现报文微小差异导致的报文类型不同。
何超等研究人员在序列比对算法的基础上提出了SeqCluster聚类方法。SeqCluster方法不同于传统序列比对方法,该方法在衡量报文相似度时,对于出现的连续匹配会以等差数列的方式增加奖励,使得连续字节匹配的权重更高,从而实现更优化的报文相似度衡量。但是如果报文长度不同,使用该方法衡量报文相似性会产生不公平的问题,长报文的奖励很可能会比短报文的奖励高,进而影响报文相似性的计算,难以达到理想的聚类效果。
协议报文内有回车换行等控制字符,使报文呈现出一种结构化特征,这种结构化特征被称为报文轮廓特征。李阳等研究人员利用报文轮廓特征,将报文转换成二进制图像,然后通过图像的相似性对报文进行聚类。然而这种方法仅适用于拥有回车符、换行符等轮廓特征的报文,无法对没有分界符的协议进行聚类。
Mingming Xiao等研究人员认为大多数协议使用分界符对协议字段进行划分,他们利用定界符使用层次树递归地对报文进行分界得到域,而后进行协议逆向。然而,使用这种方法的前提是需要预先知晓协议具有哪些分界符,这对于未知协议而言是难以事先掌握的信息。
总体上看,现有主流的报文聚类方法大多以序列比对算法衡量报文相似度为主,然后根据报文相似度对报文进行聚类。然而,这些基于序列比对算法衡量报文相似度的方法存在一定缺陷,其局限性在于序列比对算法不能够识别报文微小差异导致报文类型发生的变化。此外,一些报文聚类方法只适用于具有特定特征的协议,通用性不强,例如上述李阳等研究人员提出的报文轮廓特征的方法和Mingming Xiao等研究人员提出的基于分界符的方法。
发明内容
本发明所要解决的技术问题是克服现有技术的缺陷,提供一种基于闭合频繁项挖掘的网络报文聚类方法和***。
本发明采用以下技术方案。
一方面,本发明提供一种基于闭合频繁项挖掘的未知协议报文聚类方法,包括:将获取的的数据报转换成报文;将报文分割成各个短序列;根据短序列的出现频次以及设置的频繁度阈值,提取出短序列中的频繁项,然后依据闭合属性对频繁项进行筛选,进而获得其中的闭合频繁项;以闭合频繁项为基础,对报文进行向量化表示并对向量进行降维处理获得降维后的报文向量;
针对降维后的报文向量,通过向自组织映射神经网络,依据向量间的距离对报文向量进行聚类,将相同类型的报文向量聚类。
进一步地,对于通过TCP协议传输的应用层数据报,依据TCP FIN标志和TCP SYN标志将一个新的应用层报文与之前的应用层报文分隔开并进行重组,得到完整的应用层报文。
对于通过UDP协议传输的应用层数据报,每个UDP数据报的载荷被视为一个独立的应用层报文。
进一步地,将报文分割成各个短序列之前还包括将报文划分为文本型报文、二进制型报文以及包含文本和二进制字符的混合型报文三类;将报文分割成各个短序列的方法包括:
对于二进制型报文与文本型报文,使用n-gram分词方法直接分词,而对于混合型报文,根据预先确定的二进制内容和文本内容的边界,对不同类型的内容进行分词。
再进一步地,使用n-gram分词方法分词时,n的取值从设置的最小值到设置的最大值逐一增长。
进一步地,根据短序列的出现频次以及设置的频繁度阈值提取出短序列中的频繁项的过程包括:统计各短序列出现频次,将短序列总出现频次与短序列总数量的比值作为该短序列的频繁度;如果一个短序列的频繁度超过了设定的频繁度阈值,那么该短序列就是一个频繁项,否则该短序列就不是频繁项。
进一步地,依据闭合属性对频繁项进行筛选具体包括:依次检查每个频繁项是否具有闭合属性,选择满足闭合属性的频繁项构成闭合频繁项集合,其中判定一个集合中的序列A拥有闭合属性的方法为:当且仅当在序列A所在的集合中没有任何一个序列是序列A的超序列,并且该序列的频繁度等于序列A的频繁度,则判定该集合中的序列A拥有闭合属性。
进一步地,以闭合频繁项为基础,对报文进行向量化表示并对向量进行降维处理获得降维后的报文向量的具体方法为:
以闭合频繁项集合为基础对每条报文进行向量化表示,如果报文拥有某个闭合频繁项,则向量化过程中将相应的元素置为1;如果报文中没有出现这个闭合频繁项,则向量化过程中将相应的元素置为0;此后,利用t-sne方法对报文向量进行降维,将高维的报文向量转化为二维的报文向量。
进一步地,所述自组织映射聚类的过程包括:通过将降维后的报文向量输入自组织映射神经网络,神经网络将发现报文向量的规律和报文向量之间的相互关系。聚类得到的神经网络,每个神经元附近的报文向量的集合被认为是属于同一个簇,代表这些报文向量属于同一种类型。
第二方面,本发明提供了一种基于闭合频繁项挖掘的未知协议报文聚类***,包括:报文捕获模块、短序列分割模块、闭合频繁项获取模块、报文向量生成模块以及报文向量聚类模块;
所述报文捕获模块,用于将网络中捕获的数据报转换成报文;
所述短序列分割模块,用于将报文分割成各个短序列;
所述闭合频繁项获取模块,用于根据短序列的出现频次,设置频繁度阈值,提取出短序列中的频繁项,然后依据闭合属性对频繁项进行筛选,进而获得其中的闭合频繁项;
所述报文向量生成模块,用于以闭合频繁项为基础,对报文进行向量化表示并对向量进行降维处理获得降维后的报文向量;
所述报文向量聚类模块,用于针对降维后的报文向量,通过向自组织映射神经网络,依据向量间的距离对报文向量进行聚类,将相同类型的报文向量聚类。
本发明所取得的有益技术效果:
本发明适用于协议规范未知的网络协议报文的聚类。在进行报文聚类时没有使用序列比对算法,能够解决序列比对算法不能发现局部差异导致报文类型不同的问题。除此之外,本发明方法具有通用性,聚类过程中没有使用任何局限于特定报文的特征,而是采用闭合频繁项这一通用特征对报文进行聚类。
针对未知协议的特点,本发明采用n值变化的n-gram算法,从而取得长短不相同的短序列,进而获得与未知协议相对应的闭合频繁项;此外,本发明采用自组织映射神经网络对报文进行聚类,自组织映射聚类方法不需要协议的先验知识,根据输入样本自适应地调整网络,确定输入样本的类型关系,适合于未知协议报文的聚类分析。总体上看,本发明能够有效提高未知协议报文聚类的准确率。
附图说明
图1是本发明具体实施例的整体实现流程示意图。
具体实施方式
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明整体实现流程示意图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
如图1所示,根据本发明的较优实施例,基于闭合频繁项挖掘的网络报文聚类方法,包括以下步骤:
(1)数据预处理:根据端口信息获取目标协议的数据报后,先将网络中捕获的数据报(Packet)转换成报文(Message),然后根据报文内最大连续可打印字符的数量是否超过设定的阈值,将报文分为文本型报文、二进制型报文以及混合型报文三类,对报文进行粗粒度的划分。
(2)短序列划分:针对不同的报文类型,采用n-gram序列化思想,将报文划分成多个短序列。由于无法事先预知报文关键词的长度,因此,n的取值从设定的最小值到设定的最大值逐步增长,得到长短不同的短序列,保证完整的关键词能够包含在n-gram的分词结果中。
(3)闭合频繁项挖掘:根据短序列的出现频次,设置频繁度阈值,提取出短序列中的频繁项,然后依据闭合属性对所有频繁项进行筛选,过滤不具有闭合属性的频繁项,所得到的闭合频繁项将作为报文特征对报文进行后续处理。
(4)报文特征向量化:以闭合频繁项作为未知协议报文的报文特征,将报文进行向量化表示,报文包含某一闭合频繁项,就将相应的表示位设置为1,否则将表示位设置为0。根据上述方法对每条报文进行向量化表示,而后利用t-sne方法对向量进行降维处理,得到二维的输出数据。
(5)自组织映射聚类:通过向自组织映射神经网络输入降维后的报文向量,神经网络将发现报文向量的规律和报文向量相互之间的关系,同时根据这些报文向量自适应地调整网络,最终输出的神经网络能够发现所有报文向量的类型关系。通过聚类得到最终的神经网络后,每个神经元附近的报文向量组成的集合被认为是属于同一个簇,聚类结果由多个簇组成,每个簇代表一种类型的报文向量。
参考图1所示的整体实现流程,本实施例的基于闭合频繁项挖掘的未知协议报文聚类方法主要包括数据预处理、短序列划分、闭合频繁项挖掘、报文特征向量化和自组织映射聚类等5个部分,具体的实施方式以下分别说明。
(1)数据预处理
本发明实施例的数据预处理包括报文提取和报文分类两个阶段的工作。
在报文提取阶段,首先通过Wireshark等网络抓包工具收集网络通信报文,如果希望收集特定端口的通信报文,可以利用通信端口信息进行过滤,保留相应端口的通信报文,而后再进行分析和处理。应用层数据通过传输层的TCP协议或者UDP协议传输。对于通过TCP协议传输的报文,依据TCP FIN标志和TCPSYN标志将一个新的应用层报文与之前的应用层报文分隔开。此外,使用TCP协议传输数据报(Packet)时有最大报文段长度(MaximumSegment Size)限制,如果应用层报文(Message)超过一定长度,那么应用层报文会被分片封装成多个TCP数据报进行传输。所以,为了能够得到完整的应用层报文,需要将TCP协议传输的数据报进行重组,得到完整报文。
使用UDP协议传输应用层数据时则没有最大报文段长度限制。每个UDP包的载荷可以被视为一个单独的应用层报文。
在报文分类阶段,为了能够准确获取报文格式,本发明实施例根据连续ASCII可打印字符数对协议报文进行区分,确定是文本型报文、二进制型报文,或者是同时包含文本和二进制字符的混合型报文。进行区分的目的有两点:首先,对报文进行粗分类从而使得后续的聚类更加准确。例如一条文本型报文和一条二进制型报文一般不会属于同一类型的报文。其次,在后续处理时,能够对这三类报文进行不同处理。文本型报文和二进制型报文的分词处理与普通分词相同,而混合型报文在分词时往往需要确立二进制内容和文本内容边界,然后针对不同的内容进行分词,这样的处理方法更加高效。
进行报文分类的具体方法是:如果报文内全是ASCII可打印字符,则可判断该报文为文本型报文;如果报文内连续ASCII可打印字符数量超过了一个预先设定好的阈值,则判断报文为混合型报文;如果报文内连续ASCII可打印字符数量没有超过该预设的阈值,则判断报文为二进制型报文。
(2)短序列划分
本发明实施例使用n-gram方法对报文进行分词。因为n-gram方法不需要分界符的信息,因此这种方法适用于二进制、文本、混合类型的各类协议。n-gram方法是自然语言处理中一种重要的分词方法,其思想是,产生第i个词的概率是由该词之前产生的n-1个词决定的,也就是说出现在第i位上的词仅与它前面的n-1个词有关。例如,一个报文序列“1001001”,当n-gram中的参数n=3时,则分词结是:“100”,“001”,“010”,“100”和“001”。在本步中,对于二进制类型报文与文本报文,使用基本的n-gram分词即可,而对于混合类型报文,需要预先确定二进制内容和文本内容的边界,然后对不同类型的内容进行分词。在本发明实施例的分词过程中,n是变化的,从而取得长短不同的短序列。n的取值从设置的最小值MINn到设置的最大值MAXn逐渐增长,这样可以保证完整的关键词被包含在n-gram的分词结果中。
(3)闭合频繁项挖掘
本发明实施例的闭合频繁项挖掘包括频繁项挖掘和闭合属性筛选两个阶段的工作。
第一个阶段是频繁项挖掘。如果一个序列的出现频次很高,那么这个序列就是一个频繁项。为了提取出频繁项,首先要对n-gram分词得到的短序列的出现次数进行统计。其次,对得到的所有短序列进行频繁度计算。在本发明实施例中,频繁度指的是某个短序列出现的总次数(也就是总出现频次)与短序列总数量的比值。为了确定频繁项,需要预先设置一个频繁项阈值。如果一个短序列的频繁度超过了设置的阈值,则判定该短序列为一个频繁项,否则该短序列就是非频繁项。
第二个阶段是闭合属性筛选。在分词算法中,为了得到完整的关键词。n-gram方法中n的取值是从设置的最小值到设置的最大值逐一变化,得到的短序列长短不一。本发明实施例希望获得完整的关键词作为报文特征。在通信协议中,协议关键词往往会在报文中反复出现。对于未知协议,协议关键词的这种特性也是稳定的。为了获得完整的关键词,需要根据Apriori性质对短序列进行分析处理。在频繁模式挖掘领域,Apriori性质指的是一个频繁项的任意子序列也应该是频繁项,一个非频繁项的任意超序列也应该是非频繁项。本发明实施例在Apriori性质的基础上提出闭合属性对短序列频繁项进行筛选。一个集合中的序列A拥有闭合属性,当且仅当在该集合中没有任何一个序列是A的超序列,并且该序列的频繁度等于A的频繁度。依次检查每个频繁项是否满足闭合属性,如果不满足闭合属性,则将该频繁项移除,最终得到满足闭合属性的所有频繁项的集合。
(4)报文特征向量化
本发明实施例的报文特征向量化包括稀疏矩阵构建和利用t-sne方法降维两个阶段的工作。
第一个阶段是稀疏矩阵构建。依据闭合频繁项集合,对每条报文进行向量化表示,将每条报文表示成由0和1组成的序列,进而形成报文样本集的稀疏矩阵。假设闭合频繁项集合中包含了k个闭合频繁项,一条报文序列的向量化后表示为M={feature1,feature2,...featurek},其中featurei与第i个闭合频繁项相对应,如果报文拥有某个闭合频繁项,则向量化过程中将相应的元素置为1;如果报文中没有出现这个闭合频繁项,则向量化过程中将相应的元素置为0。
例如,若闭合频繁项集中只包含三个短序列“GET”,“POST”,“HTTP/1.1”,那么报文“GET www.***.com HTTP/1.1”可以被表示为(1,0,1),因为该报文中包含了闭合频繁项“GET”和“HTTP/1.1”,但没有包含“POST”。报文“POST www.sina.cn HTTP/1.1”可以被表示为(0,1,1),因为该报文中包含了闭合频繁项“POST”和“HTTP/1.1”,但没有包含“GET”。
第二个阶段是利用t-sne方法降维。本发明实施例针对的对象是未知协议,缺乏协议的规范信息,对报文向量化后的数据进行降维主要考虑到两点原因。第一,频繁度阈值如果设置的过小,会导致数据维度太高。当设置的频繁度阈值过小时,会使得在闭合频繁项挖掘时得到的闭合频繁项较多,报文向量化时数据维度相应偏高。第二,在n-gram分词时,如果n值选择过小,频繁项特征会被分割,导致冗余的产生。例如“User-Agent”是一个长度为10的一个频繁项特征。然而如果所设置的n的最高值为8,那么这个特征会被描述为三个特征:“User-Age”,“ser-Agen”,“er-Agent”。在报文向量化表示时,一个拥有真实频繁项特征“User-Agent”的报文被三个维度表示,这种冗余需要通过降维进行处理。t-sne(T-distributed Stochastic Neighbor Embedding)是一种非线性降维算法,适合将高维数据降维到2维或者3维。t-sne方法在将高维数据映射到低维的同时,尽量保证样本各维度之间的分布概率不变,能够使相似度小的样本之间距离更大,相似度大的样本之间距离更小,解决传统降维算法造成样本数据在样本空间中拥挤的问题。t-sne将欧几里得距离转换为条件概率来表达点与点之间的相似度。对于网络报文这种类型的数据来说,t-sne是非常适用的一种降维方法。在本发明实施例中,t-sne算法的输入是高维的报文向量,降维后的维度值设置为2,输出得到二维数据,即输出的结果是二维的报文向量。
(5)自组织映射聚类
本发明实施例将自组织映射神经网络应用于未知协议报文向量的聚类。自组织映射(Self-organization Mapping,SOM)神经网络是一种重要的基于无监督学习方法的神经网络类型。通过向自组织映射神经网络输入样本,神经网络将发现输入样本的规律和输入样本相互之间的关系,并且根据这些输入样本自适应地调整网络,使最终输出的神经网络能够找到所有输入样本的类型关系。自组织映射神经网络被应用于聚类时,其竞争层通过寻找神经元的最优参考向量集合来对输入样本点进行分类。
与传统聚类方法相比,自组织映射(Self-organization Mapping)聚类方法不需要太多先验知识,仅需要对神经网络的神经拓扑结构和迭代次数进行调整即可。由于未知报文的聚类缺乏先验知识,因此自组织映射神经网络无需先验知识的特征对于未知报文的聚类来说十分契合。
由于上一阶段降维得到的是二维数据,所以本发明在实施自组织映射聚类时,使用二维平面阵的自组织神经网络作为网络模型。当一个训练数据被输入到自组织映射神经网络时,网络会计算出所有神经元与该输入的训练数据之间的欧式距离。与输入数据最接近的神经元被称为最佳匹配单元。在确定最佳匹配单元以后,最佳匹配单元的参考向量将被更新,同时邻近区域神经元的参考向量也将被更新。距离最佳匹配单元远近不同的神经元更新的权重不同,离最佳匹配单元近的神经元在更新时权重大,离最佳匹配单元远的神经元在更新时权重小。更新权重大小的不同能够促使不同簇之间的距离增加。在更新完所有神经网络结点后,再输入下一个训练样本。通过聚类得到最终的神经网络后,每个神经元附近的样本结点集合被认为是属于同一个簇,聚类结果由多个簇组成,每个簇代表一种类型的报文。至此,完成了不同类型报文的聚类。
综上所述,本发明的基于闭合频繁项挖掘的未知协议报文聚类方法,首先在预处理阶段,将目标协议的数据报转换成报文,然后按照连续最大可打印字符数将报文分成二进制类型、文本类型以及混合类型。在短序列划分阶段,对得到的报文使用n值可变的n-gram分词方法进行分词,得到报文短序列。根据分词的结果,在闭合频繁项挖掘阶段,首先确定频繁项,而后从中选择出满足闭合属性的频繁项。在报文特征向量化阶段,根据报文是否包含相应的闭合频繁项特征对报文进行向量化处理,在完成报文向量化后,使用t-sne降维算法缩减报文向量的维度,最后采取自组织映射聚类方法对报文向量进行聚类,将同种类型的报文向量聚集在一起。本发明适用于协议规范未知的网络通信协议,采用协议报文中的闭合频繁项作为特征对报文进行聚类,解决了传统序列比对方法用于聚类时准确性低的缺点,具有通用性强、聚类准确性高的优势。
与以上实施例提供的基于闭合频繁项挖掘的未知协议报文聚类方法相对应地,本发明具体实施例还提供了一种基于闭合频繁项挖掘的未知协议报文聚类***,包括:报文捕获模块、短序列分割模块、闭合频繁项获取模块、报文向量生成模块以及报文向量聚类模块;
所述报文捕获模块,用于将网络中捕获的数据报转换成报文;
所述短序列分割模块,用于将报文分割成各个短序列;
所述闭合频繁项获取模块,用于根据短序列的出现频次,设置频繁度阈值,提取出短序列中的频繁项,然后依据闭合属性对频繁项进行筛选,进而获得其中的闭合频繁项;
所述报文向量生成模块,用于以闭合频繁项为基础,对报文进行向量化表示并对向量进行降维处理获得降维后的报文向量;
所述报文向量聚类模块,用于针对降维后的报文向量,通过向自组织映射神经网络,依据向量间的距离对报文向量进行聚类,将相同类型的报文向量聚类。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,
装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
Claims (5)
1.一种基于闭合频繁项挖掘的未知协议报文聚类方法,其特征在于,包括:将获取的数据报转换成报文;将报文分割成各个短序列;根据短序列的出现频次以及设置的频繁度阈值提取出短序列中的频繁项,然后依据闭合属性对频繁项进行筛选,进而获得其中的闭合频繁项;以闭合频繁项为基础,对报文进行向量化表示并对向量进行降维处理获得降维后的报文向量;
针对降维后的报文向量,通过自组织映射神经网络,依据向量间的距离对报文向量进行聚类,将相同类型的报文向量聚类;
将报文分割成各个短序列之前还包括将报文划分为文本型报文、二进制型报文以及包含文本和二进制字符的混合型报文三类;将报文分割成各个短序列的方法包括:
对于二进制型报文与文本型报文,使用n-gram分词方法直接分词,而对于混合型报文,根据预先确定的二进制内容和文本内容的边界,对不同类型的内容进行分词;
使用n-gram分词方法分词时,n的取值从设置的最小值到设置的最大值逐一增长;
所述数据报包括通过TCP协议传输的应用层数据报和通过UDP协议传输的应用层数据报;将获取的数据报转换成报文具体包括:对于通过TCP协议传输的应用层数据报,依据TCPFIN标志和TCP SYN标志将一个新的应用层报文与之前的应用层报文分隔开并进行重组,得到完整的应用层报文;
对于通过UDP协议传输的应用层数据报,每个UDP数据报的载荷被视为一个独立的应用层报文;
以闭合频繁项为基础,对报文进行向量化表示并对向量进行降维处理获得降维后的报文向量的具体方法为:
以闭合频繁项集合为基础对每条报文进行向量化表示,如果报文拥有某个闭合频繁项,则向量化过程中将相应的元素置为1;如果报文中没有出现这个闭合频繁项,则向量化过程中将相应的元素置为0;此后,利用t-sne方法对报文向量进行降维,将高维的报文向量转化为二维的报文向量;
自组织映射聚类的过程包括:通过将降维后的报文向量输入自组织映射神经网络,神经网络将发现报文向量的规律和报文向量之间的相互关系,聚类得到的神经网络,每个神经元附近的报文向量的集合被认为是属于同一个簇,代表这些报文向量属于同一种类型。
2.根据权利要求1所述的一种基于闭合频繁项挖掘的未知协议报文聚类方法,其特征在于,根据短序列的出现频次以及设置的频繁度阈值提取出短序列中的频繁项的过程包括:统计各短序列总出现频次,将短序列总出现频次与短序列总数量的比值作为该短序列的频繁度;如果一个短序列的频繁度超过了设定的频繁度阈值,那么该短序列就是一个频繁项,否则该短序列就不是频繁项。
3.根据权利要求1所述的一种基于闭合频繁项挖掘的未知协议报文聚类方法,其特征在于,依据闭合属性对频繁项进行筛选具体包括:
依次检查每个频繁项是否具有闭合属性,选择满足闭合属性的频繁项构成闭合频繁项集合,其中判定一个集合中的序列A拥有闭合属性的方法为:当且仅当在序列A所在的集合中没有任何一个序列是序列A的超序列,并且该序列的频繁度等于序列A的频繁度,则判定该集合中的序列A拥有闭合属性。
4.一种基于闭合频繁项挖掘的未知协议报文聚类***,其特征在于,包括:报文捕获模块、短序列分割模块、闭合频繁项获取模块、报文向量生成模块以及报文向量聚类模块;
所述报文捕获模块,用于将网络中捕获的数据报转换成报文;
所述短序列分割模块,用于将报文分割成各个短序列;
所述闭合频繁项获取模块,用于根据短序列的出现频次,设置频繁度阈值,提取出短序列中的频繁项,然后依据闭合属性对频繁项进行筛选,进而获得其中的闭合频繁项;
所述报文向量生成模块,用于以闭合频繁项为基础,对报文进行向量化表示并对向量进行降维处理获得降维后的报文向量;
所述报文向量聚类模块,用于针对降维后的报文向量,通过自组织映射神经网络,依据向量间的距离对报文向量进行聚类,将相同类型的报文向量聚类;
将报文分割成各个短序列之前还包括将报文划分为文本型报文、二进制型报文以及包含文本和二进制字符的混合型报文三类;将报文分割成各个短序列的方法包括:
对于二进制型报文与文本型报文,使用n-gram分词方法直接分词,而对于混合型报文,根据预先确定的二进制内容和文本内容的边界,对不同类型的内容进行分词;
使用n-gram分词方法分词时,n的取值从设置的最小值到设置的最大值逐一增长;
所述数据报包括通过TCP协议传输的应用层数据报和通过UDP协议传输的应用层数据报;将获取的数据报转换成报文具体包括:对于通过TCP协议传输的应用层数据报,依据TCPFIN标志和TCP SYN标志将一个新的应用层报文与之前的应用层报文分隔开并进行重组,得到完整的应用层报文;
对于通过UDP协议传输的应用层数据报,每个UDP数据报的载荷被视为一个独立的应用层报文;
以闭合频繁项为基础,对报文进行向量化表示并对向量进行降维处理获得降维后的报文向量的具体方法为:
以闭合频繁项集合为基础对每条报文进行向量化表示,如果报文拥有某个闭合频繁项,则向量化过程中将相应的元素置为1;如果报文中没有出现这个闭合频繁项,则向量化过程中将相应的元素置为0;此后,利用t-sne方法对报文向量进行降维,将高维的报文向量转化为二维的报文向量;
自组织映射聚类的过程包括:通过将降维后的报文向量输入自组织映射神经网络,神经网络将发现报文向量的规律和报文向量之间的相互关系,聚类得到的神经网络,每个神经元附近的报文向量的集合被认为是属于同一个簇,代表这些报文向量属于同一种类型。
5.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1~3任意一项权利要求所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011266863.5A CN112367325B (zh) | 2020-11-13 | 2020-11-13 | 基于闭合频繁项挖掘的未知协议报文聚类方法和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011266863.5A CN112367325B (zh) | 2020-11-13 | 2020-11-13 | 基于闭合频繁项挖掘的未知协议报文聚类方法和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112367325A CN112367325A (zh) | 2021-02-12 |
CN112367325B true CN112367325B (zh) | 2023-11-07 |
Family
ID=74516113
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011266863.5A Active CN112367325B (zh) | 2020-11-13 | 2020-11-13 | 基于闭合频繁项挖掘的未知协议报文聚类方法和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112367325B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114839601B (zh) * | 2022-07-04 | 2022-09-16 | 中国人民解放军国防科技大学 | 基于频繁项分析的雷达信号高维时序特征提取方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106815199A (zh) * | 2015-11-30 | 2017-06-09 | 任子行网络技术股份有限公司 | 基于机器学习的协议类型分析方法和装置 |
CN108632252A (zh) * | 2018-04-03 | 2018-10-09 | 中国人民解放军战略支援部队信息工程大学 | 一种私有网络协议迭代逆向分析方法、装置及服务器 |
CN108667839A (zh) * | 2018-05-11 | 2018-10-16 | 南京天控信息技术有限公司 | 一种基于闭合序列模式挖掘的协议格式推断方法 |
CN109951464A (zh) * | 2019-03-07 | 2019-06-28 | 西安电子科技大学 | 未知二进制私有协议的报文序列聚类方法 |
CN110457465A (zh) * | 2019-06-21 | 2019-11-15 | 武汉大学 | 一种针对未知比特流协议的分类方法 |
-
2020
- 2020-11-13 CN CN202011266863.5A patent/CN112367325B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106815199A (zh) * | 2015-11-30 | 2017-06-09 | 任子行网络技术股份有限公司 | 基于机器学习的协议类型分析方法和装置 |
CN108632252A (zh) * | 2018-04-03 | 2018-10-09 | 中国人民解放军战略支援部队信息工程大学 | 一种私有网络协议迭代逆向分析方法、装置及服务器 |
CN108667839A (zh) * | 2018-05-11 | 2018-10-16 | 南京天控信息技术有限公司 | 一种基于闭合序列模式挖掘的协议格式推断方法 |
CN109951464A (zh) * | 2019-03-07 | 2019-06-28 | 西安电子科技大学 | 未知二进制私有协议的报文序列聚类方法 |
CN110457465A (zh) * | 2019-06-21 | 2019-11-15 | 武汉大学 | 一种针对未知比特流协议的分类方法 |
Non-Patent Citations (4)
Title |
---|
基于Simhash的协议数据高频相似序列提取算法;黄学波 等;计算机工程与应用;全文 * |
基于闭合序列模式挖掘的未知协议格式推断方法;张洪泽 等;计算机科学;第46卷(第6期);正文第2节第1段、第4节第一段至第6节最后一段 * |
第5讲 基于网络流量的协议格式推断技术研究进展;田益凡 等;军事通信技术;全文 * |
零知识下的比特流未知协议分类模型;张凤荔 等;计算机科学;第43卷(第8期);正文第1.2节第1段至最后一段 * |
Also Published As
Publication number | Publication date |
---|---|
CN112367325A (zh) | 2021-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110311829B (zh) | 一种基于机器学习加速的网络流量分类方法 | |
CN108900432B (zh) | 一种基于网络流行为的内容感知方法 | |
CN108768986B (zh) | 一种加密流量分类方法及服务器、计算机可读存储介质 | |
CN109218223B (zh) | 一种基于主动学习的鲁棒性网络流量分类方法及*** | |
CN114172688B (zh) | 基于gcn-dl的加密流量网络威胁关键节点自动提取方法 | |
CN111131069A (zh) | 一种基于深度学习策略的异常加密流量检测与分类方法 | |
CN113989583A (zh) | 一种互联网恶意流量检测方法及*** | |
Zhu et al. | Retracted article: traffic identification and traffic analysis based on support vector machine | |
CN112822189A (zh) | 一种流量识别方法及装置 | |
CN110826617A (zh) | 态势要素分类方法及其模型的训练方法、装置及服务器 | |
CN109376797B (zh) | 一种基于二进制编码器和多哈希表的网络流量分类方法 | |
Wang et al. | Optimizing quality-of-information in cost-sensitive sensor data fusion | |
WO2023207013A1 (zh) | 一种基于图嵌入的关系图谱关键人员分析方法及*** | |
Qu et al. | Statistics-enhanced direct batch growth self-organizing mapping for efficient DoS attack detection | |
CN112491894A (zh) | 一种基于时空特征学习的物联网网络攻击流量监测*** | |
CN114048795A (zh) | 一种基于PCA和XGBoost融合的业务类型识别方法 | |
CN112367325B (zh) | 基于闭合频繁项挖掘的未知协议报文聚类方法和*** | |
CN113887642B (zh) | 一种基于开放世界的网络流量分类方法及*** | |
Zeng et al. | Double locality sensitive hashing Bloom filter for high-dimensional streaming anomaly detection | |
CN117633627A (zh) | 一种基于证据不确定性评估的深度学习未知网络流量分类方法及*** | |
CN112383488A (zh) | 一种适用于加密与非加密数据流的内容识别方法 | |
CN114979017B (zh) | 基于工控***原始流量的深度学习协议识别方法及*** | |
CN113852605B (zh) | 一种基于关系推理的协议格式自动化推断方法及*** | |
Yang et al. | Deep learning-based reverse method of binary protocol | |
Zhang et al. | Semi-supervised deep learning based network intrusion detection |
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 |