P2P流量识别技术汇总(原理、优缺点介绍)

来源:互联网 发布:自学软件测试靠谱吗 编辑:程序博客网 时间:2024/06/10 09:48

随着P2P技术不断地发展演进,P2P技术及架构的演进经历了集中式、全分布式、混合式三个阶段。P2P常规流量检测一般通过常用的端口来进行识别,然而随着架构的演进,P2P流量识别也因此从简单的端口匹配到复杂的DPI深度数据包检测,其端口特性也由最初的固定端口发展到随机动态端口再到伪装端口,一步步地加大着P2P流量检测的难度。同事,随着数据挖掘、模糊统计技术的不断发展,已经有很多研究人员开始将机器学习中的贝叶斯分类、雅各布算法等常用手段引入到流量识别的研究当中。

通过对国际上各种P2P流量检测技术的调查研究,将各种流量检测技术归纳如下。

 

(1) 基于IP地址的P2P识别

(2) 基于端口的P2P识别

(3) 基于会话的识别

(4) 基于统一资源定位符(URL)的过滤方法

(5) 基于流统计特性的识别

(6) 基于传输层行为特征的识别

(7) 基于深度数据包扫描的识别

(8) 基于DNS查询日志的P2P节点检测

 

(1) 基于IP地址的P2P识别

IP地址识别可以分类出集中式P2P中的目录服务器以及混合式P2P中的Super-Peer,以及某些恶意的P2P用户。这种识别方法比较局限,应用范围比较狭窄。

 

(2) 基于端口的P2P识别

这里的端口指TCP/IP模型的传输层端口,即TCP或UDP端口。

端口识别法的优点是:效率高、快速、易实现;采用端口检测方案不必对

网络进行较大的改动,原理和控制逻辑都比较简单,实施方便,投资不大。然而P2P协议不使用固定端口,而是动态地使用端口,包括使用一些知名服务的端口。KaZaa使用了随机端口,而HTTP隧道、端口跳跃等技术的使用更是加大了识别、跟踪、控制的难度,导致了检测对象单一,造成识别误报和漏报率高等问题,同事对于一些VPN的应用或者通过NAT转换的应用无能为力。

 

     总体来看,使用端口法识别业务流量的方法缺点如下。

Ø 不是所有的协议都在因特网编号分配机构IANA中注册了使用的端口

Ø 在某些情况下,服务器的端口是动态分配的,例如FTP被动模式下的数据传输端口就是在控制流中协商的。

Ø 由于防火墙等访问控制技术封堵了某些未授权的端口,很多协议使用

常用端口以绕开防火墙的封堵,例如80端口被很多非Web应用程序使用,以绕开那些不过滤80端口流量的防火墙。

 

(3) 基于会话的识别

TCP/UDP端口可能存在于任何一个数据包中,高层协议的特征代码却只能

存在于一个会话包的头几个数据报中。因此,当在一个会话包的第一个数据报中发现P2P特征代码时,该会话包的其余数据报也就可以判断为P2P数据报。有时P2P软件使用多个会话包,这就需要系统软件关联匹配这多个会话包进行P2P判定。

 

(4) 基于统一资源定位符(URL)的过滤方法

该方法多用于BT的识别控制,过滤URL中包含的.torrent,可以禁止扩展名为.torrent的文件的下载。这种方法具有很大的局限性,因为.torrent文件完全可以通过别的方式(如FTP)或者换一个扩展名以避免过滤。

 

(5) 基于流统计特性的识别

P2P应用作为一种充分利用客户端资源的应用,在传输层表现出来的流量

特征相对于其他应用,如FTP、DNS等,有许多不同的地方。由于P2P流量数据量大,节点间数据交换频繁,P2P流量具有两个重要特点:一是不分时段性;二是持续性。对传统流量来说,一般访问一个网站的流量是突发的,持续时间短的,数据以下行为主;如果用传统方式下载文件,持续时间会相对较长,但数据还是以下行为主,上行量相对很小。对P2P流量来说,突出特点是持续时间长,流量也是非突发性的,并且上行和下行的流量是相当的。基于流统计特性的识别方法就是要对数据流量进行统计分析,从统计上来判断该流量是否数据P2P流量,而后对该流量进行控制。

     基于流统计特性的识别方法的优点有:

