基于P2P流量检测的签名特征匹配研究
扫描二维码
随时随地手机看文章
摘要:P2P网络应用快速发展,带来网络安全防护漏洞和隐患。如何有效地监控P2P流,进行相关的流识别、流筛选、流控制是流管理中的重要问题。通过分析P2P协议及签名特征,提出一种基于签名特征的P2P流分析方法,通过实验分析相关P2P应用软件,得到相关软件的签名特征,并判断网络数据流是否为P2P流。可有效地提高P2P流识别的效率,解决检测信息过多、过滤信息性能瓶颈等问题。
关键词:P2P网络;流量检测;签名特征
近年来,网络技术快速发展,特别是对等网的迅速发展已经成为业界关注的焦点之一,基于P2P网络之上的相关应用正逐渐占据互联网应用的重要地位,并被视为未来网络技术发展的主要趋势,相对于传统网络,对等网依靠非中心节点、分布式结构模型,实现对等协作和资源共享,并具有自组织、容错性强、可扩展以及负载均衡等优点,但P2P是通过组播方式进行通信,它允许单个用户未经授权或检验而任意分发内容,其传播范围广,穿透性强,带来网络安全防护漏洞和隐患。如何有效地监控P2P流,进行相关的流识别。流筛选、流控制是流管理中的重要问题。
早期的P2P应用都是固定的端口号,容易检测便于管理,近年来,该应用逐渐发展到动态随机端口号,而且近期涌现的新型P2P应用越来越具有反侦察的意识,并采用了一些伪装或加密的方法,如:伪装Http协议、加密、传输分块等来逃避识别和检测,这些技术使得P2P流识别变得更为困难。目前,P2P应用快速发展和变化,新的P2P应用不断出现,其结构更为复杂,应用领域也更为广泛,随着网络带宽的不断拓展,单位时间的流量将更为庞大,而P2P流识别必须解决单位时间内在线监测分析的问题,这将给数据的采集、监测、分析带来更多困难。如何让识别算法适应网络流量的快速发展,使得监测的信息最多,过滤效果最好,也是当前急需解决的问题。
1 P2P流量检测的识别方法
1.1 端口识别检测方法
早期,P2P流识别主要采取的是端口识别和数据包检测方法,Madhukar等对端口识别法的有效性进行了研究,并采用实际数据观察。研究表明,端口识别法对网络中的数据流50%~70%无法有效识别。
1.2 统计特征的方法
基于协议和统计特征的方法是一类重要的P2P流识别方法,如Constantinou提出了网络直径分析法,通过记录网络中每个节点与其他节点建立连接的情况得到链接的逻辑拓扑图,并转换为网络直径,如网络直径超过某个门阈值,可认为该网络为P2P网络。Thomas Karagiannis等提出了协议和地址端口分析方法,P2P系统通常采用UDP来发送命令等控制信息,TCP协议来传输数据。传统网络的应用软件,很少出现同时使用UDP协议和TCP协议,如有同时使用两种协议可认为是P2P流。
1.3 检测协议特征的方法
数据包协议特征检测方法主要用于入侵检测,根据预定义的协议特征辨别其应用类型,当前许多P2P应用识别方案都基于这种方法。通过TCP/IP层之上的应用层协议分析软件进行流量分析和特征分析,监控并找出其协议特征码,以下就是各种不同的P2P网络协议的特性:
2 签名特征的抓取及实验数据分析
签名技术需要访问每一个数据包中的用户载荷,每一种P2P应用都具有与协议相关的签名特征,为了对比分析方便,选取目前使用较为广泛的Sniffer软件,通过抓取对应协议数据包,观察关键字、命令、选项等可观察的特征内容,找到其已知的特征串。
实现签名特征技术的关键问题在于,首先通过分析P2P流是TCP数据包还是UDP数据包,或者两者皆有;其次P2P应用层的签名可以应用到单一的数据包,也可应用到重组的数据包中。
Emule/Edonkey协议:采用TCP或UDP通信,缺省端口4661-4665,第一字节特征串为0xe3,0xc5。
Kazaa协议:对数据包进行加密,很难了解到协议的具体细节,在Kazaa中,文件通常以伪装的HTTP形式发送。
Gnutella协议:使用TCP建立一个高度互联的拓扑结构,为子节点提供网络服务,当两个Gnutella节点建立连接后,需要一个握手来交换一下必要的数据信息。
明文检查UDP包起始数据是否为“GNUTELL”或“GND”
Gnutella命令特征:负载最后以“\r\n”结尾,而且起始数据为:“GET/get/”
Vagaa协议分析:Vagaa和Emule/EDonkey一样也是一种较为流行的P2P软件。它的协议分析如下:
发送请求数据包特征:16进制表示为:78 01 7B DC C9 C0 C0 3F 90 B8 6E 97 E6 35 3E A6 92 73 F3 A5 64 1B 14 F2 77
确认数据包特征:16进制表示:DE AD BE EF
PPLive协议:作为一款流行的P2P在线视频播放软件,通过对PPLive流量的抓取分析,发现PPLive的UDP数据包具有的签名特征,如表5所示。
BitTorrent协议:BitTorrent是非常流行的文档下载软件,通过对BitTorrent的TCP握手信息进行分析,发现其签名特征,如表6所示。
BitTorrent在下载过程中与Tracker服务器进行通信,它采用HTTP协议,通过分析其HTTP流,发现其签名特征:
UDP包特征:UDP长度24字节(含UDP头),起始8个字节为:00 00 04 17 27 10 19 80
TCP包特征:第一字节为0x13,后续数据为:“BitTorrentprotocol”
3 结束语
文中通过对各时期P2P流量检测技术回顾,阐述了流量检测技术的进展,提出一种基于协议签名特征的P2P流识别方法。首先,通过Snif fer软件对数据包进行抓取,并进行特征分析、关键字分析,进行预判;然后,再进行深度扫描,对数据流进行较精确判决,根据流的协议特征和行为特征判决方法,判决规则简单,有利于工程应用,通过实验室小数据测试,实验证明本文提出的识别方式可行。下一步工作,可对签名特征较为分散的数据流进行重组,提取更为准确的签名特征,进行精确判别;另外,随着网络带宽的快速发展,大流量、实时的检测数据流,需要进一步提升抓包、筛选效率和签名特征多模式匹配算法效率。