P2P网络安全及防御技术研究综述
来源:计算机科学杂志 更新时间:2014-03-21
 
P2P网络的各类应用逐渐占据了互联网应用中的重要地位,其采用的分布式结构在提供可扩展性和灵活性的同时,也面临着巨大的安全风险和挑战。首先概述了P2P网络的基本概念与特点,并说明了P2P系统与传统C/S结构系统的区别;随后详细介绍了目前对P2P网络威胁和影响最大的3种攻击方法:Sybil攻击、Eclipse攻击和DD0s攻击,指出了3种攻击方法的联系与区别;最后分别概述了针对这3种攻击方法相应的防御措施。
    1.引言
    近年来,随着P2P(Peer-to-Peer)技术的日趋成熟,基于P2P网络的各种应用系统不断涌现和壮大。根据最新统计,目前同时在线用户数超过一百万的P2P文件共享网络有60余个,例如BitTorrent、eMule等;P2P流媒体服务是近几年成熟并迅速壮大的一项新技术,目前的大型网络如PPS、PPLive等的同时在线用户数也达到了数百万。另外,P2P技术在数据存储、数据库管理、Web搜索、网络缓存、网络电话等诸多领域都有重要应用。这些P2P网络系统在人们的网络体验中扮演了越来越重要的角色,甚至对人们的生活习惯乃至思维模式都具有不可忽视的作用。
    P2P技术在自身发展与完善的同时,对全球的经济、政治、军事与文化都产生了重要影响,同时面临着来自多个方面的安全威胁。首先,P2P应用已经形成了一个完善的产业,许多IT服务公司利用P2P网络技术开发新产品,并实现了盈利;但是,P2P技术对传统版权管理机制的重大冲击使得传统经济实体的利益受损,而使其不断投入资金研发反P2P技术。其次,P2P应用对网络流量的大量占用,使其成为网络服务提供商(ISP,Intemet Service Provider)的众矢之的,ISP也不断研发各种技术来过滤P2P流量。再次,由于P2P技术的无服务器特征,其共享信息可能涉及违法内容(如色情、暴力音像、军事、政治机密等),但却极易被无限制地传播,政府部门需要对其进行有效监管。另一方面,P2P技术的支持者一直在致力于研究各种有效手段,在保证其提供分布式服务的同时,提高其可靠性和安全性。
    基于上述原因,近年来,P2P网络安全成为了一个新的研究热点。P2P技术存在的安全缺陷为网络攻击者提供了各种各样的机会。P2P网络面临的一些主要安全威胁有:由信息共享导致的知识产权纠纷、路由攻击、存取攻击、行为不一致攻击、目标节点过载攻击、穿越防火墙以及新型网络病毒的传播。研究者提出了若干的安全通信、信任管理等机制来防御上述攻击。但是由于P2P网络自身特性所限,P2P攻击和防御技术仍然是一个很有挑战的研究领域,同时也具有非常广泛的应用前景。充分研究P2P网络中各种可能的攻击和防御措施,对于实现有效的P2P网络监管尤为重要。
    2.P2P网络概述
    P2P网络是一种分布式网络,在这种网络中所有的节点是对等的,各节点具有相同的责任与能力以协同完成任务,每一个节点既能充当网络服务的请求者,又能对其他节点的请求做出响应。对等节点之间通过直接互联共享信息资源、处理器资源、存储资源甚至高速缓存资源等,无须依赖集中式服务器。
    P2P网络一般具有如下特点:
    a)非中心化。网络中的资源和服务分散在所有节点上,信息的传输和服务的实现都直接在节点之间进行。
    b)可扩展性。在P2P网络中,随着用户的加入,不仅服务的需求增加了,系统整体的资源和服务能力也在同步地扩展,理论上其扩展性几乎可以认为是无限的。
    c)健壮性。由于服务是分散在各个节点之间进行的,部分节点在遭到破坏时对其它部分的影响很小。
    d)隐私保护。在P2P网络中,由于信息的传输分散在各节点之间进行,而无需经过某个特定的中间环节,大大降低了用户的隐私信息被窃听和泄漏的可能性。
  e)负载均衡。在P2P网络环境下,由于每个节点既是服务器又是客户机,减少了对传统C/S结构服务器计算能力、存储能力的要求,资源分布在多个节点,更好地实现了整个网络的负载均衡。
  与传统C/S模式相比,P2P网络弱化了服务器的功能,甚至取消了服务器。所有P2P节点在逻辑上是对等的,每个节点既充当服务器,为其他节点提供服务,也充当客户端,享用其他节点提供的服务。网络节点越多,P2P网络的性能就越好、稳定性就越高。图1分别给出了P2P系统和C/S系统的结构示意图。
