一种网络复杂流量识别方法及识别系统
技术领域
本发明涉及一种网络复杂流量识别方法及识别系统,特别是涉及一种基于冗余特性的网络复杂流量识别方法及识别系统。
背景技术
流量识别的精准性是衡量下一代防火墙和信息安全产品的重要参数之一。只有全面感知网络底层流量的具体业务类型,才能做出准确的风险评估,采取有效的应对措施。此外,对新型业务流量识别的响应速度也是另外一个重要衡量参数。
受网络流量多样性影响,基于深度包检测(DeepPacketInspeciton,DPI)的传统技术已经无法快速响应信息安全产品对复杂流量精准识别的需求。针对复杂流量的识别问题,先后出现了多种基于深度流检测(DeepFlowInspeciton,DFI)的识别技术,以及其他基于启发式学习方法的识别技术。
下一代防火墙与信息安全产品,对流量识别的精准性提出了更为严苛的需求。尽管DPI技术能够满足对大多数主流业务流量识别的精准性需求,然而对无明显单包特征和经过加密算法处理的复杂流量,不能确保识别结果的精准性,甚至根本无法识别。除此之外,DPI技术的识别能力完全依赖于预先建立的单包指纹特征库,对于新型业务流量的识别存在一定的延滞性。
DFI技术的出现,弥补了DPI技术提取复杂流量单包指纹特征的不足。该技术侧重关注业务流量的整体行为特征,识别结果是一种粗放型的分类描述,无法精确识别某个具体业务产生的数据流量。例如,P2P流量的分类描述就是一个典型的案例,识别结果通常涵盖多种P2P业务软件生成的流量。因此,DFI这种以粗粒度划分的识别标准无法满足流量识别的精准性需求。基于启发式学习方法的识别技术,通过复杂的算法处理流程,从全局的角度分析流量行为特征,识别结果同样无法满足精准性需求。
发明内容
本发明要解决的技术问题是提供一种能够精准识别真实网络环境中复杂流量的具体业务类型,并能够满足快速响应新型业务流量类型的精准识别需求的复杂流量识别方法及识别系统。
本发明采用的技术方案如下:一种网络复杂流量识别方法,其特征在于:利用冗余特性检测属于同一业务的重复字节分组,识别待测流量关联的业务类型:首先构建网络业务流量的字节分组特征库,然后计算待识别字节分组特征,最后根据计算的待识别字节分组特征,查询特征库实现网络业务流量的识别。如图1所示。
冗余特性指携带相同业务内容的字节分组在同一或不同链路中重复出现。不同业务生成的流量具有各自统一的编码特征。
构建网络业务流量的字节分组特征库的具体方法为:对每次会话中采样的字节分组,以应用负载长度构建索引表,索引表的每个元素关联一张有序链表,链表节点的排序指标为各字节分组经过hash算法(例如,MD5、RabinFingerprint等)处理所得的特征值。
因为以太网帧能够传输的MTU值为1500字节,IP头部最少消耗20字节,UDP头部消耗8字节(TCP头部最少消耗20字节),所以索引表中记录的最大应用负载长度为1472字节。针对其他媒介传输数据帧的能力不同,可以根据具体情况调整索引表中记录的最大应用负载长度,适应具体分析环境。
对每次会话中字节分组进行采样的具体方法为:采用三点采样法:将参与每次会话的所有字节分组看作离散点,按一定的规则排列所有符合条件(达到一定字节长度)的离散点;选择起始点、中间点和结束点作为质心,选择与其邻近的偶数个离散点和质心本身作为采样字节分组。然后按照图2右下角的节点域构造每个采样特征值节点并存入字节分组特征库。
由于单个分组携带的有效应用负载字节长度有限,几乎每条会话记录由多个分组交互完成。记录每个分组的Hash特征值必然造成巨大的特征库维护开销。本发明提出的三点采样法(3-PointsSampling,3PS),不仅可以有效节省特征库的维护开销,而且还能保持特征库的识别能力不受大幅影响。
离散点总数的奇偶性会在一定程度上影响中间点的识别,只要按照统一的规则偏左或偏右识别中间点即可。三点采样法的好处在于覆盖了数据包采集的所有临界情况:1)如果刚好从会话起始临界点采集数据包,那么起始点采样字节分组特征可以匹配;2)如果刚好错过会话起始临界点且不超过会话中间点采集数据包,那么中间点采样字节分组特征可以匹配;3)如果刚好错过会话中间点且不超过会话结束临界点采集数据包,那么结束点采样字节分组特征可以匹配。如果待识别会话中的任意字节分组特征与特征库中的记录匹配,那么能够识别当前会话流量为匹配记录指定的业务类型。
所述方法还包括,判断参与会话的字节分组是否大于等于三点采样法所需的分组总数,是则根据三点采样法进行采样,否则采样所有字节分组。
极端情况下,如果参与会话的字节分组不足三点采样所需的分组总数,那么采样所有字节分组。
所述方法还包括,对采样分组进行处理,跳过指定部分的应用层头部字节内容,避免头部结构携带的随机信息对识别过程造成噪声干扰。
计算待识别字节分组特征的具体方法为:采用处理特征值时所采用的哈希算法对采样字节分组的应用负载进行预处理,按照特征库要求的计算强度输出运算值,作为字节分组对应的特征值。
哈希算法的本质是一种空间映射,从较大空间映射到较小空间,必然存在哈希冲突的可能。为避免哈希冲突对本发明方法的识别结果造成影响,所述方法还包括,每个特征值节点额外采样原始字节分组中的部分字节内容;为增强所述部分字节内容的代表性,选择一定的步长采样离散的分组字节。
基于流量的冗余特性,发现部分相同版本的软件在不同的网络边缘完成相同任务时,生成的流量中真正负责业务数据传输的报文具有完全相同的应用负载。本发明方法利用这种冗余特性对复杂流量进行精准识别,具体识别过程由图1中的“计算待识别字节分组特征”和“查询特征库识别流量业务类型”两大模块完成。过滤待识别字节分组时必须与构建特征库时筛选字节分组的条件一致,并且按照同样的哈希算法计算待识别字节分组的特征值。如果在特征库中查找到与待识别字节分组特征值匹配的记录,那么按照构建特征值节点时选择的步长采样待测分组的代表字节内容。如果当前采样的代表字节内容与匹配记录中的字节内容一致,则识别当前分组所属会话的业务类型为匹配记录中指定的业务类型。否则,放弃对当前字节分组的识别。
一种基于上述网络复杂流量识别方法的网络复杂流量识别系统,其特征在于:包括,
特征库训练服务器,根据预设支持的业务类型训练不同业务的字节分组特征,构建网络业务流量的字节分组特征库;
识别终端服务器,通过网络连接特征库训练服务器,通过预设命令更新训练服务器的特征库到本地特征库。
所述训练服务器接入互联网,按照预设流程自动完成训练任务。识别终端服务器更新任务完成后,即能够具备识别训练服务器预设业务的能力。紧接着,识别终端服务器通过旁路侦听的方法监控本地的私有链路,识别预设业务生成的复杂流量。在任意一条被侦听的私有链路中,用户使用与训练服务器执行训练任务同版本软件,进行相同网络活动时,生成的复杂流量就能被终端服务器识别为对应的业务类型。
与现有技术相比,本发明的有益效果是:本发明方法基于流量的冗余特性实现,从驱动流量生成的本质原因出发,充分发掘与利用网络底层活动的行为特征。克服了传统DPI技术无法解决复杂流量识别的问题,弥补了DFI技术和启发式学习方法对复杂流量识别精准性差的不足。此外,本发明方法只要在特征库中丰富多种业务生成复杂流量的分组特征,就能以一种通用的方式同时实现多种业务类型的精准识别,具有良好的普适性。
附图说明
图1为本发明流量识别流程示意图。
图2为本发明其中一实施例的特征库逻辑结构原理示意图。
图3为本发明其中一应用实施例的网络拓扑结构示意图。
图4为本发明其中一实施例的采用字节分组处理示意图。
图5为本发明其中一实施例的训练服务器采集的分组应用负载。
图6为图5所示实施例的成都终端服务器采集的分组应用负载。
图7为图5所示实施例的绵阳终端服务器采集的分组应用负载。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本说明书(包括摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或者具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
如图3所示,特征库训练服务器根据预设支持的业务类型训练不同业务的字节分组特征,按照图2所示的逻辑结构维护特征库。训练服务器可以自由接入互联网,按照预设流程自动完成训练任务。为训练不同业务类型的字节分组特征,训练服务器运行支持识别不同业务类型流量的预处理系统。从构成不同业务网络活动的字节分组中采样符合条件的字节分组,按照“构建业务流量的字节分组特征库”指定的方法计算采样字节分组的特征值。本次实施例中,选择应用负载长度在1000字节以上的分组作为采样对象。实际处理中,还要跳过一定的应用层头部字节内容,避免头部结构携带的随机信息对识别过程造成噪声干扰。如图4所示,为了执行简便,采样的分组字节内容选择应用负载偏移100字节后的起始20字节。计算特征值的哈希过程采用RabinFingerprint算法,同样取偏移100字节后的字节内容作为哈希算法的输入参数。
然后,部署在成都和绵阳两地的智能识别终端服务器通过网络连接特征库训练服务器,通过预设命令更新训练服务器的特征库到本地特征库。更新任务完成后,两台终端服务器即可具备识别训练服务器预设业务的能力。
紧接着,两台终端服务器通过旁路侦听的方法监控成都和绵阳两地的两条本地私有链路,识别预设业务生成的复杂流量。
在任意一条被侦听的私有链路中,用户使用与训练服务器执行训练任务同版本软件,进行相同网络活动时,生成的复杂流量就能被终端服务器识别为对应的业务类型。
本次实施例中,训练服务器使用最新的风行v3.0.3.72观看视频“栀子花开”执行训练任务,分别在成都、绵阳的用户使用同版本风行软件观看“栀子花开”视频。借助Capsa完成数据包采集,图5是训练服务器采集的数据包,图6是位于成都的终端服务器采集的数据包,图7是位于绵阳的终端服务器采集的数据包。
比较发现,图5、图6和图7中出现了携带相同业务内容的字节分组,方框选中部分为应用层负载的变化头部内容,实施例中通过偏移100字节的方法巧妙避免了这种噪声信息对识别结果的误导。应用本发明方法的测试系统,在部署于成都、绵阳的终端服务器上成功识别出风行软件生成的业务流量。该实施例充分说明了本发明方法在复杂流量识别中的有效性,凭借其精准的识别能力弥补了现有流量识别技术应对复杂流量问题的不足,具有一定的科研应用价值。