随着P2P技术不断地发展演进,P2P技术及架构的演进经历了集中式、全分布式、混合式三个阶段。P2P常规流量检测一般通过常用的端口来进行识别,然而随着架构的演进,P2P流量识别也因此从简单的端口匹配到复杂的DPI深度数据包检测,其端口特性也由最初的固定端口发展到随机动态端口再到伪装端口,一步步地加大着P2P流量检测的难度。同事,随着数据挖掘、模糊统计技术的不断发展,已经有很多研究人员开始将机器学习中的贝叶斯分类、雅各布算法等常用手段引入到流量识别的研究当中。
通过对国际上各种P2P流量检测技术的调查研究,将各种流量检测技术归纳如下。
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(1)
IP地址识别可以分类出集中式P2P中的目录服务器以及混合式P2P中的Super-Peer,以及某些恶意的P2P用户。这种识别方法比较局限,应用范围比较狭窄。
(2)
这里的端口指TCP/IP模型的传输层端口,即TCP或UDP端口。
端口识别法的优点是:效率高、快速、易实现;采用端口检测方案不必对
网络进行较大的改动,原理和控制逻辑都比较简单,实施方便,投资不大。然而P2P协议不使用固定端口,而是动态地使用端口,包括使用一些知名服务的端口。KaZaa使用了随机端口,而HTTP隧道、端口跳跃等技术的使用更是加大了识别、跟踪、控制的难度,导致了检测对象单一,造成识别误报和漏报率高等问题,同事对于一些VPN的应用或者通过NAT转换的应用无能为力。
Ø
Ø
Ø
常用端口以绕开防火墙的封堵,例如80端口被很多非Web应用程序使用,以绕开那些不过滤80端口流量的防火墙。
(3)
TCP/UDP端口可能存在于任何一个数据包中,高层协议的特征代码却只能
存在于一个会话包的头几个数据报中。因此,当在一个会话包的第一个数据报中发现P2P特征代码时,该会话包的其余数据报也就可以判断为P2P数据报。有时P2P软件使用多个会话包,这就需要系统软件关联匹配这多个会话包进行P2P判定。
(4)
该方法多用于BT的识别控制,过滤URL中包含的.torrent,可以禁止扩展名为.torrent的文件的下载。这种方法具有很大的局限性,因为.torrent文件完全可以通过别的方式(如FTP)或者换一个扩展名以避免过滤。
(5)
P2P应用作为一种充分利用客户端资源的应用,在传输层表现出来的流量
特征相对于其他应用,如FTP、DNS等,有许多不同的地方。由于P2P流量数据量大,节点间数据交换频繁,P2P流量具有两个重要特点:一是不分时段性;二是持续性。对传统流量来说,一般访问一个网站的流量是突发的,持续时间短的,数据以下行为主;如果用传统方式下载文件,持续时间会相对较长,但数据还是以下行为主,上行量相对很小。对P2P流量来说,突出特点是持续时间长,流量也是非突发性的,并且上行和下行的流量是相当的。基于流统计特性的识别方法就是要对数据流量进行统计分析,从统计上来判断该流量是否数据P2P流量,而后对该流量进行控制。
Ø
Ø
基于流统计特性的识别方法缺点有:
Ø
弱,而应用分类对于服务质量的实施是非常重要的。
Ø
检测的精确度造成影响;
Ø
一些技术如端口检测来排除其他应用。
(6)
该方法以P2P流量在传输层所表现出来的一般特性为依据并结合传统的端口检测技术对P2P流量进行识别。基于传输层的P2P识别与基于流的P2P识别有相似之处,都是通过宏观分析的方法进行识别,而不进行任何微观内容的检测。不同之处在于,基于流的P2P识别依据的是P2P流的字节数、平均速率以及持续时间等流的属性特征,而传输层的P2P识别则是根据P2P连接的IP地址和端口号的连接特征进行识别。
1)
Ø
2)
Ø
(7)
由于P2P软件引入动态端口,只能通过扫描高层协议来探知P2P数据报。如对于Kazaa系统,只能深入内部获取Kazaa特征代码。对于其他P2P应用,有时甚至要通过几个特征代码才能判明其为P2P流。深度数据包检测技术DPI是通过对数据包应用层协议的检测解析发现P2P应用。DPI可以帮助实现对网络内部奥秘的透视和对网络资源的控制,可以分辨出具体用户具体应用的数据流,从而可以对用户的应用部署QoS、安全等其他策略。
Ø
不同的应用通常依赖于不同的协议,而不同的协议都有其特殊的指纹,这些指纹可能是特定的端口、特定的字符串或者特定的比特序列。基于“特征字”的识别技术通过对业务流中特定数据报文中的“指纹”信息的检测以确定业务流承载的应用。通过对“指纹”信息的升级,基于特征的识别技术可以很方便的进行功能扩展,实现对新协议的检测。
如BitTorrent协议的识别,通过对其协议进行分析,发现BitTorrent协议由一个握手开始,后面是循环的消息流,每个消息的前面都有一个数字来表示消息的长度。在其握手过程中,首先发送19,然后是字符串“BitTorrent Protocol”。那么“19BitTorrent Portocol”就是BitTorrent的“特征字”。
根据具体检测方式的不同,基于“特征字”的识别技术又可以分为固定位置特征字匹配、变动位置的特征匹配以及状态特征匹配三种技术。
Ø
某些业务的控制流和业务流是分离的,业务流没有任何特征。这种情
况下需要采用应用层网关识别技术。应用层网关需要先识别出控制流,并根据控制流的协议通过特定的应用层网关对其进行解析,从协议内容中识别出相应的业务流。对于每一种协议,需要有不同的应用层网关对其进行分析。
Ø
行为模式识别技术基于对终端已经实施的行为的分析,判断出用户正
在进行或者即将实施的动作。行为模式识别技术通常用于某些无法根据协议识别判断的业务。例如SPAM垃圾邮件业务流和普通的E-Mail业务流从E-Mail的内容上看是完全一致的,只有通过对用户行为的分析,才能够准确地识别出SPAM业务。
(一) 流量管理:控制P2P流量,防止这种“流量”占用了太多的带宽,
而影响其他应用。
DPI技术的优点如下:
(1)
(2)
(3)
(4)
DPI技术的缺点如下。
(1)
(2)
(3)
(8)
除了截获数据包进行分析外,也有学者从识别P2P节点入手,获得其IP,从而发现P2P流量。山东大学的陈振祥等人通过研究发现,在中心化的、纯分布式的或者混合的P2P网络中,比如Skype、KaZaa、eMule、Shareazw、Gnucleus、Sancho、Bittorrent和eDonkey等应用,其对等节点不通过DNS查询来得到目标节点的IP地址信息,而是从中心服务器、超级节点或者DHT得到相邻节点的信息,因此DNS服务器的日志记录能作为识别P2P主机节点的一个凭据。根据陈振祥等人的试验,在5分钟的间隔内,对于一个固定IP主机节点,如果他发起的连接的主机数据超过5个,但是DNS关于该主机的查询日志为空,那么这可能就是一个P2P主机。通过主机IP地址的识别,可以分辨出集中式P2P中的目录服务器及混合式P2P中的超级节点,进而通过源地址IP对P2P流量进行识别检测。但是由于该方法是对P2P节点进行检测,导致检测范围大,可用性差。