Ø 由于P2P应用具有普遍适用的流量特征,新的应用也符合这一特征,所以这种技术有发现新的应用的能力;

Ø 有检测加密应用的能力。

基于流统计特性的识别方法缺点有:

Ø 由于传输层的特征一般不能明确指示应用层协议类型,所以这种方法对应用分类的能力较

弱,而应用分类对于服务质量的实施是非常重要的。

Ø 由于对称路由和丢包、重传现象的存在,导致无法精确确定流量特征,从而有可能对流量

检测的精确度造成影响;

Ø 很多流量特征都不是流量唯一的,其他应用也有可能表现出这种流量特征,需要结合其他

一些技术如端口检测来排除其他应用。

 

(6) 基于传输层行为特征的识别

该方法以P2P流量在传输层所表现出来的一般特性为依据并结合传统的端口检测技术对P2P流量进行识别。基于传输层的P2P识别与基于流的P2P识别有相似之处,都是通过宏观分析的方法进行识别,而不进行任何微观内容的检测。不同之处在于,基于流的P2P识别依据的是P2P流的字节数、平均速率以及持续时间等流的属性特征,而传输层的P2P识别则是根据P2P连接的IP地址和端口号的连接特征进行识别。

 

     这种方法主要使用一个数据流中两种不同类型的对。第一种是同时使用TCP和UDP进行数据传输{SourceIP,DestinationIP}对;第二种是两个P2P主机进行连接的{IP,Port}对。

 

1)  同时使用TCP和UDP的{Source IP,Destination IP}对

Ø 首先要识别出那些同时使用TCP和UDP传输协议的源-目的IP对。一般约有2/3的P2P协议同时使用TCP和UDP作为第四层的传输协议。这些协议包括eDonkey、Fasttrack、WinMx、Gnutella、MP2P以及DirectConnect。一般而言UDP用于流量控制请求和请求应答,而数据传输则用TCP。因此那些同时使用两种传输协议(TCP和UDP)的源、目的主机便极有可能是使用P2P应用的主机。

2)  {IP,Port}对

Ø 在P2P网络中,连接到一个主机节点上的不同的IP数与端口数是相等的。比如有20个不同主机连接到同一个主机时,一般需要20个不同端口。相比而言,一个主机如果连接到一个Web服务器上,为了并行下载,一般会使用不止一个端口。因此,IP数和端口数相对应的连接则极可能是P2P连接。

         利用这种方法识别P2P流量的步骤描述如下。

         首先找出在T时间内同时使用TCP和UDP的源-目的IP对。如果这样的IP对存在,认为是P2P连接。

         然后在T时间内,观察所有的源(IP,Port)对和目的(IP,Port)对,找出IP数和端口数相等的对,即为P2P对。相反如果连接到的IP数和Port数相差大到10个以上,则认为是非P2P流量。

         同基于流的识别方法一样,这种识别方法最大的问题也是不能区分出具体的P2P协议,虽然灵活性较好,即可以识别未知的P2P协议,但精确性不高。如果能提高检测精度,该方法将具有很好的扩展性。

 

(7) 基于深度数据包扫描的识别

由于P2P软件引入动态端口,只能通过扫描高层协议来探知P2P数据报。如对于Kazaa系统,只能深入内部获取Kazaa特征代码。对于其他P2P应用,有时甚至要通过几个特征代码才能判明其为P2P流。深度数据包检测技术DPI是通过对数据包应用层协议的检测解析发现P2P应用。DPI可以帮助实现对网络内部奥秘的透视和对网络资源的控制,可以分辨出具体用户具体应用的数据流,从而可以对用户的应用部署QoS、安全等其他策略。

      DPI技术使用一个载荷特征库存储载荷特征串,符合载荷特征串的数据包即被视为P2P数据包。几乎每种P2P应用都具有自己的应用层协议,通过数据报报文捕获,分析报文特征,则可以为每种P2P应用层协议定义唯一的载荷特征串。定义特征串的原则为:选择该协议特有的,交互过程中必须出现且实际环境中出现频率最高的字段作为协议的特征串。

 

DPI的识别技术可以分为以下三类。

