胡中栋,石 林,孟祥茂
(江西理工大学信息工程学院,江西赣州341000)
近年来P2P(Peer-to-Peer)网络因其独特的技术优势迅速发展,使得P2P应用的范围日益增大。这些技术和应用发展的同时,一方面,使得传统业务的应用流量越来越少,而以P2P应用为代表所产生的网络流量却占据了互联网总流量的60%以上[1],呈现不断增长趋势;另一方面,P2P流量致使网络性能和服务质量下降,导致一些传统关键业务应用无法得到保障,甚至给网络带来一定的安全隐患。因此,展开准确而高效的流量识别技术的研究对实现网络流量实时监控具有重大意义。
本文通过比较分析常用流量识别方法的特点,提出了一种基于应用层签名的P2P流量识别和控制的方法,并通过实验验证了该方法高精确性和对流量控制的有效性。
通常流量识别的过程,就是将数据流量正确地标记为产生该流量的应用程序的过程。互联网上的流量一般可分为两大类,一类是以FTP,Web,Email业务为主的传统业务流量,另一类是P2P流量。绝大多数流量根据不同应用类型又可以如文献[2-3]进行具体分类。而流量识别的方法根据是否对协议载荷(即是否涉及到传输层上层数据信息)进行分析,可分为载荷分析法和非载荷分析法两种。根据识别所依据的具体信息的不同,可大概将其分为以下4种:基于IP地址的流量识别方法[4],该方法易理解,但实际操作困难;基于端口的流量识别方法[5],该方法简单直接,但动态随机端口和端口伪装技术使得该方法的准确率越来越低;基于流行为的流量识别方法[6-7],该方法可识别加密流量,但不能进行精确协议分类,且易受网络环境稳定性的影响难以实时控制;基于应用层签名的流量识别方法,该方法易理解、维护简单,更因其误报率低[8](小于10%)而广受欢迎。
提取签名特征就是通过跟踪分析大量的数据报文,在应用层数据中找出独特的、稳定的、可区分应用程序的特征字符串,并按照既定格式书写成识别规则的过程。首先,应根据业务需求利用抓包软件对所分析的应
基于应用层签名的识别方法也称为深度包检测(Deep Packet Inspection,DPI),即通过捕获相关应用产生的数据包,并对数据包应用层负载数据进行分析,提取出相应的特征签名,然后通过模式匹配来识别相应的应用流量。利用DPI技术进行流量识别的关键有两个,一是应用层签名特征提取,另一个是识别算法。
用软件进行特定场景抓包。然后,对所抓取的数据报文进行应用层数据分析。最后,将提取出来的签名特征书写成协议规则。如图1所示是CCTV应用程序的应用层报文。
图1CCTV应用层报文(截图)
图2是根据图1所示的签名特征写成的协议规则。不同的应用软件产生的应用层数据包内容各不相同,因此可将签名特征提取分为单包提取规则和多包提取规则。单包提取时,需要多流横向同包对比;多包提取时,需要同流纵向多包对比。另外,由于00和FF在计算机内存常被用作填充字节,故提取签名特征是应该尽量避开这样的字段。同时,考虑到对识别精度和识别效率的影响,特征字符串长度应该适中。因为特征串太短,则容易产生误报(每字节占8位,那么它的误报概率就是1/28);而字符串过长则影响识别匹配效率。表1列举部分常用的应用软件的部分签名特征。
图2CCTV签名特征规则(截图)
表1 常用软件的部分应用层签名特征
基于DPI技术应用层签名特征的流量识别,就是对网络中的流量进行实时的模式匹配,判断该数据流中是否包含某一应用的签名特征字符串。如果匹配成功,则标记该流量为相应应用的数据流。如果有需要,则利用相关设备对已标记的流量进行监管。如图3所示是整个DPI流量识别系统的工作原理图。
图3 DPI流量识别系统工作原理图
从图3可以看出,整个DPI流量识别系统主要的模块有两个,协议识别引擎模块和特征知识库模块。特征知识库模块是通过新签名特征提取和已有协议维护累积而来。DPI协议识别引擎模块则是协议识别过程的核心,它涵盖了识别过程中的主要方法。图4是DPI协议识别引擎的工作流程图。
图4 DPI识别引擎流程图
由图4可看出,关联识别优先级较高,但它是在已识别流量的基础上提出的一种快速匹配方法,而端口识别的方法优先级别低,是作为一种补充方式而存在,故最重要的识别方式是签名特征匹配识别。用伪代码将算法流程表示如下:
为了说明识别算法的识别精度,常采用正确识别率和错误识别率[9]来进行评判。式(1)和(2)分别给出了它们的计算公式
实验过程中,首先利用wireshark、tcpdump等抓包分析工具对一些常见P2P、VoIP应用软件的通信过程进行抓包、分析、提取特征。然后利用DPI流量识别系统对所抓取的报文进行跑识别率、误报率等进行阻断测试。
抓取风行、爱奇艺、优酷应用程序的报文,然后通过签名特征的提取,并将所提取的特征规则写入识别引擎。利用DPI识别引擎对所抓取的报文进行识别验证。报文识别结果如图5~图7所示。
图5 风行报文识别率(截图)
从上面3个软件的识别结果可以看出,unknown的流量都是很少的(正常业务要求小于5%),软件本身流量的识别率平均可以达到90%以上。iQiYi的识别结果中存在TaoBao流量,是由于播放页面中的链接到淘宝广告流量引起的,并不是误识别;YouKu的识别中存在SinaTV_HTTP的流量是播放页面中有SinaTV的资源链接,也不是误识别,所以,也不存在误识别的情况。很多流媒体应用程序的本身支持CloudAcc协议,而且众多流媒体相互之间可能有资源相互链接的现象,而上面验证的,3个流媒体软件识别结果正好说明这一点。由此可以看出,基于应用层签名的流量识别方法的识别准确度是很高的。图8给出了风行、爱奇艺、优酷3种应用程序的识别率对比效果。
图8 3种应用的识别效果对比
从图8可以看出,数据包的识别率有时候会低于数据流的识别结果。这是因为基于UDP传输的流量应用层特征有时候并不在一个数据包中,可能存在于多个数据包中,而分析人员抓包分析过程可能会有难以避免丢包的情况,以致细微地影响了识别的结果。
为了充分说明DPI流量识别的方法准确性,还对一些常用的软件的识别情况作了一个统计,如表2所示。
表2 部分常用软件的识别率 %
DPI技术主要是为了解决网络流量识别问题,实现对流量的监测控制。通过上面的实验可以发现,基于应用层签名的DPI流量识别技术对网络流量识别具有高精度性。而阻断控制测试一方面不仅能帮助协议分析人员正确定位漏识别部分的流量(若存在),以更好地提高DPI的精确度,另一方面还能实现对流量的实时监控,包括限流和阻断,以更好地帮助网络服务管理员优化网络环境。通过下面的阻断测试实验,可以验证其管控效果。
阻断测试的网络拓扑图如图9所示,测试环境为Windows XP或Windows 7操作系统,测试主机的网关设置为测试网关,IP地址设为网关内IP。阻断测试之前,被测试软件可以正常使用,通过查看流量监测的日志文件可以发现被测试软件产生的流量识别后的状态标记为mark 0,即非阻断状态。进行阻断测试时,先登录Web服务器,手动更新升级特征知识库之后,找到并加载被测软件所属大类及标记的策略,然后在被测主机上使用被测软件,如果阻断成功,则被测软件无法正常使用,日志文件中将该软件产生的流量识别后状态标记为mark 5000,即阻断状态。阻断测试的结果表明,风行、爱奇艺、优酷的应用程序在加载阻断策略后,都不能正常播放在线视频。换句话说,该方法能有效地控制流量。
图9 阻断测试网络拓扑图
在实际应用中,各种识别方法的识别效果差异很大,根据现网中数据流量的识别情况,图10给出了基于端口识别、基于流行为识别以及基于应用层签名识别3种方法在同等条件下的识别效果。
图10 3种识别方法的识别效果对比图
通过对上图的观察分析,可以得出基于端口的方法的正确识别率已经比较低,远远无法达到流量控制的要求;基于流行为的识别方法虽然正确识别率也比较高,但是波动性较大,实时控制效果较差;而基于识别应用层签名的识别方法不仅正确的识别率比前面的两种方法要高,而且识别的效果平稳,受实时环境的影响小,由此也可以看出这种方法的识别控制效果比另外两种识别方法都要更好。
流量识别及控制一直是网络流量工程的研究热点。通过分析获取3种主流P2P流媒体和一些其他主流P2P应用软件的应用层签名,并通过实验验证了基于应用层签名的识别方法具有高精确、低误报以及能有效控制流量特点。但是,尽管DPI技术的优势已经在商业应用中取得了很好的效果,它对加密的应用层数据的识别仍存在较大的局限性,而且当特征知识库中的特征规则到达一定数量后,后期的维护工作量也将不断增加。因此今后的DPI技术发展应该更多地结合其他识别方法,以提高它的应用性。
:
[1]余浩,徐明伟.P2P流检测技术研究综述[J].清华大学学报:自然科学版,2009(4):616-620.
[2]张广兴,陈敏,谢高岗,等.一种 VoIP流量识别的新方法[J].计算机应用研究,2008,25(4):1186-1188.
[3]陈敏,张广兴,毕经平.基于 SIP的VoIP流量识别方法研究[J].计算机应用研究,2007,24(4):301-303.
[4]方莹.基于应用层签名特征的P2P流量识别[J].计算机工程与应用,2012,48(3):73-75.
[5] ROUGHAN M,SEN S,SPATSCHECK O,et al.Class-of-service mapping for QoS:a statistical signatu-re-based approach to IP traffic classification[C]//Proc.the 4th ACM SIGCOMM Conference on Internet Measurement.[S.l.]:ACM Press,2004:135-148.
[6]邬书跃,余杰,樊晓平.基于流量与行为特征的P2P流量识别模型[J].计算机工程,2012,38(16):182-184.
[7]刘许刚,黄海,杜锡寿,等.基于流统计特征的VoIP媒体网关检测方法倡[J].计算机应用研究,2011,28(12):4721-4725.
[8] SEN S,SPATSCHECK O,WANG D.Accurate,scalable in-network identificationof P2P traffic using application signatures[C] //Proc.13th International Conference on World Wide Web.[S.l.]:ACM Press,2004:512-521.
[9]李明伟,张大方,曾彬,等.基于有效载荷分析的BT流量识别技术[J].计算机应用,2008,27(9):2230-2232.