130396117726927600_new.jpg (507×188)
图1 P2P系统与C/S系统的结构示意图
  3.P2P网络攻击研究
  P2P网络是一种开放的、不受限制的网络,各P2P节点对整个网络的了解是十分有限的,每个P2P节点只需维护邻居节点的信息,并进行实时更新,就可以保证P2P网络的正常运行。所以,P2P网络的安全问题也特别突出:恶意节点通过伪装自己,可自由加入或离开P2P网络,并可利用P2P节点的局限性来发动攻击或破坏网络的完整性。
  目前,针对P2P网络的Sybil攻击、Eclipse攻击、DDoS(Distributed Denial of Service,分布式拒绝服务)攻击等的相关研究在国际国内获得了广泛关注。
  Sybil攻击通过向P2P网络中引人多个恶意构造的节点来达到控制整个层叠网络的目的,它可以被用于监控发布和搜索流量、隔离特定共享内容等。Eclipse攻击的目的是将若干个目标节点从P2P网络中隔离出去,劫持其通信信息,控制其网络行为。DDoS攻击的目标是单个P2P网络节点,占用甚至耗尽其资源(如CPU、带宽等),使其不能正常提供服务。
  3.1 基于P2P的SybU攻击
  sybil攻击最初是由Douceu在点对点网络环境中提出的,他指出这种攻击破坏了分布式存储系统中的冗余机制,并提出直接身份验证和间接身份验证两种验证方式。后来Chris Karlof等人指出Sybil攻击对传感器网络中的路由机制同样存在着威胁。
  Sybil攻击,也称为女巫攻击,是指一个恶意结点非法地对外呈现出多个身份,通常把该结点的这些身份称为Sybil结点。sybil攻击方式主要有以下几种类型:直接通信、间接通信、伪造身份、盗用身份、同时攻击、非同时攻击。
  在P2P网络中,用户创建新身份或者新节点是不需要代价的,攻击者可以利用这一漏洞发动Sybil攻击,伪造自己的身份加入P2P网络,在掌握了若干节点或节点身份之后,随意做出一些恶意的行为,例如误导正常节点的路由表,降低P2P网络节点的查找效率;或者在网络中传输非授权文件,破坏P2P网络中文件共享安全,消耗节点间的连接资源等,而且不用担心自己会受到影响。图2示出了在P2P网络中攻击者进行Sybil攻击的原理。
130396117929329176_new.jpg (392×240)
图2 基于P2P网络的Sybil攻击原理
  Sybil攻击对P2P网络的攻击影响主要体现在以下几个方面:
  a)虚假节点加入。在遵循P2P网络协议的基础上,任何网络节点都可以向P2P网络发送节点加入请求消息;收到请求消息的P2P节点会立即作出响应,回复其邻居节点信息。利用这个过程,Sybil攻击者就可以获取大量的P2P网络节点信息来分析P2P网络拓扑,以便更高效地对P2P网络进行攻击或破坏。
  b)误导P2P网络节点的路由选择。节点问路由信息的实时交互是保证P2P网络正常运行的关键因素之一。节点只需定时地向其邻居节点宣告自己的在线情况,就能保证自己被邻居节点加入到其路由表中。恶意的Sybil入侵者通过这个过程,可以入侵正常P2P节点的路由表,误导其路由选择,大大降低P2P节点的路由更新和节点查找效率,极端情况下,会导致Eclipse攻击。
  c)虚假资源发布。Sybil攻击者一旦入侵P2P网络节点的路由表,就可以随意发布自己的虚假资源。P2P网络的目的是实现P2P用户间资源的分布式共享,如果P2P网络中充斥着大量的虚假资源,那么在P2P用户看来,这将是无法接受的。
  3.2 基于P2P的Eclipse攻击
  Moritz Steiner等人在Kad网络(最成功也是最流行的P2P应用之一)中提出了Eclipse攻击,并且给出了该攻击的原理。Eclipse攻击是指攻击者通过侵占节点的路由表,将足够多的虚假节点添加到某些节点的邻居节点集合中,从而将这些节点“隔离”于正常P2P络之外。当节点受到Eclipse攻击时,节点的大部分对外联系都会被恶意节点所控制,由此恶意节点得以进一步实施路由欺骗、存储污染、拒绝服务以及D劫持等攻击行为。因此,Eclipse攻击对P2P网络的威胁非常严重。
  P2P网络的正常运行依赖于P2P节点问路由信息的共享。Eclipse攻击者通过不断地向P2P节点发送路由表更新消息来影响P2P节点的路由表,试图使普通节点的路由表充满虚假节点。当P2P节点的路由表中虚假节点占据了较高的比例时,它对P2P网络的正常行为,包括路由查找或者资源搜索,都将被恶意节点所隔绝开,这也是这种攻击被称为月食攻击的原因。图3示出了在P2P网络中攻击者进行Eclipse攻击的原理。
