基于关联性命令控制信息的流量识别方法及系统的制作方法

文档序号:7766598阅读:228来源:国知局
专利名称:基于关联性命令控制信息的流量识别方法及系统的制作方法
技术领域
本发明涉及信息安全与监控技术领域,尤其涉及一种基于关联性命令控制信息的 流量识别方法及系统。
背景技术
网络流分类和协议识别技术是信息安全和监控领域中的核心技术。其主要任务是 根据网络流及流内报文包含的信息识别出流所属的网络协议类别。随着高速互联网技术和 多媒体技术的发展,网络的有效管理变得越来越富有挑战性。流分类是网络管理的基础,也 是解决网络拥塞、确定关键性服务、组织网络攻击、追踪非法流量的基础。
现有的网络流分类和协议识别技术包括基于包头的技术、基于协议的技术和基 于行为的技术。分类和识别方法主要有基于模式匹配的方法、基于统计的方法和基于机器 学习的方法。
基于包头和协议的技术通过对包中载荷里的字段分析,得到目标协议中特定字段 的固定模式,并应用模式匹配的方法进行协议识别。该类方法识别速度快,准确率高,但是 更新代价较大,无法识别加密流量和协议。
基于行为的技术主要利用目标协议在网络中的传输行为特征,应用统计和机器学 习的方法进行网络流分类和识别。该类方法一般情况下的识别速度和准确率都逊于基于包 头和协议的匹配方法。但是,该类方法不需要分析载荷中的内容,因此能够识别加密流量。
尽管传统的基于端口的流分类方法和基于固定载荷特征的流分类方法仍然在大 量使用,但是越来越多的动态协议和加密协议使得基于包的流分类方法有效性不断降低。发明内容
(一)要解决的技术问题
本发明所要解决的技术问题是提高流识别的速度、有效性以及适用范围。
( 二 )技术方案
为解决上述问题,本发明提供了一种基于关联性命令控制信息的流量识别方法, 该方法包括步骤
Si.对目标协议流量的初始握手交互过程进行分析,获得载荷中包含的命令控制 信息集合,以及所述命令控制信息之间以交互为主要特征的关联的集合;
S2.根据五元组将待识别的流量分成多条流;
S3.按照目标协议的消息重组的启发性条件集合,判断待识别的流是否能够进行 目标协议的消息重组,若不能,则载入下一条流,并重新执行步骤S3,若能,则执行步骤S4 ;
S4.检查待识别的流的消息中是否包含所述命令控制信息集合中的项,若不包含, 则判断该流为非所述目标协议流量,载入下一条流,并返回步骤S3,若包含,则执行步骤 S5 ;
S5.判断待识别的流的消息的命令控制信息是否符合所述关联集合中的项,若不符合,则判断所述流为非所述目标协议流量,载入下一条流,并返回步骤S3,若符合,则判定 所述流为所述目标协议流量,载入下一条流,并返回步骤S3。
其中,在步骤Sl进一步包括
Si. 1抓取目标协议纯流量;
Si. 2对所述目标协议纯流量进行五元组分流;
Si. 3定义所述目标协议的消息,得到所述目标协议的消息重组的启发性条件;
Si. 4将所述目标协议纯流量中的每个流按照步骤Si. 3中的定义及启发性条件进 行消息重组,获得位于载荷开始位置的流量选定交互过程的命令控制信息集合,并对所述 命令控制信息按照以交互为主要特征的进行关联;
Si. 5对所述关联进行相似度聚类和简化,获得命令控制信息之间的关联的集合。
其中,步骤Si. 1中,抓取方法为在虚拟机中通过防火墙、以及抓包工具,运行所述 目标协议软件,抓取所述目标协议纯流量。
其中,所述五元组为源IP、目的IP、源端口、目的端口、以及协议号。
其中,步骤Si. 3中定义所述目标协议的消息进一步包括
Si. 31定义目标协议的流,为在设定时间内具有相同五元组的包组成的有序集 合;
Si. 32定义目标协议的消息,为目标协议的流中的一个独立的交互步骤,一个消息 包括一个或多个所述包。
其中,步骤Si. 4中,每个消息的中所包含的有效属性包括命令、长度、是否包含 传输数据。
其中,步骤Si. 5中的相似度聚类的方法为k-means聚类算法。
本发明还提供了一种基于关联性命令控制信息的流量识别系统,该系统包括分 析模块,用于对目标协议流量的初始握手交互过程进行分析,获得载荷中包含的命令控制 信息集合,以及所述命令控制信息之间以交互为主要特征的关联的集合;分流模块,用于根 据五元组将待识别的流量分成多条流;第一识别模块,用于按照目标协议的消息重组的启 发性条件集合,判断待识别的流是否能够进行目标协议的消息重组;第二识别模块,用于检 查待识别的流的消息中是否包含所述命令控制信息集合中的项;第三识别模块,用于判断 待识别的流的消息的命令控制信息是否符合所述关联集合中的项,若不符合,则判断所述 流为非所述目标协议流量若符合,则判定所述流为所述目标协议流量。
其中,所述敏捷分析模块进一步包括抓取单元,用于抓取目标协议纯流量;分流 单元,用于对所述目标协议纯流量进行五元组分流;定义单元,用于定义所述目标协议的消 息,得到所述目标协议的消息重组的启发性条件;消息重组单元,将所述目标协议纯流量中 的每个流按照定义单元中的定义及启发性条件进行消息重组,获得位于载荷开始位置的流 量选定交互过程的命令控制信息集合,并对所述命令控制信息按照以交互为主要特征的进 行关联;聚类单元,用于对所述关联进行相似度聚类和简化,获得命令控制信息之间的关联 的集合。
(三)有益效果
本发明的方法及系统首先通过消息重组和聚类技术来对目标协议流量进行分析 和学习,得到命令控制信息集合和命令控制信息之间的关联的集合,然后采用基于流的针对消息、命令控制信息及其关联的实时在线系统来对流量进行识别和分类,该方法及系统 有效、快速、并有着较好的可扩展性。


