CN110457465A - 一种针对未知比特流协议的分类方法 - Google Patents
一种针对未知比特流协议的分类方法 Download PDFInfo
- Publication number
- CN110457465A CN110457465A CN201910541785.6A CN201910541785A CN110457465A CN 110457465 A CN110457465 A CN 110457465A CN 201910541785 A CN201910541785 A CN 201910541785A CN 110457465 A CN110457465 A CN 110457465A
- Authority
- CN
- China
- Prior art keywords
- frequent
- frame
- relationship
- episode
- cluster
- 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.)
- Granted
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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/18—Protocol analysers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种针对未知比特流协议的分类方法,首先,将预设特定位置频繁出现的比特流作为协议的特征,找出数据帧所有位置上频繁出现的信息,并构建频繁项集;然后,对构建的频繁项集进行关联关系的检测,并过滤不符合预设条件的频繁项;接着,根据构建的频繁项集和检测出的关联关系,将不同的数据帧转化为布尔向量的表达;再对进行转化后的数据帧进行层次聚类。本发明实现了考虑了位置信息,使得分类的结果更加精确;而使用层次聚类的方法则可以还原出协议的体系层析结构。
Description
技术领域
本发明涉及通信领域,具体涉及一种针对未知比特流协议的分类方法。
背景技术
网络协议分析指的是从获取到的网络数据中对网络协议的种类,格式以及内容进行分析和推断,从而获得目标网络的态势。在军事方面,分析目标网络的协议可以获得敌方拟定的协议格式,从而有可能分析得到敌方互相传递的内容,获得额外的信息,可以先一步对敌方的行动有所反应;也可以从协议中分析出敌方网络的拓扑连接,以此分析敌方网络中通信实体的位置和数量;在民用方面,分析网络的协议可以获知网络中传递的信息,网络管理者可以通过这些对网络进行管理和维护,并以此来对网络环境进行分析和监测。
传统的对网络协议进行分析和检测,往往是通过基于固定特征的方法。传统的网络协议,往往采用固定的格式,比如应用层的协议一般采用固定的端口号。这样,分析人员只要找到了对应的固定特征就可以得到其协议类型,从而根据已知的知识将其与之对应,从而得到其中的信息。
本申请发明人在实施本发明的过程中,发现现有技术的方法,至少存在如下技术问题:
然而,随着网络规模的扩大,信息安全要求的提高,以及服务类型的增加,通信者越来越多地采用专有的协议进行通信,这些协议的格式往往是未知的。因此在这种情况下,通过现有的方法难以根据以往的知识来对其进行分析和解译。
由此可知,现有技术中的方法存在无法对未知比特流协议进行分类或者分类效果不佳的问题。
发明内容
有鉴于此,本发明提供了一种针对未知比特流协议的分类方法,用以解决或者至少部分解决现有技术中的方法存在无法对未知比特流协议进行分类或者分类效果不佳的问题。
本发明提供了一种针对未知比特流协议的分类方法,包括:
步骤S1:将预设特定位置频繁出现的比特流作为协议的特征,找出数据帧所有位置上频繁出现的信息,并构建频繁项集;
步骤S2:对构建的频繁项集进行关联关系的检测,并过滤不符合预设条件的频繁项;
步骤S3:根据构建的频繁项集和检测出的关联关系,将不同的数据帧转化为布尔向量的表达,其中,一个布尔向量对应一个数据帧;
步骤S4:对进行转化后的数据帧进行层次聚类。
在一种实施方式中,步骤S1具体包括:
步骤S1.1:将从网络环境中捕获到的所有的数据帧构成的集合I左侧依次对齐;
步骤S1.2:将所有的帧从帧头起第i个字节进行统计,筛选出其中频繁出现的字节;
步骤S1.3:判断频繁出现的第i个字节的取值k是否超过阈值,如果超过阈值,则表示第i个字节的某个取值k构成一个频繁项,将获得的频繁项记为Aij,其中,j表示为该第i个字节达到阈值标准tf的第j个频繁项,且频繁项包括一级频繁项和n级频繁项;
步骤S1.4:将所有的频繁项最终记为集合F,集合F中包含所有位置上的频繁出现的信息,其中包括一级频繁和n级频繁,n取0,1,2,…p,且在生成更高级的频繁项时,将上一级的频繁项中的内容进行剔除。
在一种实施方式中,步骤S2具体包括:
步骤S2.1:对构建的频繁项集进行关联关系的检测,构建粗关系表;
步骤S2.2:对粗关系表中的内容进行过滤。
在一种实施方式中,步骤S2.1具体包括:
找出所有满足最小置信度的任意两个分别位于帧的前后的两个频繁项Aim和Ajn,且满足i<j;
判断两个频繁项之间的置信度和反向的置信度,当置信度大于阈值trl的时,且反向的置信度小于te,则记录下该关系Aim->Ajn,其中->符号左侧的频繁项称为前项,反之称为后项;
将所有的频繁项取完后,所有的关系构成一个粗关系表R。
在一种实施方式中,步骤S2.2具体包括:
依次检查粗关系表中所有的关系,当一个后项同时拥有多个前项时,对保留反向置信度最大的一组关系进行保留,并剔除其他的关系;
将剩余的关系按照其频繁项Aim中i的顺序依次排序,最终构造出含有s个结点的关系树T。
在一种实施方式中,所述方法包括:
当最终构造的关系树的数量大于1时,将获得的多个关系树放在同一个根结点下。
在一种实施方式中,步骤S3具体包括:
步骤S3.1:将关系树T的每一个结点分别编码为n1,n2,…,ns;
步骤S3.2:依据结点是否存在,将帧集合I中的每一个帧分别用0和1来表示,构成一个s维的布尔向量,其中的第k个坐标的取值表示nk是否存在,最终由帧的集合I获得一个向量构成的集合Iv。
在一种实施方式中,步骤S4具体包括:
步骤S4.1:采用杰卡德距离衡量向量集合Iv中任意两个向量vi和vj之间的距离,每一个样本分别构成一个单独的簇,进行层次聚类得到一个树状图结构;
步骤S4.1:根据设置的聚类数量,依次分出每一个类别,分出地类别与数据帧实际的类别相对应。
在一种实施方式中,所述方法还包括:
分析每一个簇帧的独立性,复原出协议的层次体系结构。
本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:
本发明提供的一种针对未知比特流协议的分类方法,首先,将预设特定位置频繁出现的比特流作为协议的特征,找出数据帧所有位置上频繁出现的信息,并构建频繁项集;然后,对构建的频繁项集进行关联关系的检测,并过滤不符合预设条件的频繁项;再根据构建的频繁项集和检测出的关联关系,将不同的数据帧转化为布尔向量的表达,其中,一个布尔向量对应一个数据帧;最后,对进行转化后的数据帧进行层次聚类。
本发明通过基于频繁特征提取和关联规则挖掘,考虑不同种类的协议频繁字串有所不同的特性,提出的一种面向格式和内容未知的比特流协议的帧的分类系统,使得分类后的帧簇中帧的种类相对较为单纯。本方法充分考虑了帧中不同协议固有字段的位置信息,通过对构建的频繁项集进行关联关系的检测,并过滤不符合预设条件的频繁项,找到构成不同协议类型的关键字段,之后利用基于杰卡德距离的层次聚类算法对协议种类不同的帧进行分类,考虑了位置信息使得分类的结果更加精确;
进一步地,本发明采用层次聚类的方法,可以还原出协议的体系层析结构,进而对独立簇进行进一步分析。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一种针对未知比特流协议的分类方法的流程示意图;
图2为本发明实施例的一级频繁提取的的流程图;
图3为本发明实施例的多级频繁提取的流程图;
图4为本发明实施例的关系树挖掘的流程图;
图5为本发明实施例的置信度最高准则示意图;
图6为本发明实施例的层次聚类流程图;
图7为本发明实施例的独立性分析示意图。
具体实施方式
本发明的目的在于针对现有技术中的方法存在无法对未知比特流协议进行分类或者分类效果不佳的问题,提出一种针对未知比特流协议的分类方法,从而提高分类的准确性,改善分类效果。
为达到上述目的,本发明的主要构思如下:
基于频繁特征提取和关联规则挖掘,考虑不同种类的协议频繁字串有所不同的特性,提出的一种面向格式和内容未知的比特流协议的帧的分类方法,使得分类后的帧簇中帧的种类相对较为单纯。本方法充分考虑了帧中不同协议固有字段的位置信息,提出了关系树的概念,通过关系树的构建找到构成不同协议类型的关键字段,之后利用基于杰卡德距离的层次聚类算法对协议种类不同的帧进行分类,考虑了位置信息使得分类的结果更加精确;而使用层次聚类的方法则使得有可能还原出协议的体系层析结构。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本实施例提供了一种针对未知比特流协议的分类方法,请参见图1,该方法包括:
步骤S1:将预设特定位置频繁出现的比特流作为协议的特征,找出数据帧所有位置上频繁出现的信息,并构建频繁项集;
具体来说,本申请发明人通过大量的实践与研究,发现:常见的协议逆向分析方法往往针对一种单一格式的协议,比如某种特定的应用层协议,这时获得的协议格式往往是彼此相似的,因此,提出一种通过基于不同字节统计特性的分析,对协议的格式以及其语义,进行一定的划分和识别的方法。但是,在整个网络体系的各种类型的协议的格式都是未知的情况下,捕获到的不同帧之间往往有很多的差异,如果只针对某一种特定格式的协议进行分析的手法,可能会无效化。
网络协议中的帧往往存在着多种类型,常见的帧分为传递数据的数据帧和用来对网络进行控制的控制帧。数据帧往往较长,且格式不是十分固定;而控制帧往往长度较短,其格式较为统一。如在互联网的协议层次中,同一个网络环境下的数据帧往往分有许多不同层次的协议构成,而在同一网络层次,也有不同种类型的协议,例如,互联网协议体系下在传输层的协议就分别有TCP和UDP两种,而互联网协议体系又可以分为若干个层次,因此对未知的比特流帧进行推理的首要前提就是先将捕捉到的帧按照其类别进行划分,得到类型较为纯正的帧集合,再对其内容进行推断。
对未知的帧进行分类,首先要找到不同类型帧的特征,然后依据该特征对其进行分类。对于未知的帧来说,频繁出现的字节或者字串是简单而又容易处理的特征。不同类型的协议所对应的帧,其频繁出现的字节或字串有所不同。将频繁的字节称为频繁项,那么首先需要将频繁项处提取出来。一般的进行频繁提取,往往使用传统的关联规则挖掘算法,这样的算法只考虑频繁项的内容信息,对于比特流协议的特点往往并不好。
因而,本发明提供的方法在提取特征的同时,考虑了数据帧中不同协议类型固有字段的位置信息,从而使得聚类结果更为准确。
频繁出现的信息即为提取的特征,用于后续聚类。
步骤S2:对构建的频繁项集进行关联关系的检测,并过滤不符合预设条件的频繁项。
具体来说,步骤S2是对S1中构建的频繁项集进行关联规则的挖掘,例如将满足最小置信度阈值的频繁项挖掘出来,然后再根据两个频繁项之间的关联程度进行进一步挖掘。
步骤S3:根据构建的频繁项集和检测出的关联关系,将不同的数据帧转化为布尔向量的表达,其中,一个布尔向量对应一个数据帧。
步骤S3是对数据帧进行格式转化,便于后续的聚类。
步骤S4:对进行转化后的数据帧进行层次聚类。
具体来说,可以根据向量集合Iv中任意两个向量vi和vj之间的距离,进行聚类。
在一种实施方式中,步骤S1具体包括:
步骤S1.1:将从网络环境中捕获到的所有的数据帧构成的集合I左侧依次对齐;
步骤S1.2:将所有的帧从帧头起第i个字节进行统计,筛选出其中频繁出现的字节;
步骤S1.3:判断频繁出现的第i个字节的取值k是否超过阈值,如果超过阈值,则表示第i个字节的某个取值k构成一个频繁项,将获得的频繁项记为Aij,其中,j表示为该第i个字节达到阈值标准tf的第j个频繁项,且频繁项包括一级频繁项和n级频繁项;
步骤S1.4:将所有的频繁项最终记为集合F,集合F中包含所有位置上的频繁出现的信息,其中包括一级频繁和n级频繁,n取0,1,2,…p,且在生成更高级的频繁项时,将上一级的频繁项中的内容进行剔除。
具体来说,步骤S1.1捕捉到的数据帧为已经进行分帧处理的数据帧。从帧头起第i个字节进行统计,即根据考虑了位置信息。
其中一级频繁的提取较为特殊,如图2所示,一级频繁使用到了三个阈值,分别为tf1,tr和tl。其中,tf1表示频繁阈值,当超过该值时即认为该字节位置的取值k是频繁的。tr表示剩余帧数停止条件。当当前进行到第i个字节时,如果剩余的帧数小于该值时即停止当前循环;tl表示帧长度停止条件。当i>tl时停止当前循环。
一级频繁每个取值k只有256种可能,即从0到255,分别对这256种取值出现的频次进行统计,然后取值k出现的次数为sk,当满足时,就认为该取值k是频繁的。
实施例具体的实施过程说明如下:
预设帧数u=3030,p=2,tf1=0.04,tl=40,tr=50,i=4对帧集合I进行第一次的一级频繁提取。当进行到第4个字节时,在第4个字节仍然有取值的帧数为c=3030帧。首先要满足c>tr,同时也要满足4<tl,满足以上条件之后,分别统计第4个字节的所有256种取值的出现的数量,在tf1=0.04的情况下,此时根据频繁阈值所得到的最小频繁数目的阈值为u·tf1=121帧:假设第4个字节含有取值为k的帧数为sk,比如k=17时sk=2424,而当k=56时sk=1818,2424和1818都超过了121,那么17和56两个取值都满足频繁阈值的要求。当其中k表示一个字节的256种取值,令k值从0取到255依次增加,分别计算。最终在这256个取值当中,比如最终只有k=17和k=56这两种取值时的那么当满足时,即可将当前挖掘到的两个一级频繁项4-7,4-56依次添加到频繁项集F中;而若以上条件不满足,则不考虑该位置的频繁项。依次增加i的大小,直到i的循环停止。
生成p级频繁的时,需要使用p-1级频繁作为候选集,根据apriori原理来进行更高的频繁项的生成和检出。与一级频繁提取步骤相比,p级频繁的提取额外需要阈值tc和tfp。其中,首先需要获得相邻的一组频繁项,其中x从Aim中获得,m取0到在第i个字节频繁项的个数,y则从A(i+1)n中取值,n取0到第i+1个字节频繁项的个数。tc规定了两个相邻频繁项x和y的差值,当满足|P(x)-P(y)|<tc时,则认为x,y构成了候选p级频繁Aim,n,计算Aim,n的频率P(Aim,n),之后再和p级频繁的频繁阈值tfp比较,满足阈值的p级频繁则会被记录下来到F,同时将构成该p级频繁的两个p-1级频繁从F中剔除。计算P(Aim,n)时需要使用AC算法进行多模式匹配。该i取值下所有可能的组合Aim,n处理完毕后,i的值加1,继续处理下一个字节位置。
实施例具体的实施过程说明如下:
预设帧数u=3030,设定p=2,i=4,tc=0.1,tf2=1.5×10-4,那么此时需要生成二级频繁,如图3所示,那么此时需要从i=4的一级频繁中取出所有的频繁项,比如4-7,4-56;也需要从i=5的一级频繁中取出所有的频繁项,比如5-128,5-250,5-18三个,之后需要将这相邻的两组频繁项进行完全的组合,因此,共有6种,分别是4-7,128;4-7,250;4-7,18;4-56,128;4-56,250;4-56,18,其中后面的两位代表连续两个字节的频繁项。分别比较任意两个组合的的频率的差值,其中满足|P(A4p)-P(A5q)|<0.1的组合为4-7,128;4-7,18;4-56,250;4-56,18这4个组合。而在这个组合中,分别检测在第4,第5字节出现7,128;7,18;56,250;56,18等4个值的频率,分别与1.5×10-4相比较,最终记录下满足该条件的值4-56,18,并将其记录到频繁项集F中。现在生成了更高级别的频繁项,因此在F中需要剔除掉低级别的两个频繁项4-56;5-18。
在一种实施方式中,步骤S2具体包括:
步骤S2.1:对构建的频繁项集进行关联关系的检测,构建粗关系表;
步骤S2.2:对粗关系表中的内容进行过滤。
在一种实施方式中,步骤S2.1具体包括:
找出所有满足最小置信度的任意两个分别位于帧的前后的两个频繁项Aim和Ajn,且满足i<j;
判断两个频繁项之间的置信度和反向的置信度,当置信度大于阈值trl的时,且反向的置信度小于te,则记录下该关系Aim->Ajn,其中->符号左侧的频繁项称为前项,反之称为后项;
将所有的频繁项取完后,所有的关系构成一个粗关系表R。
具体来说,在步骤1所得到的频繁项集F,是一个包含p级频繁项的csv表格,其中p=0,1,2,…,n,该表格中的每一行代表一个频繁项,所有的频繁项均在频繁项集F中记录。每一行中分别记录了该频繁项所在的字节位置i,以及频繁项的内容Aij。由关系树所有结点构成的集合T,满足
首先,找到所有满足最小置信度的任意两个分别位于帧的前后的两个频繁项Aim和Ajn,那么根据步骤1中的定义,满足i<j。同时检查两者之间的置信度和反向的置信度。当置信度大于某个阈值trl时,同时反向的置信度小于te则记录下该关系Aim->Ajn,其中->符号左侧的频繁项称为前项,反之称为后项。将所有的频繁项取完后,所有的关系构成一个粗关系表R。
数据帧的前后的两个频繁项Aim和Ajn都是取自于频繁项集F当中。构建两层循环,第一层循环首先从F中取出Aim,第二层循环从F中取出Ajn。其中trl和te都是接近于1的数值。假设频繁项集中的频繁项用fk来表示,其中k=0,1,2…,n。该处的n和前面的不同,表示频繁项集F中频繁项的数目为n个。那么,如果第一次取出的Aim用fp来表时,而第二次取出的Ajn使用fq来表示,那么有p<q。其中,置信度表示为P(Aim|Ajn)>trl,而反向置信度表示为P(Ajn|Aim)<te,满足反向置信度的关系可以排除掉等价项的干扰,将满足上述两个置信度阈值的结构输出到粗关系表R中。处理完毕后,增加n的值,如果n取完最后一个值,则增加j的值,直到Ajn取到频繁项集F中的最后一项。当Ajn取完最后一项后,则Aim取下一项:首先增加m的值,当m取完最后一个值以后,则增加i的值,直到Aim取到频繁项集F中的倒数第二项,结束粗关系表R的输出,开始关系树T的构造,包括粗关系表R构造的整个过程如图4所示。
实施例具体的实施过程说明如下:
设置trl=0.9和te=0.95,均为比如从频繁项集F中首先取出一项2-15,接下来按顺序取出下一项2-25,当前2-25的i=2,并没有大于第一项的2,因此跳过这一项取下一项。下一项为7-40,当前i=7,满足7>2,因此,可以继续下面的流程。如果P(2-25|7-40)>0.9,同时P(7-40|2-25)<0.95,那么该关系就是关系树T中的一部分,因此,将该关系2-25->7-40保存入粗关系表R。如果当P(2-25|7-40)>0.9而且P(7-40|2-25)>0.95同时成立,那么2-25和7-40构成的是等价项,则无需记录该关系进入T中。而如果P(2-25|7-40)<0.9,则直接放弃该项。继续在频繁项集F中取出下一项7-42,由于P(2-25|7-42)<0.9,因此关系2-25->7-42直接被放弃掉。此时继续取Ajn,然后依次进行检查,将F中所有的频繁项集检查完毕后,则Aim取下一项2-25,当Aim取完频繁项集中所有的项之后,该步骤结束。
在一种实施方式中,步骤S2.2具体包括:
依次检查粗关系表中所有的关系,当一个后项同时拥有多个前项时,对保留反向置信度最大的一组关系进行保留,并剔除其他的关系;
将剩余的关系按照其频繁项Aim中i的顺序依次排序,最终构造出含有s个结点的关系树T。
具体来说,在获得粗关系表R后,需要对粗关系表中的内容进行过滤。依次检查粗关系表中所有的关系,一旦一个后项同时拥有多个前项,那么只保留反向置信度最大的一组关系进行保留,其他的关系则剔除掉。将剩余的关系按照其频繁项Aim中i的顺序依次排序,最终构造出含有s个结点的关系树T,若最终获得多个关系树,将获得的多个关系树放在同一个根结点下。
具体实现时,粗关系表由三项内容构成,即B的前驱结点A,A的后继结点B以及它们之间的繁项置信度P(B|A)。其中A和B可以构成一对关系A->B。经过上述步骤后,可能有的结点拥有两个前驱结点。比如,R中的众多记录中包含了两对关系:A->B和C->B。在构造关系树时,需要根据反向的置信度最大的原则,在这两个关系中选取更大的进行保留,而另外一个则放弃,从而形成一个没有环状结构的关系树T。
在粗关系表R生成完毕后,需要开始进行关系树T的构造。关系树T中的每个结点都由一个若干个后继结点和一个前驱结点构成。每一个结点的后继结点时多个,而前驱结点只有一个,故后继结点使用后继结点表来表示。首先初始化一个T的根节点Root,然后依次读入R中的数据rk,其中k=0,1,…,n。n为R中,其中rk的前项为rk(a),后项为rk(b),而当从R中取出第一项则和其他的有所不同。
当从R中取出第一项r1时,首先在根节点下面添加后继结点r1(a),同时在结点r1(a)后面继续添加后继结点r1(b),具体实施例的操作如下:
构造一个根据点Root后,比如读入R表中的第一个数据r1为2-16->17-32,p(b|a)=0.42,在读入第一个关系时,无需考虑该反向置信度,因此,只需在Root的后继结点添加2-16,然后再在2-16的后继结点表中添加17-32。
在添加其余项rk时,则细节有所不同。当取得rk(a)时,需要先遍历T中所有的结点ns,其中s=0,1,2,…,m;m表示目前T中结点的个数。如果存在一个ns=rk(a),则继续检查T中是否存在rk(b)。这时,如果rk(b)不存在,则将rk(b)添加到ns的后继结点表中;如果rk(b)存在,那么假设其前驱结点为bb,则比较P(rk(b)|rk(a))和P(rk(b)|bb)的大小,保留更大的关系;而将另一个关系,在T中剔除掉,即从该前驱结点的后继结点表中剔除掉。返回上一级判断,如果不存在一个ns=rk(a),则需在直接在Root结点下添加rk(a),同时假设rk(b)前驱结点为bb,比较P(rk(b)|rk(a))和P(rk(b)|bb)的大小,保留更大的关系,其余做法如同上述,整个流程如图5所示。
实施例具体的实施过程说明如下:
比如在关系树种已经存在三个结点,分别Root,2-16,17-32,其中2-16是17-32的前驱结点。现在从R种读出第二个关系,假设该关系为4-250->17-32,P(4-250->17-172)=0.6。首先考虑该关系的前驱项4-250。由于原来T种的三项不包括4-250,那么在Root的后继结点列表种添加4-250。接下来考虑17-32,经过在T中的查找,发现T种包含有17-32,因此需要通过比较两个置信度的大小来确定保留哪一个枝。当P(17-32|2-16)>P(17-32|4-250)时,即保留原来T种的枝,不做操作并继续读入下一个关系。反之,剔除掉T中的17-32结点,并在2-16的后继结点表中删除之,同时在T中加入4-250,并在4-250的前驱结点添加Root结点。接下来从R中读取第三个关系,重复上述操作。
在一种实施方式中,所述方法包括:
当最终构造的关系树的数量大于1时,将获得的多个关系树放在同一个根结点下。
在一种实施方式中,步骤S3具体包括:
步骤S3.1:将关系树T的每一个结点分别编码为n1,n2,…,ns;
步骤S3.2:依据结点是否存在,将帧集合I中的每一个帧分别用0和1来表示,构成一个s维的布尔向量,其中的第k个坐标的取值表示nk是否存在,最终由帧的集合I获得一个向量构成的集合Iv。
具体来说,关系树T下除Root外有3个结点,2-16,4-250和17-32。现在从帧集合I中依次读入数据帧framei。其中i=0,1,…,u;u为数据帧的总数。读取了一个帧framei,其在第2个字节取值为16,在第4个字节取值为320,在第17个字节取值为0,那么该帧被转化为布尔向量(1,0,0);而如果另外一帧framej,其中i≠j,在第2个字节取值为7,在第4个字节取值255,由于其帧长没有18,因此在第17个字节没有取值,那么该帧只能被转化为布尔向量(0,0,0)。并将获得的向量添加到由布尔向量构成的集合Iv中。
在一种实施方式中,步骤S4具体包括:
步骤S4.1:采用杰卡德距离衡量向量集合Iv中任意两个向量vi和vj之间的距离,每一个样本分别构成一个单独的簇,进行层次聚类得到一个树状图结构;
步骤S4.1:根据设置的聚类数量,依次分出每一个类别,分出地类别与数据帧实际的类别相对应。
具体来说,对Iv中获得的帧之间进行层次聚类。初始时Iv可以转化为u个簇,其中每个向量都表示单独的一个簇。计算每个簇之间的距离。在进行层次聚类时,计算簇之间的距离时,可以使用group average方法。其进行操作的具体方式如下,
将两个簇中的所有样本一一进行组合,计算它们彼此之间的距离。比如,在两个簇A和B中分别有2个和3个样本,那么在进行完全部的组合后,共需要计算6个距离。之后对这6个距离计算平均值d,那么d即为A和B两个簇之间的距离。而在衡量簇中样本的距离时,则使用杰卡德距离来进行衡量。
实施例具体的实施过程说明如下:
预设在簇A中有(0,0,1)和(0,1,1)两个样本,在簇B中有(1,1,0)和(1,0,0)两个样本,那么首先需要计算4个距离,分别为(0,0,1)和(1,1,0);(0,0,1)和(1,0,0);(0,1,1)和(1,1,0);(0,1,1)和(1,0,0)。根据杰卡德距离的定义,这四个距离计算出来分别为:1,1,0.667,1。两个簇之间的平均距离为0.917。
在将所有簇两两之间的距离计算完毕后,找到所有的距离中最小的哪一个,将这两个簇合并为一个簇,重新计算簇两两之间的距离,如此往复循环,直到剩余的簇的数量为k,此时终止循环。其中的k为设定的聚类数目,具体流程参见图6。
实施例具体的实施过程说明如下:
预设有A、B、C、D四个簇,k=2。其中AB之间的距离为0.6,AC之间的距离为0.8,BC之间的距离为0.7,AD之间的距离为0.9,BD之间的距离为0.74,CD之间的距离为0.3,那么CD两个簇中的样本进行合并,并合并为一个新的簇,在本实施例中定义为E此时还有3个簇,因此需要继续进行合并。之后重新计算各个簇之间的距离。比如计算后簇之间的距离分别为AB为0.6,AE为0.83,BE为0.73,那么此时AB的距离最小,再将AB合并,此时只剩下两个簇,满足k值的要求,可以将结果输出。
当k值确定后,即可输出划分完毕的簇。结果中的簇中的向量与实际的帧一一对应,因此对这些向量的聚类分析也可以视为对数据帧的聚类分析。
在一种实施方式中,所述方法还包括:
分析每一个簇帧的独立性,复原出协议的层次体系结构。
具体来说,由于层次聚类对簇进行合并时,每次只能合并两个簇,在k取某些值时,一个簇下可能会有多种不同的类别的帧,这时需要对簇的独立性进行分析,需要考虑聚类结果树中,目标簇在形成时合并时计算所得到的距离,和进行下一次合并时的距离之间的差值的大小,如图7所示。定义一个簇由两个子簇合并而成,将这个簇称为它的两个子簇的亲簇;定义一个簇的形成距离df为两个子簇之间的距离,那么只需要得到该簇与该簇亲簇形成距离的差值与该簇与该簇子簇之间的距离差值中较大值的比值当该值小于tra则认为当前簇不是独立的。
实施例具体的实施过程说明如下:
预设簇A和簇B合并构成簇D,而簇C和簇D合并构成了簇E,该处tra取0.2。比如簇A的形成距离为0.4,簇B的形成距离为0.3,簇C的形成距离为0.2,簇D的形成距离为0.6,簇E的形成距离为0.8,实施例对簇D进行独立性分析。
其中,的取值为DE之间的距离差值,为0.2;而则取值为DB之间的距离差值,其值为0.3,因此的大小为0.667,该值大于tra的0.2,因此可以认为簇D代表一个独立的帧类型。如需对簇D进行更深层次的研究分析,再将簇D的帧重新作为集合I,返回步骤1继续进行分析。
总体来说,本发明的方法充分考虑了帧中不同协议固有字段的位置信息,提出了关系树的概念,通过关系树的构建找到构成不同协议类型的关键字段,之后利用基于杰卡德距离的层次聚类算法对协议种类不同的帧进行分类,考虑了位置信息使得分类的结果更加精确;而使用层次聚类的方法则使得有可能还原出协议的体系层析结构。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (9)
1.一种针对未知比特流协议的分类方法,其特征在于,包括:
步骤S1:将预设特定位置频繁出现的比特流作为协议的特征,找出数据帧所有位置上频繁出现的信息,并构建频繁项集;
步骤S2:对构建的频繁项集进行关联关系的检测,并过滤不符合预设条件的频繁项;
步骤S3:根据构建的频繁项集和检测出的关联关系,将不同的数据帧转化为布尔向量的表达,其中,一个布尔向量对应一个数据帧;
步骤S4:对进行转化后的数据帧进行层次聚类。
2.如权利要求1所述的方法,其特征在于,步骤S1具体包括:
步骤S1.1:将从网络环境中捕获到的所有的数据帧构成的集合I左侧依次对齐;
步骤S1.2:将所有的帧从帧头起第i个字节进行统计,筛选出其中频繁出现的字节;
步骤S1.3:判断频繁出现的第i个字节的取值k是否超过阈值,如果超过阈值,则表示第i个字节的某个取值k构成一个频繁项,将获得的频繁项记为Aij,其中,j表示为该第i个字节达到阈值标准tf的第j个频繁项,且频繁项包括一级频繁项和n级频繁项;
步骤S1.4:将所有的频繁项最终记为集合F,集合F中包含所有位置上的频繁出现的信息,其中包括一级频繁和n级频繁,n取0,1,2,…p,且在生成更高级的频繁项时,将上一级的频繁项中的内容进行剔除。
3.如权利要求1所述的方法,其特征在于,步骤S2具体包括:
步骤S2.1:对构建的频繁项集进行关联关系的检测,构建粗关系表;
步骤S2.2:对粗关系表中的内容进行过滤。
4.如权利要求3所述的方法,其特征在于,步骤S2.1具体包括:
找出所有满足最小置信度的任意两个分别位于帧的前后的两个频繁项Aim和Ajn,且满足i<j;
判断两个频繁项之间的置信度和反向的置信度,当置信度大于阈值trl的时,且反向的置信度小于te,则记录下该关系Aim->Ajn,其中->符号左侧的频繁项称为前项,反之称为后项;
将所有的频繁项取完后,所有的关系构成一个粗关系表R。
5.如权利要求3所述的方法,其特征在于,步骤S2.2具体包括:
依次检查粗关系表中所有的关系,当一个后项同时拥有多个前项时,对保留反向置信度最大的一组关系进行保留,并剔除其他的关系;
将剩余的关系按照其频繁项Aim中i的顺序依次排序,最终构造出含有s个结点的关系树T。
6.如权利要求5所述的方法,其特征在于,所述方法包括:
当最终构造的关系树的数量大于1时,将获得的多个关系树放在同一个根结点下。
7.如权利要求1所述的方法,其特征在于,步骤S3具体包括:
步骤S3.1:将关系树T的每一个结点分别编码为n1,n2,…,ns;
步骤S3.2:依据结点是否存在,将帧集合I中的每一个帧分别用0和1来表示,构成一个s维的布尔向量,其中的第k个坐标的取值表示nk是否存在,最终由帧的集合I获得一个向量构成的集合Iv。
8.如权利要求1所述的方法,其特征在于,步骤S4具体包括:
步骤S4.1:采用杰卡德距离衡量向量集合Iv中任意两个向量vi和vj之间的距离,每一个样本分别构成一个单独的簇,进行层次聚类得到一个树状图结构;
步骤S4.1:根据设置的聚类数量,依次分出每一个类别,分出地类别与数据帧实际的类别相对应。
9.如权利要求8所述的方法,其特征在于,所述方法还包括:
分析每一个簇帧的独立性,复原出协议的层次体系结构。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910541785.6A CN110457465B (zh) | 2019-06-21 | 2019-06-21 | 一种针对未知比特流协议的分类方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910541785.6A CN110457465B (zh) | 2019-06-21 | 2019-06-21 | 一种针对未知比特流协议的分类方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110457465A true CN110457465A (zh) | 2019-11-15 |
CN110457465B CN110457465B (zh) | 2022-04-26 |
Family
ID=68480680
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910541785.6A Active CN110457465B (zh) | 2019-06-21 | 2019-06-21 | 一种针对未知比特流协议的分类方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110457465B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112367325A (zh) * | 2020-11-13 | 2021-02-12 | 中国人民解放军陆军工程大学 | 基于闭合频繁项挖掘的未知协议报文聚类方法和系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101753622A (zh) * | 2009-12-25 | 2010-06-23 | 青岛朗讯科技通讯设备有限公司 | 一种应用层协议特征的提取方法 |
CN103297427A (zh) * | 2013-05-21 | 2013-09-11 | 中国科学院信息工程研究所 | 一种未知网络协议识别方法及系统 |
CN103795817A (zh) * | 2012-10-26 | 2014-05-14 | 国际商业机器公司 | 为设备设置网络协议中的租约时间值的方法和系统 |
CN104767736A (zh) * | 2015-03-23 | 2015-07-08 | 电子科技大学 | 将未知单协议数据流分离为不同类型的数据帧的方法 |
CN104796407A (zh) * | 2015-03-23 | 2015-07-22 | 电子科技大学 | 一种未知协议特征的提取方法 |
US20160179903A1 (en) * | 2014-12-23 | 2016-06-23 | Ran Bittmann | Enhancing frequent itemset mining |
CN107689899A (zh) * | 2017-09-01 | 2018-02-13 | 南京南瑞集团公司 | 一种基于比特流的未知协议识别方法及系统 |
CN109033636A (zh) * | 2018-07-27 | 2018-12-18 | 电子科技大学 | 基于链路层比特流盲分析的链路层接入机制分析方法 |
-
2019
- 2019-06-21 CN CN201910541785.6A patent/CN110457465B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101753622A (zh) * | 2009-12-25 | 2010-06-23 | 青岛朗讯科技通讯设备有限公司 | 一种应用层协议特征的提取方法 |
CN103795817A (zh) * | 2012-10-26 | 2014-05-14 | 国际商业机器公司 | 为设备设置网络协议中的租约时间值的方法和系统 |
CN103297427A (zh) * | 2013-05-21 | 2013-09-11 | 中国科学院信息工程研究所 | 一种未知网络协议识别方法及系统 |
US20160179903A1 (en) * | 2014-12-23 | 2016-06-23 | Ran Bittmann | Enhancing frequent itemset mining |
CN104767736A (zh) * | 2015-03-23 | 2015-07-08 | 电子科技大学 | 将未知单协议数据流分离为不同类型的数据帧的方法 |
CN104796407A (zh) * | 2015-03-23 | 2015-07-22 | 电子科技大学 | 一种未知协议特征的提取方法 |
CN107689899A (zh) * | 2017-09-01 | 2018-02-13 | 南京南瑞集团公司 | 一种基于比特流的未知协议识别方法及系统 |
CN109033636A (zh) * | 2018-07-27 | 2018-12-18 | 电子科技大学 | 基于链路层比特流盲分析的链路层接入机制分析方法 |
Non-Patent Citations (2)
Title |
---|
XUE LI: "Joint Frame Synchronization and CCSDS Convolutional Code Identification Based on Correlation of Codeword", 《2015 FIFTH INTERNATIONAL CONFERENCE ON INSTRUMENTATION AND MEASUREMENT, COMPUTER, COMMUNICATION AND CONTROL (IMCCC)》 * |
蔡乐 等: "基于关联规则挖掘的未知协议特征提取方法", 《电子信息对抗技术》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112367325A (zh) * | 2020-11-13 | 2021-02-12 | 中国人民解放军陆军工程大学 | 基于闭合频繁项挖掘的未知协议报文聚类方法和系统 |
CN112367325B (zh) * | 2020-11-13 | 2023-11-07 | 中国人民解放军陆军工程大学 | 基于闭合频繁项挖掘的未知协议报文聚类方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110457465B (zh) | 2022-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109768985B (zh) | 一种基于流量可视化与机器学习算法的入侵检测方法 | |
CN110245496A (zh) | 一种源代码漏洞检测方法及检测器和其训练方法及系统 | |
CN112381121A (zh) | 一种基于孪生网络的未知类别网络流量的检测与识别方法 | |
CN108363997A (zh) | 一种在视频中对特定人的实时跟踪方法 | |
CN109951444A (zh) | 一种加密匿名网络流量识别方法 | |
CN104933444B (zh) | 一种面向多维属性数据的多层聚类融合机制的设计方法 | |
EP3349152A1 (en) | Classifying data | |
CN106228554B (zh) | 基于多属性约简的模糊粗糙集煤粉尘图像分割方法 | |
CN109284626A (zh) | 面向差分隐私保护的随机森林算法 | |
CN110034966B (zh) | 一种基于机器学习的数据流分类方法及系统 | |
CN104809393A (zh) | 一种基于流行度分类特征的托攻击检测算法 | |
Chkirbene et al. | Machine learning based cloud computing anomalies detection | |
CN106060039A (zh) | 一种面向网络异常数据流的分类检测方法 | |
Gogoi et al. | A rough set–based effective rule generation method for classification with an application in intrusion detection | |
CN112766119A (zh) | 一种基于多维度人脸分析精准识别陌生人构建社区安防的方法 | |
CN110457465A (zh) | 一种针对未知比特流协议的分类方法 | |
CN107689899A (zh) | 一种基于比特流的未知协议识别方法及系统 | |
CN106156321B (zh) | 一种面向分布异构安全数据流的数据挖掘模型系统 | |
CN106611180A (zh) | 基于测试代价的决策树分类器构造方法 | |
CN109286622A (zh) | 一种基于学习规则集的网络入侵检测方法 | |
CN109002856A (zh) | 一种基于随机游走的流量特征自动生成方法与系统 | |
CN115982722B (zh) | 一种基于决策树的漏洞分类检测方法 | |
CN114666273B (zh) | 一种面向应用层未知网络协议的流量分类方法 | |
CN114343665B (zh) | 一种基于图卷积空时特征融合选择的心律失常识别方法 | |
CN109871469A (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 |