130396118135980996_new.jpg (501×214)图3 基于P2P网络的Eclipse攻击原理
  Eclipse攻击和Syb订攻击密切相关,它需要较多的Sybil攻击节点相配合。为了实现对特定P2P节点群的Eclipse攻击,攻击者必须首先设置足够多的sybil攻击节点,并且向P2P网络宣称它们是“正常”的节点,然后使用这些Sybil节点与正常的P2P节点通信,入侵其路由表,最终把它们从P2P网络中隔离出去。
  Eclipse攻击对P2P网络的影响十分重大。对于P2P网络来说,Eclipse攻击破坏了网络的拓扑结构,减少了节点数目,使得P2P网络资源共享的效率大大降低,在极端情况下,它能完全控制整个P2P网络,把它分隔成若干个P2P网络区域。对于受害的P2P节点来说,它们在未知的情况下脱离了P2P网络,所有P2P网络请求消息都会被攻击者劫持,所以它们得到的回复信息大部分都是虚假的,无法进行正常的P2P资源共享或下载。
  3.3 基于P2P的DDoS攻击
  DDoS攻击是一种对P2P网络安全威胁最大的攻击技术之一,它指借助于C/S技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动攻击,从而成倍地提高拒绝服务攻击的威力。
  传统的DDoS攻击分为两步:1)利用病毒、木马、缓冲区溢出等攻击手段入侵大量主机,形成僵尸网络;2)通过僵尸网络发起DoS攻击。常用的攻击工具包括:Trinoo、TFN、TFN2K、Stacheldraht等。由于各种条件限制,攻击的第一步成为制约DDoS攻击规模和效果的关键。
  近年来,研究人员通过潜心研发P2P技术和DDoS技术并将两者融合起来,成功研究出不需要建立僵尸网络即可发动大规模DDoS攻击的技术。该技术不仅成本低、威力巨大,而且还能确保攻击者的隐秘性。图4示出了在P2P网络中攻击者进行DDoS攻击的原理。