图1为依照本发明一种实施方式的基于关联性命令控制信息的流量识别方法流 程图2为依照本发明一种实施方式的基于关联性命令控制信息的流量识别方法中 对目标协议流量的敏捷分析流程图3为HTTP协议两个关键交互过程的状态关联过程示意图4(a)为QQ文本聊天协议空闲状态以及聊天状态的状态关联过程示意图4(b)为QQ文本聊天协议登录状态的状态关联过程示意图。
具体实施方式
对于本发明所提出的基于关联性命令控制信息的流量识别方法及系统,结合附图 和实施例详细说明。
本发明的方法是一种新型的基于流的流识别方法,它可以对多种类型的协议流量 进行有效快速区分,包括标准协议(如HTTP协议等),动态加密的协议(如即时通信协议 等)。本发明方法主要在于寻找通信中的命令控制信息的关联过程,在一般情况下,一个流 开始的时候总是该协议的频繁的握手交互过程。本发明首先对目标协议流量的初始握手交 互过程进行基于命令控制信息关联的敏捷分析,定义目标协议的消息,并对抓取的目标协 议的纯流量进行消息的重组聚类,最终得到代表选定的关键交互过程的命令控制信息关联 集合(以状态转移图和状态机形式体现)。然后在在线的实时分类过程中利用命令控制信 息和命令控制信息关联判断待识别流是否属于目标协议。本发明的方法具有快速、有效、适 用范围广等优点。
如图1所示,依照本发明一种实施方式的基于关联性命令控制信息的流量识别方 法包括
Si.对目标协议流量的初始握手交互过程进行敏捷分析,获载荷中包含的命令控 制信息,以及所述命令控制信息之间以交互为主要特征的关联的集合;。
如图2所示,步骤Sl进一步包括
Si. 1抓取海量目标协议纯流量,即全部为目标协议的流量,抓取方法为在没有或 尽量不启用其他会产生流量的网络应用,即干净的虚拟机中通过防火墙,抓包工具等,运行 目标软件,抓取目标协议的纯净流量;
Si. 2对目标协议的纯净流量通过<源IP、目的IP、源端口、目的端口、协议号>五 元组分流;
Si. 3根据观察和分析,定义目标协议的消息,并根据目标协议的消息的定义,找出 目标协议的消息重组的启发性条件,根据这些启发性条件能够有效将流进行消息重组;
该步骤中,首先给出流的定义,流为一段时间内具有相同五元组<源IP、目的IP、 源端口、目的端口、协议号> 的包组成的有序集合,即流S =< P1,P2,...,Pn >,其中Pi (i = 1,2, ...η)为流中连续的包。消息代表流中一个独立的交互步骤,一个消息由一个或多个包组成,一种协议的消息定义为M(a1; ,..., ),即该消息包含i个属性,这些属性通常包 括有效属性命令字符串、长度、是否包含传输数据等,一个流可以表示成S =SM1,M2,..., Mm >,其中 m < η。
Si. 4将目标协议的每个流按上述定义及启发性条件重组为多个消息,获得位于载 荷开始位置的流量选定的关键交互过程的命令控制信息的集合,对命令控制信息按照交互 过程进行关联;
Si. 5按照每个消息中所包含的命令字符串、长度、是否包含传输数据等属性进行 相似度聚类,即消息的转移过程集合,对其进行简化,最终获得命令控制信息之间的关联的 集合,即关键交互过程状态机集合K,其中命令控制信息的集合为集合C。
在聚类过程中,优选地使用k-means聚类算法,即目标协议纯流量中有N条流,表 示为Si =<Mn,Mi2,...,Mim>,其中i = 1,2,...,N。根据观察和经验给出初始的聚类状 态集合Ctl= Ic1 (1),C2(I),...,Ck(I) },将流Si聚类到距离最近的聚类状态Ci中。依次迭 代进行聚类,直到最终集合收敛,即Ci =< MCn,MCi2, ... , MCiMi >,(i = 1,2,. . .,k)。因 为通信协议总是具有一定的内在结构,因此大多数情况下使用k-means聚类算法结果都是 收敛的。
继续如图1所示
S2.对待识别的流量,首先进行分流,按照<源IP、目的IP、源端口、目的端口、协 议号>这五元组将流量分成多条流;
S3.以流为单位进行识别,首先按照目标协议的启发性条件判断待识别流是否能 被分成目标协议的消息,如果不行则该流被判断为非目标协议流量,载入下一条待判断的 流,转至步骤S3,如果可以进行下一步骤;
S4.检查待判断流的消息中是否包含命令控制信息集合中的项,即属于集合C的 命令控制信息,如果不包含,则该流被判断为非目标协议流量,载入下一条待判断的流,转 至步骤S3,如果包含进行下一步骤;
S5.判断待识别流的消息的命令控制信息是否包含所述关联集合中的项,即关键 交互过程集合K中的某个状态转移过程,如果不符合,则该流被判断为非目标协议流量,载 入下一条待判断的流,转至步骤S3,如果符合则说明待识别的流属于迅雷流量,转至S3进 行下一条流的判断。
在上述过程中,一般只需要检查一个流的头十几个至几十个包,并且每个包只需 要检查载荷的头几十个至一百个左右字节即可,我们假设待分类的流量共有N条流,假设 每条流需要检查头A个包,每个包需要检查头B个字节,这样识别分类的计算复杂度0 (N) =AbN,整体在线识别系统非常简洁,复杂度也较低,能够有效被运用到实际流量识别系统 中。
此外,选定的关键交互过程根据目标协议的不同而不同。
本发明还提供了一种基于命令控制信息关联的流量识别系统,该系统包括分析 模块,用于对目标协议流量的初始握手交互过程进行分析,获得载荷中包含的命令控制信 息集合,以及所述命令控制信息之间以交互为主要特征的关联的集合;分流模块,用于根据 五元组将待识别的流量分成多条流;第一识别模块,用于按照目标协议的消息重组的启发 性条件集合,判断待识别的流是否能够进行目标协议的消息重组;第二识别模块,用于检查待识别的流的消息中是否包含所述命令控制信息集合中的项;第三识别模块,用于判断待 识别的流的消息的命令控制信息是否符合所述关联集合中的项,若不符合,则判断所述流 为非所述目标协议流量若符合,则判定所述流为所述目标协议流量。
其中,所述敏捷分析模块进一步包括抓取单元,用于抓取目标协议纯流量;分流 单元,用于对所述目标协议纯流量进行五元组分流;定义单元,用于定义所述目标协议的消 息,得到所述目标协议的消息重组的启发性条件;消息重组单元,将所述目标协议纯流量中 的每个流按照定义单元中的定义及启发性条件进行消息重组,获得位于载荷开始位置的流 量选定交互过程的命令控制信息集合,并对所述命令控制信息按照以交互为主要特征的进 行关联;聚类单元,用于对所述关联进行相似度聚类和简化,获得命令控制信息之间的关联 的集合。
实施例1
本实施例以HTTP协议为例,说明本发明的技术方案。其中HTTP协议的命令控制 信息之间的关联的集合中的两个选定的关键交互过程(请求状态(Request)以及响应状态 (Response))如图3所示。本实施例的基于关联性命令控制信息的流量识别方法包括步骤
Si. 1抓取海量HTTP纯流量,抓取方法为在干净的虚拟机中通过防火墙,抓包工具 等,运行目标软件,抓取目标协议的纯净流量;
Si. 2对目标协议的纯净流量通过<源IP、目的IP、源端口、目的端口、协议号>五 元组分流;
Si. 3根据观察和分析,定义目标协议的消息,根据HTTP协议的消息的定义,找出 HTTP协议的消息重组的启发性条件,根据这些启发行条件能够有效将目标流进行消息重 组;
协议的消息定义为M(命令,长度,是否包含数据,版本),一个流可以表示成S = SM1,M2, ...,Mm>。HTTP协议消息重组的启发性条件主要为由于HTTP命令数量有限且 较为固定,所以根据HTTP命令来划分HTTP消息是比较快捷也比较准确的。
Si. 4将HTTP协议的每个流按上述定义和启发性条件分成多个消息,然后提取 命令控制信息,得到命令控制信息集合C,包括Request命令GET,Post, Options, HEAD, PUT, DELETE, CONNECT, TRACE ;以及 Response 命令 informational lxx, Successful 2xx, Redirection 3xx, Client Error 4xx, Server Error ^cx ;获得控制命令信息后,会根据消 息的交互过程对这些控制命令信息进行初步关联。
Si. 5得到初步关联结果后,需要对其进行聚类和简化,最终得到的就是命令控制 信息之间的关联的集合K;
在聚类过程中,使用k-means聚类算法,即HTTP协议纯流量中有N条流,表示为Si = <Mil,Mi2,...,Mim>,其中i = 1,2,...,N。根据观察和经验给出初始的聚类状态集 合CO= {cl(l),c2(l),...,ck(l)},将流Si聚类到距离最近的聚类状态ci中。依次迭代 进行聚类,直到最终集合收敛,即Ci =< MCi l,MCi2,...,MCiMi >,(i = 1,2,· · ·,k)。因 为通信协议总是具有一定的内在结构,因此大多数情况下使用k-means聚类算法结果都是 收敛的。
S2.对待识别的流量,首先进行分流,按照 <源IP、目的IP、源端口、目的端口、协 议号>这五元组将流量分成多条流;
S3.以流为单位进行识别,首先按照HTTP协议观察得到的启发性条件判断待识别 流是否能够进行HTTP消息重组,如果不行则该流被判断为非HTTP协议流量,载入下一条待 判断的流,转至步骤S3,如果可以进行下一步骤;
S4.检查待识别的流的消息中是否包含命令控制信息,即属于集合C的命令,如果 不包含,则该流被判断为非HTTP协议流量,载入下一条待判断的流,转至步骤S3,如果包含 进行下一步骤;
S5.判断待识别的流的消息构成是否符合命令控制信息的关联集合K中的某个状 态转移过程,如果不符合,则该流被判断为非HTTP协议流量,载入下一条待判断的流,转至 步骤S3,如果符合则说明待识别的流属于HTTP流量,转至步骤S3进行下一条流的判断。
实施例2
本实施例以QQ文本聊天协议为例,说明本发明的技术方案。本实施例的基于敏捷 流分析的流量识别方法包括的步骤与实施例1相同,其中QQ文本聊天协议的命令控制信息 之间的关联的集合中的三个选定的关键交互过程(空闲状态、登录状态以及聊天状态)如 图5所示,其中空闲状态以及聊天状态的状态关联过程如图5(a)所示,登录状态的状态关 联过程如图5(b)所示。其消息重组的启发性条件主要为
(1)流中一方的QQ版本是固定的;
(2)所有消息的版本应该属于QQ已出的版本中的一种;
(3)QQ的命令较为固定,数量有限,可以用来区分。
在上述过程中,一般只需要检查一个流的头十几个至几十个包,并且每个包只需 要检查载荷的头几十个至一百个左右字节即可,假设待分类的流量共有N条流,假设每条 流需要检查头A个包,每个包需要检查头B个字节,这样识别分类的计算复杂度O(N)= AbN,整体在线识别系统非常简洁,复杂度也较低,能够有效被运用到实际流量识别系统中。
实际过程中得到的命令控制信息集合C
C = {Keep_Alive(图 5 (a)中的 SO)、(图 5 (a)中的 Si)、 Touch (图 5(b)中的 SO)、Successful( 5(b)中的 Si)、Token Request ( 5(b)中 的 S2)、Token Response (图 5 (b)中的 S3)、Captchas Request (图 5 (b)中的 S4)、 Captchas Response (图 5(b)中的 S5) 、Password Verifying Request (图 5(b)中的 S6)、 PasswordVerifying Successful (图 5 (b)中的 S7)、Login Request ( 5(b)中的 S8)、 Login Successful (图 5(b)中的 S9)、Send Friend Message (图 5 (c)中的 SO)、Receive Friend Message (图 5(c)中的 Si)}
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通 技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有 等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
权利要求
1.一种基于关联性命令控制信息的流量识别方法,其特征在于,该方法包括步骤51.对目标协议流量的初始握手交互过程进行分析,获得载荷中包含的命令控制信息 集合,以及所述命令控制信息之间以交互为主要特征的关联的集合;52.根据五元组将待识别的流量分成多条流;53.按照目标协议的消息重组的启发性条件集合,判断待识别的流是否能够进行目标 协议的消息重组,若不能,则载入下一条流,并重新执行步骤S3,若能,则执行步骤S4 ;54.检查待识别的流的消息中是否包含所述命令控制信息集合中的项,若不包含,则判 断该流为非所述目标协议流量,载入下一条流,并返回步骤S3,若包含,则执行步骤S5 ;55.判断待识别的流的消息的命令控制信息是否符合所述关联集合中的项,若不符合, 则判断所述流为非所述目标协议流量,载入下一条流,并返回步骤S3,若符合,则判定所述 流为所述目标协议流量,载入下一条流,并返回步骤S3。
2.如权利要求1所述的基于关联性命令控制信息的流量识别方法,其特征在于,在步 骤Sl进一步包括Si. 1抓取目标协议纯流量;Si. 2对所述目标协议纯流量进行五元组分流;Si. 3定义所述目标协议的消息,得到所述目标协议的消息重组的启发性条件;Si. 4将所述目标协议纯流量中的每个流按照步骤Si. 3中的定义及启发性条件进行消 息重组,获得位于载荷开始位置的流量选定交互过程的命令控制信息集合,并对所述命令 控制信息按照以交互为主要特征的进行关联;Si. 5对所述关联进行相似度聚类和简化,获得命令控制信息之间的关联的集合。
3.如权利要求2所述的基于关联性命令控制信息的流量识别方法,其特征在于,步骤 Si. 1中,抓取方法为在虚拟机中通过防火墙、以及抓包工具,运行所述目标协议软件,抓取 所述目标协议纯流量。
4.如权利要求2所述的基于关联性命令控制信息的流量识别方法,其特征在于,所述 五元组为源IP、目的IP、源端口、目的端口、以及协议号。
5.如权利要求2所述的基于关联性命令控制信息的流量识别方法,其特征在于,步骤 Si. 3中定义所述目标协议的消息进一步包括Si. 31定义目标协议的流,为在设定时间内具有相同五元组的包组成的有序集合;Si. 32定义目标协议的消息,为目标协议的流中的一个独立的交互步骤,一个消息包括 一个或多个所述包。
6.如权利要求2所述的基于关联性命令控制信息的流量识别方法,其特征在于,步骤 Si. 4中,每个消息的中所包含的有效属性包括命令、长度、是否包含传输数据。
7.如权利要求2所述的基于关联性命令控制信息的流量识别方法,其特征在于,步骤 Si. 5中的相似度聚类的方法为k-means聚类算法。
8.一种基于关联性命令控制信息的流量识别系统,其特征在于,该系统包括分析模块,用于对目标协议流量的初始握手交互过程进行分析,获得载荷中包含的命 令控制信息集合,以及所述命令控制信息之间以交互为主要特征的关联的集合;分流模块,用于根据五元组将待识别的流量分成多条流;第一识别模块,用于按照目标协议的消息重组的启发性条件集合,判断待识别的流是否能够进行目标协议的消息重组;第二识别模块,用于检查待识别的流的消息中是否包含所述命令控制信息集合中的项;第三识别模块,用于判断待识别的流的消息的命令控制信息是否符合所述关联集合中 的项,若不符合,则判断所述流为非所述目标协议流量若符合,则判定所述流为所述目标协 议流量。
9.如权利要求8所述的基于关联性命令控制信息的流量识别系统,其特征在于,所述 敏捷分析模块进一步包括抓取单元,用于抓取目标协议纯流量;分流单元,用于对所述目标协议纯流量进行五元组分流;定义单元,用于定义所述目标协议的消息,得到所述目标协议的消息重组的启发性条件;消息重组单元,将所述目标协议纯流量中的每个流按照定义单元中的定义及启发性条 件进行消息重组,获得位于载荷开始位置的流量选定交互过程的命令控制信息集合,并对 所述命令控制信息按照以交互为主要特征的进行关联;聚类单元,用于对所述关联进行相似度聚类和简化,获得命令控制信息之间的关联的集合。
全文摘要
本发明公开了一种基于关联性命令控制信息的流量识别方法及系统,该方法包括S1.对目标协议流量的初始握手交互过程进行分析,获得载荷中包含的命令控制信息集合,以及所述命令控制信息之间以交互为主要特征的关联的集合;S2.根据五元组将待识别的流量分成多条流;S3.按照目标协议的消息重组的启发性条件集合,判断待识别的流是否能够进行目标协议的消息重组;S4.检查待识别的流的消息中是否包含所述命令控制信息集合中的项;S5.判断待识别的流的消息的命令控制信息是否包含所述关联集合中的项。本发明的方法及系统有效、快速、并有着较好的可扩展性。
文档编号H04L12/26GK102045195SQ20101056239
公开日2011年5月4日 申请日期2010年11月23日 优先权日2010年11月23日
发明者李城龙, 薛一波 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1