总第10期
2017年9月刊
Attack and Defense    攻防
Attack and Defense    攻防
新型网络结构下流量识别方法
H3C安全攻防团队/李鲲程
分享

网络流量的精确识别是分析网络用户行为、检测网络异常行为等行为的前提和基础,为此,网络流量分析应运而生。几乎所有与网络相关的活动都是与网络流量联系在一起的。网络流量是记录和反映网络及其用户活动的重要载体。

随着互联网的发展,网络流量结构也从早期较为单一的邮件收发、HTTP网页浏览及下载等方式,变成现在包含大量HTTPS协议、P2P类流量占比越来越高的复杂的新型网络流量结构,如何识别这样一种复杂的新型网络流量结构,成为了一个重要的研究方向。

1.主流流量识别技术

流量识别(Traffic Identification)是伴随着网络业务的蓬勃发展而出现的一个新概念,它是指通过对业务流量从数据链路层到应用层的报文深度检查分析,依据协议类型、端口号、特征字符串和流量行为特征等参数,获取业务类型、业务状态、业务内容和用户行为等信息,并进行分类统计和存储。

在网络流量识别的初期,由于大部分应用和协议都是用了固定的典型端口,例如DNS的53端口、HTTP的80端口等,可直接根据数据流的源端口号或者目的端口号确认一些常见业务,因此端口识别是最简单的网络流量识别方法。

但是随着网络的发展,目前很多应用,尤其是P2P协议类型的应用,会使用动态随机端口或者伪装端口的方法,使得端口识别这种方法识别精度变低,甚至失效。针对这种识别方法的缺点,目前业界主要使用深度包检测技术和深度流检测技术,尤其是深度包检测技术可以大幅增强流量识别的精度。

1)深度包检测技术(Deep Paket Inspection, DPI)

DPI技术是通过分析数据包载荷中的特征字段,来将网络流量关联到具体的应用。大多数的网络应用,在数据包的载荷部分,都会有一些特殊的字节或者字符串用于表明协议类型,而通过检测数据包中这部分特殊的字节或者字符串,即可匹配特定的应用。这种方法的识别准确度非常高,在准确性、实时性、健壮性方面都取得了令人满意的效果,因此在多数商用系统上得到了广泛的应用。但是DPI技术对加密的网络流量,则无法做到高精度的有效识别。

DPI技术易于理解、升级方便、维护简单,并且可以对网络流量进行应用级分类。但也存在很大的缺点,主要有:

①扩展性差:该方法对新的网络应用的流量识别具有滞后性,即在未升级特征库前无法检测新的网络应用。

②无法解析加密数据:DPI技术对加密网络应用的检测能力非常有限,只能依靠检测HTTPS协议的SERVER HELLO部分特征进行识别,精度较差。

③性能低:DPI检测需要完成协议解析还原和特征匹配等操作,计算和存储开销大,流量检测算法性能比较低

2)深度流检测技术(Deep Flow Inspection,DFI)

DFI技术是近几年发展起来的一种典型的业务识别技术,它与DPI进行应用层的载荷匹配不同,采用的是一种基于流量行为的识别技术,即不同的应用类型体现在会话连接或者数据流上的状态各不相同。该技术能够解决DPI技术的执行效率差、加密流量识别率低和频繁升级等问题。

根据数据包头的五元组(源端口号,源IP地址,协议名,目的端口,目的IP地址)将数据包分为不同的流,而不同类型的数据流,在传输中的流量行为也不相同。因此,可以对网络中的数据流设置各项参数,研究各个数据流的统计特征,通过对流的各种不同参数的统计分析来识别不同类型的应用,进而标记网络流量。

对于不同网络协议的数据流,一般情况下,可以选取数据包的长度、源地址和目的地址分布、数据包的到达率、数据包的数量、业务流持续时间与平均流速率等参数进行统计、比较和分析,以达到业务识别的目的。

由于实际上DFI技术需要处理的是数据流中包含大量数据,并且数据中含有某些隐藏规律的问题,仅仅使用人工手段进行分析,所分析出的数据流行为特征模型可能会导致比较大的误识别问题。因此可以使用机器学习的方法来对这些流数据进行分析建模,并辅以人工干预,可以得出精度更高的流行为特征模型。

综上三种主要网络流量识别方法,可以发现不同技术之间都有各自的优缺点。

端口识别法,操作简单、效率高、能实现早期检测,但不能识别大量出现的动态端口和伪装端口的应用;

DPI技术,易于理解、维护简单、分类精度高、具有细粒度分类应用能力,但识别开销大、特征库更新频繁、对加密数据识别能力低、对新应用适应性差;

DFI技术,识别精度实际应用中相对不高,适用于粗粒度流量识别。

可见,要实现高效、准确、智能、实时地识别互联网流量,能覆盖所有网络应用,具有较好的可扩展性,即识别出未知流量和加密流量,并具有好的灵活性以适用于各个网络监测点,仅靠单个识别方法已不可能达到目前互联网流量识别的最终要求。因此,使用识别精度更高、扩展性更好的多级流量识别系统是一个更好的选择。

2.多级网络流量识别模型