130396118357743680_new.jpg (451×213)
图4 基于P2P网络的DDoS攻击原理
  P2P网络中具有数以百万计的同时在线用户数,这些节点提供了大量的可用资源,例如分布式存储和网络带宽。我们可以尝试利用这些资源作为一个发起大型DDoS攻击的放大平台。这种方式不必入侵P2P网络节点所运行的主机,只需要在层叠网络(应用层)中将其控制即可。理论上说,将P2P网络作为DI)oS攻击引擎,如果该网络中有一百万个在线用户,则可以将攻击放大一百万倍甚至更多。
  根据攻击方式的不同,基于P2P的DDoS攻击可分为主动攻击和被动攻击两种。基于P2P的主动DDoS攻击是通过主动地向网络节点发送大量的虚假信息,使得针对这些信息的后续访问都指向受害者来达到攻击效果的,具有可控性较强、放大倍数高等特点。这种攻击利用P2P协议中基于“推(push)”的机制,反射节点在短时间内会接收到大量的通知信息,不易于分析和记录,并且可以通过假冒源地址避过P检查,使得追踪定位攻击源更加困难。此外,主动攻击在P2P网络中引入额外流量,会降低P2P网络的查找和路由性能;虚假的索引信息,会影响文件下载速度。
  基于P2P的被动DDoS攻击通过修改P2P客户端或者服务器软件,被动地等待来自其它节点的查询请求,再通过返回虚假响应来达到攻击效果。通常情况下,会采取一些放大措施来增强攻击效果。如:部署多个攻击节点、在一个响应消息中多次包含目标主机、结合其它协议或者实现漏洞等。这种攻击利用了P2P协议中基于“取(pull)”的机制。被动攻击属于非侵扰式,对P2P网络流量影响不大,通常只能利用到局部的P2P节点。
  3.4 小结
  Sybil攻击是Eclipse攻击成功实施的基础。Sybil攻击的目标是单个物理节点在P2P网络上产生大量不同的身份,成功的Sybil攻击可以使发动Eclipse攻击变得更为容易。对单个节点进行DDoS攻击的前提是向P2P网络发布大量的虚假消息或被动地作出虚假响应,Eclipse攻击可以帮助攻击者劫持网络节点间传递的信息,增大成功实施DDoS攻击的可能性。
  Sybil攻击只是冒充单个P2P网络节点,对P2P网络的影响是比较小的。Eclipse攻击使得部分P2P节点脱离P2P网络,这对受攻击的节点来说是无法接受的。DDoS攻击的目的是大量占用受害节点的资源,使其无法正常提供服务,因此DDoS攻击对P2P网络的影响是致命的。
  4.P2P网络安全防御研究
  近年来,针对上述P2P网络的攻击方式,研究者提出了安全通信、信任管理等若干防御机制。
  4.1 基于P2P的Sybil攻击防御研究
  自从Sybil攻击出现以来,针对它的防御工作的研究一直都没有中断过。对Sybil攻击的防御措施,大致可以归为以下几类:
  a)信任认证。目前它被认为是防御Syb订攻击最通用的方法。通过一个授权中心,只有经过信任认证的节点才能加入P2P网络,共享和下载资源。Sepandar D.Kamvar等人最早提出了EigenTrust算法,其根据节点之间的信誉值,从网络中隔离信誉值较小的恶意节点,从而减小Sybil攻击的影响。Douceur提出只有经过信任验证,才能完全消除Sybil攻击的影响,而且这是仅有的方法。Jean-Marc Seigneur等人根据信任度模型,提出了信任转移方法,即每个节点主动创建其邻居节点的信任度信息,节点在进行共享信息交换时,也交换节点的信任度信息,去除信任度低的节点。
  b)资源测试。资源测试通过检测节点拥有资源(计算资源、存储资源、网络带宽等)的多少来验证节点的有效性,减弱Sybil攻击。George Danezis等人提出在使用DHT进行查询的过程中,尽量使用不同的节点集合,以确保至少有一部分查询结果是可用的,进而减缓sybil攻击对网络性能的影响。Joehen Dinger等人E123基于稳定性和m差异性等特点,对节点D进行检测与分类,然后充分利用P2P网络的分布式特性,提出了一种名为Self-Registation的方法,以减缓sybil攻击的可能性。
  c)提高节点加入网络代价。通过限制节点的加入过程,例如只有具有一定计算能力的节点才能加入P2P网络,来减小Sybil攻击的可能性。王鹏等人针对节点身份的认证方案,提出通过增加节点获取身份代价的方法,来尽可能地减少Sybil攻击。胡玲玲等人基于小世界模型,提出了一种Sybil攻击防御机制,亦即将sybil攻击团体的发现归结为最大流/最小割问题,引入虚拟节点并利用爬行器找到Sybil攻击团体,进而将其与P2P系统分开,从而减少Sybil攻击节点的数量,弱化sybil攻击的影响。
  4.2 基于P2P的Eclipse攻击防御研究
  目前,大多数针对Eclipse攻击的防御措施主要体现在攻击检测、攻击容忍和攻击限制3种方法上。
  a)恶意节点检测。Singh等人认为当拥有有限资源的恶意用户发动大范围的Eclipse攻击时,恶意节点的入度一般要高于网络中正常节点入度的平均值。基于这一事实,可以要求正常节点仅仅选择那些入度低于某一阈值的节点作为邻居节点,尽可能地限制恶意节点对正常节点的攻击。
  b)攻击容忍,主要包括路由冗余与路由重置。Hildrum和Kubiatowiczc211提出了一种通过在Pastry和Tapestry路由表中添加冗余表项的方法,来增加恶意节点占据路由表的难度,以减缓Eclipse攻击的危害。Castro等人提出了一种使用2个路由表进行路由的方法,一个路由表是优化路由表,另一个是验证路由表。通常情况下,节点优先使用路由效率相对较高的优化路由表进行路由,在路由检测失败的时候则依靠验证路由表通过安全冗余路由来重新进行路由。使用双路由表的方法由于优化路由表的毒化程度会不断加剧而具有一定的脆弱性,因此Condie等人提出了一种通过诱发网络抖动来防御Eclipse攻击的方法,即周期性地将优化路由表重置为验证路由表,而在大部分情况下使用优化路由表进行路由更新。
  c)攻击限制。Maecari等人提出一种通过外部验证服务来解决Eclipse攻击问题的方法,即通过使用验证服务来对节点D进行签名,防止攻击者随意选择生成自己的节点D并生成大量的节点,这样攻击者无法控制自己的节点在D空间中的位置,亦无法侵占目标节点路由表的特定位置,也就无法成功实施Eclipse攻击。Awerbuch和Scheidelerd提出不仅要对节点加入进行限制,还要对路由协议作出改进,要求网络中的所有消息都沿着特定的区域进行转发,以避免恶意节点产生的假消息在网络中传输。
  4.3 基于P2P的DDoS攻击防御研究
  基于P2P的DDoS攻击是一种应用层攻击,相对于网络层攻击而言,其更难于检测和防御。当前,针对基于P2P的DDoS攻击的防御技术主要包括基于验证的方法、基于成员管理的方法、基于信誉的方法和受害者端的方法。
  a)基于验证的防御方法是指P2P节点收到任何消息后,首先通过一定措施验证消息中包含的地址是否有效,验证成功后再使用该信息。E.Athanasopoulos等人在直接验证的基础上,提出了安全列表机制,并通过SEALING算法计算安全列表。其核心是将直接验证失败的IP地址加入安全列表,之后针对该地址的访问都被忽略。X Sun等人提出了直接验证和多点验证方法。直接验证是指节点获得节点C的信息后,直接发送消息到C,以验证C的存在以及其是否能够对请求作出响应;多点验证中节点并不直接发送消息到C,而是等到从其它m个节点中获得C的信息后再使用之。
  b)基于成员管理的防御方法是指改进P2P系统的通信架构,改变成员间的合作关系,从而防御其被用来进行DDoS攻击。Yunhao Liu等人分析了无结构P2P网络内部的泛洪DDoS攻击,并提出针对“坏”节点的检测和防御机制DDPOLICE,其基本思想是P2P网络的所有节点通过与其它r跳内邻居的协作来管理其直接邻居的查询行为,进而识别出可能的恶意节点。Daswani等人提出通过在极端节点层平衡查询流量来限制Gnutella的查询泛洪攻击。
  c)基于信誉的防御方法是指在P2P节点之间建立信誉机制,根据交互历史和预期,确定节点消息的可信度。JianLiang等人根据观察发现,攻击者会针对同一标题广播大量版本消息,并且每个攻击者容易使用相邻网段进行攻击,每个P2P节点自身维护本地信誉列表,忽略信誉值低的节点。另外,Yu Jie等人还提出可以将黑名单机制引入到信誉管理中。
  d)受害者端的防御方法是指通过在受害者端采取和部署特定的防御措施,过滤攻击报文,来减轻其被攻击的影响。Jie Yu等人将应用层上的DDoS攻击进行抽象建模,并提出了在受害者端建立攻防结合的防御机制DOW,其结合异常检测方法与代价方法,来降低攻击会话速率、攻击请求速率。Walfish等人提出了一种加速方法,该方法针对应用层DDoS攻击,以网络带宽作为代价,采用了以攻代守的策略,鼓励客户端发送更多请求。K Cheung Sia等人认为网络管理员清楚下游主机具体提供了哪些服务,提出了在受害者端的上游路由器进行包过滤的方法。S.Ranjan等人提出了由怀疑指派机制和DDoS弹回调度器组成的一种防御机制。
  结束语
  本文首先概述了P2P网络的基本概念与特点;然后重点介绍了目前对P2P网络安全威胁最大的3种攻击方法:Sybil攻击、Eclipse攻击和DDoS攻击;最后详细分析了针对这3种攻击的防御研究现状。
  从上述分析来看,P2P网络安全及其防御等各方面的技术尚未成熟,还存在许多问题亟待解决。同时,P2P应用作为Internet上最流行和成功的网络应用之一,正处于不断的完善和发展之中,新的P2P网络安全及防御问题将无法避免。