Ø 基于“特征字”的识别技术

不同的应用通常依赖于不同的协议,而不同的协议都有其特殊的指纹,这些指纹可能是特定的端口、特定的字符串或者特定的比特序列。基于“特征字”的识别技术通过对业务流中特定数据报文中的“指纹”信息的检测以确定业务流承载的应用。通过对“指纹”信息的升级,基于特征的识别技术可以很方便的进行功能扩展,实现对新协议的检测。

如BitTorrent协议的识别,通过对其协议进行分析,发现BitTorrent协议由一个握手开始,后面是循环的消息流,每个消息的前面都有一个数字来表示消息的长度。在其握手过程中,首先发送19,然后是字符串“BitTorrent Protocol”。那么“19BitTorrent Portocol”就是BitTorrent的“特征字”。

根据具体检测方式的不同,基于“特征字”的识别技术又可以分为固定位置特征字匹配、变动位置的特征匹配以及状态特征匹配三种技术。

 

Ø 应用层网关识别技术

某些业务的控制流和业务流是分离的,业务流没有任何特征。这种情

况下需要采用应用层网关识别技术。应用层网关需要先识别出控制流,并根据控制流的协议通过特定的应用层网关对其进行解析,从协议内容中识别出相应的业务流。对于每一种协议,需要有不同的应用层网关对其进行分析。

        例如SIP、H.323协议。SIP/H.323通过信令交互过程,协商得到其数据通道,一般是RTP格式封装的语音流。也就是说,纯粹检测RTP流并不能得出这条RTP流是通过哪种协议建立的。只有通过检测SIP/H.323的协议交互,才能得到其完整的分析。

 

Ø 行为模式识别技术

行为模式识别技术基于对终端已经实施的行为的分析,判断出用户正

在进行或者即将实施的动作。行为模式识别技术通常用于某些无法根据协议识别判断的业务。例如SPAM垃圾邮件业务流和普通的E-Mail业务流从E-Mail的内容上看是完全一致的,只有通过对用户行为的分析,才能够准确地识别出SPAM业务。

         DPI技术的主要用处包括以下几项。

(一) 流量管理:控制P2P流量,防止这种“流量”占用了太多的带宽,

而影响其他应用。

        (二)安全:识别出并能抑制DoS攻击和其他的恶意危害网络安全的行为。

        (三)网络资源使用的控制。

        (四)业务优化:例如个性业务和内容过滤。

        (五)全局业务控制策略应用。

DPI技术的优点如下:

(1) 精确度高:通过使用各种优化措施和发现更多的载荷特征,DPI技术可以达到非常高的检测精度和令人满意的性能。

(2) 易于应用:目前主流的P2P协议都是非加密传输的,破解相对容易,使用DPI技术就能满足目前运营商限制P2P流量的需求。

(3) 易于维护,升级简便:对于新出现的P2P协议,只需在破译后升级载荷特征库就可以实现对新出现的P2P协议的监控,后期维护简单。而且一种新P2P应用出现并大量占据互联网带宽需要比较长的时间,所以DPI技术检测新应用的滞后性对用户造成的影响有限。能够对已知协议的P2P流量惊醒精确的识别,误判概率很低。

(4) 使用范围广:易于理解、升级方便、维护简单,是目前运用最普遍的方法。

 

DPI技术的缺点如下。

(1) 可扩展性差:由于该方法对新P2P应用的流量识别具有滞后性,即在未升级特征库钱无法检测新的P2P应用,必须找到新应用的载荷特征后,才能对该应用实施有效检测。这一点成为限制该方法的瓶颈。

(2) 缺乏加密数据分析功能:某些P2P载荷采用了加密传输,隐藏了P2P应用的协议和数据特征,因此深度数据包检测技术对加密P2P应用的检测能力非常有限。

(3) 代价较高:由于需要完成协议解析还原和特征匹配等操作,因此计算和存储开销大,流量检测算法性能低。载荷特征越复杂,检测代价越高,算法性能也越差。


(8) 基于DNS查询日志的P2P节点检测

除了截获数据包进行分析外,也有学者从识别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节点进行检测,导致检测范围大,可用性差。



转自:Mpad.mobi P2P流量识别、控制技术

0 0
原创粉丝点击