柴 琦,曹旭东,王洪蕾,王雪凤(.中国石油大学(北京)北京 049;.国网招远市供电公司 山东 招远 65400)
P2P流量监测系统的设计
柴 琦1,曹旭东1,王洪蕾1,王雪凤2
(1.中国石油大学(北京)北京102249;2.国网招远市供电公司 山东 招远265400)
基于提高加密P2P类流量识别率的目的,本文通过改进流量识别技术的方法,提出了一种DPI技术与DFI技术相结的改进方案。并对多种应用进行反复测试,通过对前后识别结果的比对,验证该方法的可行性,识别率提高到95%以上。
P2P;流量识别与控制;深度报文检测技术;深度流检测技术
人们的网络活动由web浏览已扩展到现在纷繁复杂的网络应用,如今视频通话、在线会议、远程操作等多元化方式已经融入人们的生活,截至到2015年6月中国互联网覆盖率达到48.8%,网民数量达6.68亿人次[1]。
传统网络中的信息资源共享是“以服务器为中心”的工作模式[2],服务提供者与服务使用者之间的界限非常清晰,P2P网络则淡化了这一点,所有客户机同时兼具服务的提供方和使用方两个身份,整个网络不依赖于专用的集中式服务,如即时通信Yahoo Messenger、MSN等进行文件传输等大数据量业务时一般都会使用P2P模式[3]。P2P类的应用占用了大量带宽,影响用户上网体验,另外运营商也急需通过分析和挖掘用户上网行为和习惯来开展一些增值业务。
1.1流量识别技术
1.1.1基于端口的识别技术
早期,根据互联网编号分配管理署统一分配给网络协议或互联网应用的固定端口号,我们可以使用基于端口的识别技术[4]对一些基本应用或协议进行识别。但是,随着互联网应用的激增以及网络协议的发展,一些开发商为了避开防火墙的过滤,采用动态端口技术,使得传统的基于端口的识别技术已经无法满足市场需求,被网络流量识别系统的开发人员用作了一种辅助的技术手段。
针对这种情况,人们开始转向对网络通信协议的分析,特别是针对TCP/IP模型中的传输层和应用层的特点来识别网络流量。
1.1.2基于应用层的识别技术
最为常见的就是DPI,即深度报文检测技术。相对于传统端口识别技术,它不仅能够读取报文中的五元组信息,包括源地址,目的地址,源端口,目的端口及协议类型,还可以分析应用层的负载信息,也就是检查应用层TCP或UDP的负载部分,是否存在所要识别的应用特征。
但是,由于DPI技术[5]需要读取应用层负载也就是用户信息,这样不仅侵犯用户的隐私权,而且对于一些加密的或者使用UDP协议的流量无法进行识别。
1.1.3基于传输层的识别技术
基于上述情况,对于这种DPI无法识别的,很难提取特定字符串的流量,就可以通过对其传输层的行为特征的研究进行识别,通常使用DFI的检测技术,即深度流检测技术。基于DFI的检测技术[6]是建立一个流量行为特征的模型,通过分析传输层协议类型、上下行流量比例关系以及数据包的包长范围、时间间隔、负载长度、连接速率等特征同最初统计设置的流量模型相比较,来实现对网络流量的识别[7]。其中,主要使用了机器语言学习和数据挖掘技术的分类算法对互联网通信传输过程中的特征进行统计[8]。
1.2流量控制技术
网络流量控制就是指利用软、硬件方式来实现对网络数据流量的控制目的。可以理解为一种流量整形,是一个网络交通管理技术,通过延缓部分或所有数据包等手段,使之符合人们所需的网络交通规则和速率限制。
一种是TCP窗口整形技术[9],主要是接收方根据自身的数据接受能力,通过滑动窗口机制来限制发送方数据的传输速率。其优势在于可以对每个TCP会话进行监控和干扰,有效控制信息源发送信息量、发送时间和频率。
另一种是旁路干扰技术,与TCP窗口整形技术所不同的是其控制设备是旁路部署在网络中,不需要与通信双方的主机建立握手过程。不仅可以通过伪装通信双方发送干扰数据的手段来实现TCP重传,还可以通过对应用层协议信令的干扰来达到对UDP流量控制目的[10]。
2.1模块的设计
如图1所示,是本文设计的互联网流量监控系统结构图。
图1 流量监测系统的结构图
1)流量识别模块是整个系统的关键模块,它主要负责对流经设备的所有数据流量进行准确识别和分类,并将结果发送给控制模块。该模块由两部分组成:DPI检测器和DFI检测器。
2)知识库模块主要包括应用特征库和应用样本库两部分。对各类互联网应用提取应用层负载信息,分析整理成一个应用特征库,用于DPI检测器的识别。将数据预处理器统计的报文上下行特征、包长范围、时间间隔和负载长度等信息汇总成应用样本库。
3)数据存储模块主要负责存储数据流五元组信息、流量识别及阻断结果等。
4)流量控制模块主要负责执行接收的策略进行阻断和控制。主要有两个部分:策略接收器和控制报文发送器。如图2所示,当数据流经过系统时,通过识别模块识别流量类型,将识别结果送给控制模块,同时根据下发的策略信息,对报文进行转发或丢弃达到阻断或限流的目的。
5)交互模块其实就是整个流量监控系统的前台控制中心,负责与其他各功能模块的交互通信,它在完成更新知识库、配置阻断策略等功能的同时,提供了一个可视界面,以便用户实时查看识别及阻断情况。
2.2P2P流量识别方案的设计与改进
由于基于应用层识别的DPI检测技术对于一些加密的P2P协议,无法提出合适的特征字段,所以增加DFI检测模块进行辅助识别[11]。
如图3所示为识别模块的系统流程图。
图2 识别与控制模块原理图
图3 识别模块流程图
因为DPI检测技术可以识别70%-80%的应用[12],为提高检测效率,我们首先将数据预处理器得到的数据流送入DPI检测器,其中的DPI匹配引擎结合精确字符串匹配算法和正则表达匹配算法的优点,解决了在正则表达式中精确字符串必须描述成正则表达式的麻烦,同时也简化了AC引擎中复杂字符串必须描述成多条规则才能准确识别的工作量。解析出的应用层负载信息,在引擎对字符串进行匹配识别前首先要对应用特征库进行编译,AC算法要把字符串编译成AC状态机,正则表达式算法要把字符串编译成DFA,通过该优化引擎与应用特征库信息进行匹配,即可识别到相关应用,随后将结果递送给数据存储模块。
例如,我们在分析“百度云盘”应用时,可以从所抓取的报文中发现URL字段开头为“POST”,同时Host部分有“pan. baidu.com”的标志性字符串,经过对大量报文分析从而判定同时存在这两段的字符串信息的报文,为百度云盘上传文件的流量,如图4所示。通过对报文细粒度的分析我们就很容易从百度云流量中细化出上传或者下载流量,做到流量精确化识别。
然后,对于DPI识别出的流量采集其报文上下行特征、包长范围、时间间隔和负载长度等特征[13],送入一个预备样本库,利用机器学习[14-15]的方法训练预备样本库,这样就可以有效记录已识别的流量传输特征,根据采集的信息建立分类模型,将训练后的预备样本库分类器用于应用样本库中,当未知流量通过DFI检测器时,根据采集的未知流量传输特征与应用样本库进行比对,就可以有效的识别到应用。
图4 百度云盘的报文
本文设计的互联网流量监测系统主要部署在外部网络和内部网络之间。在实验室搭建了一个基础平台来完成互联网应用的识别与控制。如图5所示,内、外部网络交互的流量会通过流量控制设备的前台,管理员通过流量控制系统的后台对网络流量进行实时监控。
图5 应用场景网络部署图
可以同时配置多个阻断策略,以Skype为例,接入网络添加Skype_VoIP和Skype_IM的阻断策略后,打开Skype软件尝试反复通信,如下图6所示,其中default为系统默认策略,不影响测试环境,分别利用Skype软件进行语音、视频通话,测试过程中阻断命中协议Skype_VoIP和Skype_IM,尝试语音、视频连线,阻断连线请求,无法进行通信。
图6 Skype阻断测试后台
选取4个代表性应用Skype、酷我音乐、迅雷、百度云盘分别进行测试。首先配置网络环境,在使用Wireshark软件抓包前,需将连入网内的其他应用关闭,保证抓取报文的纯净度,保证识别结果的准确性。识别结果如表1。
由表1结果分析可以发现,所测试的应用软件识别率均在95%以上,而误报率和漏报率也在误差允许范围内,达到预期效果。测试应用软件,配置相应策略,反复通信5次以上,都显示阻断成功,符合预期要求。
文中通过对互联网通信现状的分析,针对目前流行的网络流量特点,提出了一种高校可行的实施方案,改进了互联网流量识别的方法,提高了识别的精确度,同时解决了DPI技术的不能识别P2P加密流量的局限性问题。
表1 识别与测试结果
[1]第三十六次中国互联网络发展状况统计报告[R].北京.中国互联网络信息中心.2015
[2]雷鸣.网络流量监控系统的设计与实现[D].天津:天津中国民航大学,2014.
[3]Se-Hee Han,James Won-Ki Hong.The Architecture of NGMON:A Passive Network Monitoring System for High-Speed IP Networks[J].Lecture Notes In Computer Science,2002,2506:16-27.
[4]刘颖秋,李巍,李云春.网络流量分类与应用识别的研究[J].计算机应用研究,2008(5):1492-1495.
[5]李天枫,姚欣,王劲松.大规模网络异常流量实时云监测平台研究[J].信息网络安全,2014(9):1-5.
[6]张瀚,辛阳.基于DPI技术的P2P流量检测系统设计[J].信息网络安全,2012(10):36-40.
[7]张峰.基于机器学习的VoIP流量识别技术研究[D].武汉:华中师范大学,2013.
[8]Sen S,Spatscheck O,Wang D:Accurate,scalable in-network identification of p2p traffic using application signatures. WWW’04[C]//Proceedings of the 13th International Conference on World Wide Web.ACM,New York,2004:512-521.
[9]Cascarano N,Este A,Gringoli F,et al.An experimental evaluation of the computational cost of a DPI traffic classifier[C]//IEEE Global Telecommunications Conference,2009.
[10]肖梅.基于朴素贝叶斯算法的VoIP流量识别技术研究[J].北京:信息网络安全,2015(10):74-79.
[11]米淑云.IP网络流量监控系统的设计与实现[D].北京:北京邮电大学,2009.
[12]程博,辛阳.基于VOIP的语音视频流量监控方案设计与实施[J].信息网络安全,2014(6):53-58.
[13]马丽娜.基于机器学习的GTalk流量识别系统的设计与实现[D].哈尔滨:哈尔滨工业大学,2013.
[14]吴倩.基于DPI与DFI的流量识别与控制系统的设计与实现[D].成都:电子科技大学,2013.
[15]陈朝晖.一种基于DPI和DFI技术的应用识别系统[J].中国高新技术企业,2011(6):77-80.
The design of the P2P traffic monitoring system
CHAI Qi1,CAO Xu-dong1,WANG Hong-lei1,WANG Xue-feng2
(1.China University of Petroleum-Beijing,Beijing 102249,China;2.State Grid Zhaoyuan Power Supply Company,Zhaoyuan 265400,China)
Based on the purpose of improving the identification of encrypted P2P traffic.By improving the method of traffic identification technology,this paper proposes an improved project that combin DPI and DFI technology.And repeated testing of a variety of applications.The feasibility of the method is verified by comparing the results of pre and post recognition.And the recognition rate is increased to more than 95%.
P2P;traffic identification and control;DPI;DFI
TN919.5
A
1674-6236(2016)11-0064-03
2016-01-23稿件编号:201601218
国家发改委下一代互联网技术在智慧油田的应用示范项目(CNGI-12-03-043)
柴 琦(1988—),女,黑龙江安达人,硕士研究生。研究方向:信号检测预处理。