本系统模型的层次架构从下到上分为如下三个层面:数据采集层面、协议分析层面和业务识别层面。其中业务识别层面是核心层面。综合端口匹配的快速简单、复杂度低、DFI技术的可扩展性好和DPI技术的精确有效等特点,设计了应用识别系统模型,如下图1所示。

图1 系统模块组成

在系统模型的详细设计中,系统主要由五个模块组成,分别是数据采集模块、协议分析模块、传输层过滤模块、 DFI识别模块和DPI识别模块。系统前两个模块分别对应于系统层次结构中的数据采集层和协议分析层,后三个模块对应于高层业务识别层,其中DFI识别模块基于深度流检测识别技术,DPI识别模块基于深度包检测识别技术。

系统进入业务识别层面后,不同网络应用的分类由传输层过滤模块实现,传输层过滤模块由端口匹配和流量行为特征分析完成。不同网络应用的分类将先后进入DFI识别模块和DPI识别模块,达到识别不同种类应用的目的。

1)DPI识别模块

在DPI识别模块中,高效的字符串匹配技术可以增加对数据包识别的准确率,解决传输层流量特征分析所不能解决的问题。本系统所使用的字符串匹配技术是基于协议特征基础上的净荷匹配,采用了AC算法来实现网络流量的应用层协议净荷特征字符串分析。

2)DFI识别模块

在DFI识别模块中,据相关资料研究表明,可以用于流识别的属性多达249项。基于一般泛用性考虑,我们可以只取比较常用的5种属性,分别是流的报文组成、流的典型载荷长度、流的平均速率、流的平均包长和流的平均字节数。

对于DFI模块中流行为特征模型,可以使用机器学习来统计分析。一般情况下,可以使用决策树或随机森林的方法对流数据进行统计分析。

决策树算法有着很多良好特性,比如训练时间复杂度较低、预测过程比较快捷、模型容易展示,但是单决策树对大量数据支持不够理想。因此可以使用随机森林的方法。顾名思义,随机森林就是用随机方式建立一个森林,里面有很多决策树组成,而每一颗决策树之间是没有关联的。当有一个新的流数据输入时,可以让每一颗决策树分别进行判断分类,最后统计哪一类被选择最多,即可得出这个流数据属于哪一类。

例如,当有N个迅雷应用的流数据样本,则可如下建立迅雷流数据特征模型;

1)将这N个样本用来训练一个决策树,作为决策树根节点处的样本;

2)迅雷每个样本中,可以进行分析的属性有X个,比如平均报文长度、流持续时间、最大报文长度、最小报文长度、平均短报文长度、平均长报文长度、平均Peer数量等属性,从这X个属性中选取x个(x<X)属性。然后从这x个属性中选取一个属性,并采用信息增益策略作为该节点分裂属性;

3)在随机森林形成过程中,对上述决策树分裂到不能分裂为止,并建立大量决策树,即可得到迅雷流数据特征模型;

虽然这种机器学习算法中的单一决策树对大量数据统计分析比较弱,但是将这些决策树组合起来进行统计分析,最后得出的分类精度会有较高的保障。

3.网络流量识别的发展方向

网络流量的识别,是用户行为分析、用户画像、态势感知等技术的基础。随着越来越多的网络应用采用动态端口、伪装端口和应用加密等方法,导致基于端口和特征字段的网络流量识别方法,不能很好的有效识别应用。所以利用机器学习方法进行网络流量识别,也成为一个重要研究方向。

● 智能识别

随着互联网络技术的迅速发展,新的网络应用大量涌现,同时,随着网络操作者和网络应用开发者之间的侦察与反侦察较量的攀升,现存网络协议更新频繁,致使网络流量特征不断变化,网络流量构成更为动态、复杂与多变的。静态的互联网络流量分类技术已不能适应互联网络行为对网络流量分类的要求,迫切需要具有自主学习、知识发现与挖掘能力的基于机器学习的智能算法,能够在获取相应的样本数据后,自动更新特征库,识别网络流量和发现新的应用流量,并且自适应地完善分类器。

● 混合识别

通过上述对流量识别方法的综述和比较可知,要实现高效、准确、智能、实时地识别互联网流量,满足网络管理与分析对不同粒度/精度的网络流量分类的要求,仅依赖于单个分类方法无法达到设定的目标。鉴于各类方法都存在一定的缺点,在分别改进和完善目前已有的分类技术(如DPI和基于机器学习的流统计特性分类法等)基础上,发挥已有分类方法的特点和优势,采用分级混合流量分类方法将会是今后研究的方向和发展趋势。

● 分布式识别

现有的大部分流量识别方式都采用单点独立的方式,但对于具有大规模分布式群体特征的应用、流量特征库的共用、标签样本的共享、以及协作流量分类等来说,分布式协作识别方式有利于从整体上把握网络行为特征,并且协助单点识别,形成网络流量识别协同网络。

结束语

纵观上述几种方法,可以发现,混合识别技术依然是今后一段时间的主流识别技术,辅以分布式识别方法,可以加强整体上的网络流量识别精度及更准确的用户行为分析。而智能识别今后也将是一个重要的研究目标,可以基于机器学习实现特征库的自动更新、更快的响应速度等目标。

分享到
关闭