对抗P2P蠕虫的邻居选择机制
2012-07-19贾春福胡志超刘国友
刘 昕,贾春福,胡志超,刘国友,王 冬
(1. 中国石油大学(华东)计算机与通信工程学院,青岛266580;2. 南开大学计算机与信息安全系,天津300071;3. 南京大学计算机软件新技术国家重点实验室,南京210093)
目前 P2P系统已经广泛应用于文件共享、多媒体传输、分布式数据存储、分布式计算、实时通信及协同工作等领域,其中文件共享应用最多,与普通用户关系最为密切.无结构P2P网络KaZaA是非常流行的文件共享应用系统.
已经出现的一些利用 P2P系统的蠕虫有Gnuman[1]、W32.Benjamin.Worm[2]和 W32.Noobert[3]等.这些蠕虫都需要人的参与,因此威胁比较小.而利用 P2P网络中节点的邻居列表自动传播的蠕虫威胁则非常大.2005年,Zhou等[4]第 1次提出 P2P蠕虫的概念.他们认为P2P蠕虫是一种拓扑蠕虫,可以利用 P2P网络的拓扑结构自动传播,通过邻居列表获取下一个传播对象.拓扑蠕虫没有扫描过程且连接成功率很高,并且这种 P2P蠕虫的传播融于正常的 P2P通信中,基于异常的检测方式很难识别,因此这种蠕虫传播得非常快且难以控制.许多学者对P2P蠕虫传播进行了分析.夏春和等[5]建立了P2P 蠕虫在3种典型结构化对等网中的传播模型.Ramachandran等[6]对 Gnutella型分布式 P2P网络中恶意软件的传播进行了建模.
根据 P2P网络的拓扑性质,许多研究将其分割成多个子网围堵P2P蠕虫[7-8].无结构P2P网络节点的度数遵循幂律分布,即少量的节点拥有极大的连接数,这类骨干节点实质上支撑了 P2P网络的运行,其安全对整个网络影响很大.若 P2P蠕虫首先感染这些节点,则会快速地传播到周围节点,进而导致整个P2P网络瘫痪.已有研究利用节点在 P2P网络中的位置对抗P2P蠕虫的传播[9-10].
现有的系统软件和应用软件存在着各种漏洞,而且在补丁发布之后,很多用户仍然不愿意为系统和软件打上补丁,使得网络上的主机存在诸多安全隐患.这些漏洞对用户主机的影响也不尽相同.蠕虫利用的漏洞严重级别越高,造成的危害就越大.节点存在漏洞的数目和严重级别直接决定着该节点抵抗蠕虫的能力.以往的蠕虫围堵策略没有区分漏洞级别,考虑不同节点抵抗蠕虫能力的不同.笔者采用 2个邻居列表的机制[11],在区分漏洞级别的基础上定义节点间的距离,依据节点抵抗蠕虫的能力为其选择不同数量的邻居,使得无结构 P2P网络中节点的分布更加合理,提高了对 P2P蠕虫围堵的能力,并且将该机制应用于KaZaA网络中.
1 相关研究
对于 Internet蠕虫围堵,许多研究采用发布警告的方式,通知那些没有被蠕虫感染但有漏洞的节点,收到警告的节点在蠕虫到达之前生成过滤器防止被感染,或者安装补丁对节点免疫[4,8,12].这种发布警告的方式也可用于对P2P网络蠕虫的围堵.
在 P2P网络中,节点使用的操作系统和应用软件的多样性可以降低相同漏洞的感染几率[4].安装不同操作系统和应用软件的节点不容易受到同一个蠕虫的攻击,所以大部分蠕虫不能感染 P2P网络中所有的节点.一些研究者提出基于节点平台多样性的蠕虫围堵策略,这使得 P2P蠕虫很难利用邻居列表传播[13-15].
Di-jest是一个基于异质性的自动邻居选择方法,认为如果2个节点之间的差异较大,那么节点之间的距离就较大[13].Di-jest服务器利用了一个决策树集合,决策树是根据节点的系统配置和安装的应用软件产生的.该决策树可以确定一个节点受蠕虫攻击的几率.Di-jest服务器为每个节点推荐和它差异比较大的节点作为其邻居.该方法减小了 P2P蠕虫传播的速度和范围.但是这些推荐的邻居不能使得蠕虫隔离效果最好,而且该方法没有使用警告机制.
Zhu等[9]提出了一个在传播的早期阶段围堵手机蠕虫的对抗策略,通过对网络流量的分析提取出一个社会关系图,即手机蠕虫最可能传播路径的表示;通过2个不同的算法分割社会关系图,并选择一个最优移动电话集来优先打补丁,因为这些移动节点可能感染的节点数目最多.
罗卫敏等[10]认为优质节点拥有比其他节点更多的连接度数和更高的性能,基于混合型良性蠕虫概念设计出自动优先趋近优质节点的对抗策略(APTHQN策略),合理利用优质节点的拓扑优势对抗P2P蠕虫.
Fan等[16]提出了一种针对 P2P蠕虫传播的逻辑矩阵建模方法.他们发现在 P2P网络中网络特征对P2P蠕虫的攻击性能有影响.P2P蠕虫传播模型是用逻辑矩阵的差分方程描述的.本文采用这种方法对邻居选择机制进行建模,分析该机制的性能.
文献[11]提出了基于 P2P网络中节点之间的同质性和异质性的蠕虫围堵策略.在同质性和异质性的基础上构建了2个邻居列表,其中最大距离邻居列表的构建基于异质性,用来进行正常的通信.最小距离邻居列表的构建基于同质性,用于警告的传播.只在警告需要发送给其他节点时构建,警告发送完之后该邻居列表即被删除.
以上这些策略没有考虑蠕虫利用不同级别的漏洞对网络和主机造成危害程度不同的问题.为了解决这个问题,节点之间的距离根据漏洞的级别进行计算,可以更准确地反映节点与邻居之间抵抗蠕虫能力的差异,并根据节点抵抗蠕虫的能力选择合适的邻居来抑制蠕虫传播.
2 基于双邻居列表的蠕虫围堵机制
节点间的同质性表明节点之间具有同一漏洞的可能性比较大,节点易受同一蠕虫的攻击;异质性则相反.利用特定漏洞的蠕虫不能感染没有该漏洞的节点.文献[11]的蠕虫围堵机制是基于 P2P网络中节点之间的同质性和异质性的.2个节点间的差异越大,被同一蠕虫感染的几率就越低.如果一个被蠕虫感染的节点的邻居节点不存在该蠕虫利用的漏洞,那么该蠕虫无法通过这些邻居节点传播出去,也无法到达P2P中其他有漏洞的节点,从而限制了蠕虫在P2P网络中的传播.由于节点系统平台和软件的多样性,网络中某个节点检测到蠕虫攻击的可能性很大.当节点检测到蠕虫攻击,它会警告那些未被感染但具有可被该蠕虫利用的漏洞的节点.对抗该蠕虫的警告应该在蠕虫到达易感染节点之前发送给这些节点.蠕虫沿着最大距离路由传播,而警告沿着最小距离路由传播.
在 P2P网络中设置安全服务器用来存储P2P网络中的节点信息并为所有节点选择邻居.节点间进行正常通信时,一个节点向其最大距离的邻居节点发送信息.如果某个蠕虫利用邻居列表在P2P网络中感染其他节点,最大距离邻居的方法可以减缓其传播速度.
当某个节点检测到一个蠕虫,它能创建一个警告,然后向服务器请求最小距离邻居列表,把警告发送给这些邻居节点.对于已知漏洞和未知漏洞采用不同的邻居选择方法.已知蠕虫利用的是已知漏洞,相应的警告应当发送给那些具有这个漏洞的节点.它向服务器请求易感染已知蠕虫的邻居节点.检测到未知蠕虫的节点向服务器请求与之距离最小的邻居节点,这些邻居存在对应蠕虫所利用的漏洞的可能性比较大.
3 邻居选择机制
2009年 10月 18日,中国信息安全“国家漏洞库”正式投入运行[17],该漏洞库已经收录 4万多个漏洞.对于早期的很多漏洞,厂商都已经发布补丁,无法被蠕虫利用,因此根据漏洞发现的时间和重要程度选择部分漏洞存储到漏洞矩阵.漏洞编号采用标准CVE编号.
微软于 2002年 11月根据客户的反馈对漏洞等级评定系统进行了修订[18],目的是帮助客户根据具体环境决定应用哪些修补程序以避免危害,以及需要在多长时间之内采取行动.其漏洞等级的定义如表 1所示.
表1 Microsoft 安全响应中心安全公告严重等级评定Tab.1 Severity rating assessment in security bulletin ofmicrosoft security response center
根据统计,2009—2010年微软发布的补丁数如表 2所示.其中等级为严重的大约占总数的 46%,重要的大约占 44%,中等的大约占 10%.后面实验将以这个比例来布置各个等级的漏洞数目.
3.1 节点之间的距离
根据 2个节点之间不同的漏洞数以及这些漏洞的等级定义2个节点之间的距离.有些漏洞2个节点都不存在,这 2个节点无法被相应蠕虫感染,计算距离时也将这些漏洞计入总数.根据表 1,不同等级的漏洞设置不同的权值,等级越严重的漏洞权值越大.
表2 2009—2010年Microsoft发布的补丁数Tab.2 Numbers of patches published by Microsoft in2009—2010
P2P网络中各节点系统存在的近期漏洞被收集起来,形成一个漏洞列表.“1”表示节点存在某个漏洞,而“0”表示节点不能被利用该漏洞的蠕虫感染.服务器将这些逻辑数据存入一个漏洞矩阵,矩阵的每一行代表一个节点的漏洞情况,用行向量 Xi表示.元素 Xij=1表示第 i个节点存在第 j个漏洞.对任何2个行向量进行按位AND操作,然后计算结果向量中严重漏洞和重要漏洞以及中等漏洞中“0”的个数,分别用 c1、c2、c3表示,乘以相应的权值 w1、w2、w3(其中 w1> w2> w3),最后相加所得数值就是2个节点间的距离,即
根据式(1)计算,漏洞个数相同的情况下,一个节点与具有严重漏洞个数越少(对应行向量0的个数越多)的节点间的距离会越大.下面举例说明漏洞级别对距离的影响.假设系统中存在4个漏洞(前2个漏洞是严重级别,后 2个漏洞是重要级别),且节点A、B、C的漏洞向量分别是(1 1 1 0)、(1 1 0 0)和(1 0 1 0),节点A与B、C对应的向量分别AND操作之后结果分别为(1 1 0 0)和(1 0 1 0),则节点A与B、节点 A与 C间的距离分别为 DAB=2w2和 DAC=w1+w2,显然DAC>DAB.因此,节点 A的最大距离邻居节点首先选择节点C.这说明区分漏洞的等级进行距离计算,可以为一个节点优先选择存在等级比较低的漏洞的节点作为邻居,因此使得网络中节点分布更利于对蠕虫的围堵.
所有的距离都存储在服务器的一个距离矩阵中,服务器利用距离矩阵为 P2P中的每个节点选择邻居.
3.2 最大距离邻居列表
节点之间的距离表示 2个节点抵抗蠕虫能力的差异性.2个节点之间的距离大说明它们之间相同的漏洞比较少.一个蠕虫利用的特定漏洞在一个节点上存在,在另一个与它距离大的节点上存在的可能性会比较小.为一个节点选择距离最大的节点作为其邻居时,若该节点被一个蠕虫感染,该蠕虫传播出去的可能性会比较小.邻居节点的个数根据这个节点的漏洞情况来确定.若节点的漏洞个数比较少,为其选择的邻居个数就多一些,反之,则少一些,这样蠕虫抵抗能力强的节点的度就会高一些.因为漏洞个数多的节点更容易受到蠕虫的感染,若该节点感染了蠕虫,限制其连接的节点数目,蠕虫传播出去的可能性就会降低.
每个节点维护最大距离邻居列表作为它的邻居列表.在与其他节点正常通信时,如搜索数据对象或者传送文件,节点使用最大距离邻居列表.而拓扑蠕虫也正是利用该邻居列表进行传播.
3.3 最小距离邻居列表
2个节点间的距离小说明它们之间平台和软件的相似程度比较高,抵抗同一个蠕虫的能力相似,而且抵抗能力低.根据距离的计算方法,一个节点与有严重漏洞数目比较多的节点的距离会比它与其他节点的距离更小.一个蠕虫利用的漏洞在一个节点上存在,在另一个与它距离小的节点上存在的可能性会比较大,且这个节点的漏洞数目比较多,所以警告必须首先被发送到这些具有最小距离的节点.
对于未知蠕虫,选取那些与该节点有最小距离的节点作为邻居,有利于警告的快速传播.对于已知蠕虫,直接选择那些有该蠕虫利用的漏洞的节点作为警告传播的邻居节点.这些邻居列表如果被恶意代码利用,会加速恶意代码的传播,因此需要将其加密,并且在邻居节点收到警告后,最小距离邻居列表应当立即被删除.当这个节点想要发送另一个警告时,重新向服务器发送请求,服务器将为其生成另一个最小距离邻居列表.最小距离邻居列表不用于正常信息的传送,不会长期存放在一个节点上,只是暂时驻留一段时间.
3.4 邻居选择机制在KaZaA中的应用
KaZaA基于FastTrack协议,是非常流行的无结构双层 P2P网络,上层由超节点组成,下层由普通节点组成.每天在线用户超过 300万节点,超节点数平均在25,000~40,000之间,而超节点之间的连接是松散的,采用无结构的连接方式.每个超节点平均与覆盖网中 40~60个超节点建立连接,每个超节点平均连接 60~150个普通节点[19].上层网络是骨干网络,本文中邻居选择机制只部署在上层网络,为超节点选择上层网络中的邻居节点,下层普通邻居节点不变.
在 KaZaA网络中,设置安全服务器用来存储漏洞矩阵、距离矩阵、漏洞数向量和每个超节点的信息.漏洞矩阵中的每一个元素是 1位的逻辑值,代表一个超节点是否可以被某个蠕虫感染.距离矩阵存储每个超节点与其他超节点之间的距离,通过漏洞矩阵能够计算得出距离矩阵.服务器计算每个节点的漏洞数并放入漏洞数向量,一个节点的漏洞数表明一个节点系统的安全程度.
每个超节点安装一个客户端漏洞扫描工具,并且可以和安全服务器进行通信.一个超节点扫描本地的漏洞,并把是否存在这些漏洞的信息放入一个逻辑向量中,用 Vi表示.然后该节点将信息上传给服务器.服务器将该逻辑向量存储到漏洞矩阵中.利用这个矩阵,服务器计算每个行向量上“1”的总数作为每个节点的漏洞数,并存储在漏洞数向量中.服务器对漏洞矩阵中任意2个行向量AND操作之后,根据式(1)计算节点之间的距离,将这个距离放入距离矩阵.
一个超节点初始加入 KaZaA网络,向安全服务器请求邻居列表,安全服务器根据该节点上存在的漏洞数和漏洞级别,为其选择不同数目的邻居.参考原始KaZaA网络中节点的分布规律和节点数目以及模拟实验中的数据,从漏洞数向量中选择100个数值最小的节点作为安全程度最高的节点,为它们选择 60个最大距离邻居节点.再选择 100个漏洞数最大的节点,为其选择 40个邻居,其他节点选择 50个邻居.保持 KaZaA中超节点正常的平均连接数,可以在提高安全性的同时维持网络的文件查询性能.如果距离最大的几个值对应的节点数多于要求的邻居节点个数,服务器会比较这些节点之间的漏洞数量,并选择漏洞数目最少的节点作为最大距离邻居.
因为 KaZaA网络是动态的,在安全服务器上新加入节点的信息应当及时添加,离开节点的信息应当及时删除,漏洞矩阵和距离矩阵随之更新.服务器定期向每个超节点发送为其选择的邻居,更新超节点的邻居列表,使得每个节点可以和可用的节点通信.
当一个超节点检测到一个蠕虫尝试感染该节点,它会产生一个警告.如果该蠕虫利用的是未知漏洞,该节点向服务器请求最小距离的邻居.如果漏洞是已知的,该节点将向服务器请求有该漏洞的节点作为邻居.服务器收到请求后,首先验证请求的合法性,这是为了避免恶意伪造的请求.如果请求合法,服务器返回加密过的最小距离节点列表给请求节点.然后警告由该节点发送到其最小距离邻居节点,收到警告的节点采取一些措施来对抗蠕虫.对于已知漏洞,该节点会下载安装相应的补丁.对于未知漏洞,节点根据警告中携带的关于蠕虫的信息来阻止感染.随后它们向服务器请求最小距离邻居,继续分发警告.如果一个节点以前收到过警告,不会再请求最小距离邻居.最终警告传播停止.
通常情况下,最大距离邻居列表存储在节点中.如果蠕虫试图攻击 KaZaA网络中的超节点,它会选择邻居列表中的节点进行下一步感染.其超节点邻居大多数都没有该蠕虫利用的漏洞,不能被感染,这使得蠕虫很难继续在上层网络中传播.如果某个超节点发现了这个蠕虫,该节点产生警告并发送给其他最小距离的节点,使这些最有可能具有这个漏洞的节点对该蠕虫免疫.这种策略可以抑制 P2P蠕虫在KaZaA上层网络中的传播,提高主干网络的安全性.
4 系统评估
4.1 技术性能分析
为了抵抗蠕虫形成安全 P2P系统,通过为节点选择合适的邻居实现对 P2P蠕虫的围堵.在蠕虫围堵系统中有 3个关键参数:反应时间、围堵策略和部署方案[20].
围堵系统的反应时间包括必要的恶意行为检测时间、信息传播到系统中所有主机需要的时间、主机收到信息后激活围堵策略所需要的时间.本文系统仍然采用双邻居列表,最大距离邻居列表用来减缓蠕虫传播的速度,减少感染的节点数,不需要检测时间和激活时间;最小距离邻居列表用来分发相应的警告给易受感染的节点,这使得警告比蠕虫先到达节点.所以系统的全部反应时间比蠕虫到达所有节点的时间短.
围堵策略是指用于隔离蠕虫和易感染主机的技术.本文策略为易感染某蠕虫的节点选择不容易被该蠕虫感染的邻居来隔离该蠕虫.由于一个节点和它的最大距离邻居节点之间具有异质性,若该节点被蠕虫感染,其邻居节点具有较强的对该蠕虫的抵抗能力,使得该节点上的蠕虫无法通过该节点的邻居节点来传播,因而蠕虫无法到达那些有漏洞的主机.这种邻居选择机制能够成功地将蠕虫与易感染主机隔离.
每个节点根据其漏洞情况连接不同数目的邻居,使得 P2P网络中节点分布非常合理.每个节点与和它具有异质性的节点通信,起到抑制蠕虫传播的作用;每个易感染节点向有相同漏洞的邻居分发警告.P2P网络中的每个节点都能够参与蠕虫的围堵,这是非常理想的部署方案.
警告分发没有采用洪泛技术,因为洪泛时应用最大距离邻居列表,一个节点与其邻居节点存在相同漏洞的可能性比较小,所以警告难以快速到达有漏洞的节点.最大距离邻居可能减缓警告的分发速度,并且洪泛技术会占用大量的带宽.因此,采用最小距离邻居的警告分发机制,蠕虫可以被自动控制,而不会明显加大正常流量.
选择最大距离的节点作为邻居,改变了 P2P覆盖网络的拓扑结构,使得 P2P网络难以达到拓扑一致性.
4.2 传播模型
根据文献[16]中的定义,一个包含 m个节点的P2P覆盖网络的拓扑结构可以用一个 m×m的方阵T表示,它的元素 tij(在第 i行和第 j列)表示是否存在一个从节点i到节点j的直接连接.状态矩阵S是一个n×m矩阵(n为漏洞个数),它的元素 sij(在第 i行和第j列)表示节点j是否已经被蠕虫i感染.漏洞矩阵 V是一个 n×m矩阵,它的元素 vij(在第 i行和第j列)表示节点j是否存在第i个漏洞.
式中 Sg+1代表状态逻辑矩阵 Sg的下一个状态矩阵,即第g+1个状态,表示经过 g+1步后,每个节点是否被蠕虫感染.
结果C=SgT是一个n×m矩阵,P=CV是一个元素与元素相乘的结果矩阵,即它的元素 pij是 2个逻辑矩阵对应元素cij与vij进行逻辑与操作的结果.
下面是一个简单的例子,假设 P2P网络中有 8个节点和4个蠕虫.
漏洞矩阵 V的元素是预先给定的.T1表示消息沿着最小距离邻居传播时的拓扑矩阵.T1′表示消息沿着最大距离邻居传播时的拓扑矩阵.S1和 S2分别是沿着最小距离邻居列表和最大距离邻居列表传播的下一个状态矩阵.蠕虫传播一步后,S1中节点被 4个蠕虫感染的总数是13个,在S2中是1个.说明采用最大距离邻居列表时蠕虫传播非常缓慢.没有区分漏洞严重级别的情况,相应的结果是12和7[11],这说明区分漏洞级别以后效果更加明显.
下一步的状态矩阵可以通过式(2)获得.如果P2P网络中节点数足够大,节点之间的差异性更大,邻居选择机制的效果会更加明显.
T1′的拓扑如图1所示.图1中忽略了服务器,因为服务器不传递正常通信的信息.如果一个节点本身拥有的漏洞数不小于3(如图 1中的节点3、6、7),那么为其选择 2个邻居.为节点 3选择 2个邻居节点2和4.如果1个节点拥有的漏洞数等于2(如图1中的节点 1、2),那么为其选择 3个邻居.剩余的节点选择 5个邻居(如图 1中节点的 4、5、8).节点 3、6、7容易被蠕虫感染,其连接的邻居数较少,蠕虫传播出去的可能性也比较小.
图1 采用最大距离邻居列表的P2P覆盖网拓扑结构Fig.1 P2P overlay network topology based on the largest neighbor list
4.3 模拟实验
模拟实验基于以下假设:
(1) 一个被蠕虫感染的节点会将蠕虫传播给它在覆盖网中的所有邻居;
(2) 邻居节点一旦从被感染的节点收到带有蠕虫的信息即被感染,当且仅当邻居节点是有漏洞且没有被感染过;
(3) 一个被蠕虫感染的节点如果再次收到一个带有蠕虫的包,它的状态不变;
(4) 不存在蠕虫所利用漏洞的节点将不会被感染.
仿真实验中采用模拟软件 peersim1.0.5.设置初始节点数目为10,000,漏洞数目为50个.每个元素的逻辑值是以0.5的概率随机初始化为0或者1.
实验考虑了4种情况:不采用邻居选择机制即随机生成覆盖网络、APTHQN策略、只应用最大距离邻居列表形成覆盖网络、应用双邻居列表策略形成覆盖网络.对于后 2种情况,区分节点抵抗蠕虫能力基础上的策略与以前的策略进行对比.每种情况只考虑严重和重要2个级别的漏洞,因为中等及以下级别的漏洞,基本不具备蠕虫传播的条件.
表3显示了在P2P网络中有10,000个节点、50个漏洞的情况下,蠕虫利用一个级别为严重的漏洞,从一个节点开始每一步感染的节点数目.
情况 1 漏洞矩阵以概率 0.5随机生成,存在这个漏洞的节点有5,027个.对于一个用peersim随机构造的 P2P网络,感染节点数达到了 4,923,其中有漏洞的节点大部分都被感染了.另外有一部分没有被感染,这是因为 P2P网络中节点平台的多样性使得蠕虫没有到达某些有漏洞的节点.
情况 2 采用文献[10]的方法,P2P蠕虫感染数目增长很快,网络中接近一半节点被感染,然后由良性蠕虫最后将它们全部清除了.
情况 3 采用文献[11]的方法,不区分漏洞的级别,为每个节点选择 7个邻居节点,被感染的节点数在采用最大距离邻居列表和双邻居列表时分别为896和360.
表3 利用严重漏洞每一步感染的节点数目Tab.3 Numbers of infected peers in each step when worm exploiting critical vulnerability
情况 4 根据节点漏洞情况为每个节点选择不同数目的邻居.根据多组实验结果进行如下设置:如果一个节点存在 35个及以上的漏洞,其安全程度较低,则为其选择 5个邻居;若节点有 16个以下的漏洞,说明其安全程度较高,则为其选择 10个邻居;其他节点选 7个邻居.被感染的节点数在采用最大距离邻居列表和双邻居列表时分别是 14和 8,相比文献[11]的方法,相同条件下感染的节点数有明显减少.采用双邻居列表机制,区分漏洞级别的选择机制比文献[11]的方法减少了97.78%.
图2显示了6种情况下的传播情况,被感染的节点总数随着步数的增加而增加.随机网络中被感染的节点数目的增长速度很快,说明蠕虫在某个时刻集中爆发.采用 APTHQN策略最终良性蠕虫将恶性蠕虫全部清除掉了,但是没有改变蠕虫集中爆发的情况.最大距离邻居列表和双邻居列表方案的曲线上升较慢并且较平缓,区分漏洞等级之后的曲线最平稳,感染的节点总数最少,能够有效地阻止蠕虫在P2P网络中爆发.利用网络中节点的位置保护有漏洞的节点,通过改变拓扑结构增强 P2P网络抵抗蠕虫的能力.
图2 6种情况下的传播情况Fig.2 Worm propagation in 6 cases
表4显示了不同情况下感染节点的减少率.应用区分漏洞级别的邻居选择方法,比文献[11]中的方法感染节点的减少率明显提高.
表4 感染节点的减少率Tab.4 Reduction rates of infected peers%
改变蠕虫开始传播的个数为1、3、10,图3显示了3种情况下每步蠕虫感染节点的总数,表明在 10,000个节点的P2P网络中,即使蠕虫从10个感染节点同时开始传播,这个蠕虫的传播也能被较好地控制.
图3 改变蠕虫开始传播的节点个数的传播情况Fig.3 Worm propagation when varing number of beginning peers
图4 表明改变具有某个漏洞的节点比例时,本文中策略所产生的效果.在具有这个漏洞的节点数达到网络中总节点数的90%,即网络中大部分节点都具有这个漏洞时,利用该漏洞的蠕虫感染的节点比较多,但是也能被很好地控制.由于每个节点选择的邻居节点数不同,改变蠕虫初始感染的节点分别是具有16、25和36个漏洞的节点,感染的节点数目如图 5所示.显然,初始感染节点是漏洞数最多的节点时,整个网络中被感染的节点数最少.这说明在蠕虫抵抗能力低的节点上的蠕虫在 P2P中更难以传播.区分漏洞级别的邻居选择机制最大程度上利用了网络中节点抵抗蠕虫的不同能力来抑制蠕虫的传播.
图4 改变某个漏洞的节点比例的传播情况Fig.4 Worm propagation when varing vulnerability rate
图5 改变初始感染节点的传播情况Fig.5 Worm propagation when varing initial infected peers
5 结 语
不同安全程度的节点在 P2P网络中作用不同,节点之间的距离在区分漏洞级别的基础上重新定义,根据节点抵抗蠕虫的能力为其选择邻居,形成2个邻居列表进行蠕虫围堵,使得 P2P网络中节点的分布更加合理,有效地抑制P2P蠕虫的传播.实验结果表明,采用双邻居列表蠕虫围堵策略时,根据节点抵抗蠕虫的能力选择邻居节点,蠕虫感染的节点数比普通P2P网络中感染的节点数减少了 99.8%,比文献[11]中方法减少了 97.78%,而采用 Di-jest蠕虫感染的节点数比普通 P2P网络中感染的节点数最多减少80%[13],采用 APTHQN 策略没有改变蠕虫集中爆发的情况.改变初始感染节点数和有漏洞节点在系统中的比例,采用该邻居选择机制仍然能够很好地控制蠕虫的传播;在安全程度低的节点上的蠕虫在 P2P中更难以传播.
,
[1] Symantec. W32 Gnuman Worm[EB/OL]. http://www.symantec. com/security_response/writeup. jsp?docid=2001-022710-3046-99,2007-02-13.
[2] Symantec. W32 Benjamin Worm[EB/OL]. http://www.symantec. com/security_response/writeup. jsp?docid=2002-052016-0139-99,2007-02-13.
[3] Symantec. 通过电驴传播的感染型蠕虫病毒:W32 Noobert[EB/OL]. http://www. symantec. com/connect/blogs/ w32noobert,2010-01-18.Symantec. An Infecting Worm Which Propagates Via the EMule File-Sharing Network:W32. Noobert[EB/OL].http://www. symantec. com/connect/blogs/ w32noobert,2010-01-18(in Chinese).
[4] Zhou Lidong,Zhang Lintao,McSherry F,et al. A first look at peer-to-peer worms:Threats and devenses [C] //Proceedings of the IPTPS. Ithaca,New York,USA,2005:24-25.
[5] 夏春和,石昀平,李肖坚. 结构化对等网中的 P2P 蠕虫传播模型研究[J]. 计算机学报,2006,29(6):952-959.Xia Chunhe,Shi Yunping,Li Xiaojian. Research on epidemic models of P2P worm in structured peer-to-peer networks[J]. Chinese Journal of Computers,2006,29(6):952-959(in Chinese).
[6] Ramachandran K, Sikdar B. Modeling malware propagation in Gnutella type peer-to-peer networks[C]//The 3rd International Workshop on Hot Topics in Peer-to-Peer Systems(Hot-P2P). Rhodes Island,Greece,2006:447-454.
[7] Xie Liang,Zhu Sencun. A feasibility study on defending against ultra-fast topological worms[C]//Proceedings of the 7th IEEE International Conference on Peer-to-Peer Computing(P2P '07). Galway,Ireland,2007:61-68.
[8] Filipe F,Edgar M,Rodrigo R,et al. Verme:Worm containment in overlay networks [C] // IEEE/IFIP International Conference on Dependable Systems and Networks(DSN). Estoril Lisbon,Portugal,2009:155-164.
[9] Zhu Zhichao,Cao Guohong,Zhu Sencun,et al. A social network based patching scheme for worm containment in cellular networks [C] // IEEE INFOCOM 2009 Proceedings. Rio de Janeiro,Brazil,2009:1476-1484.
[10] 罗卫敏,刘井波,范成瑜. 基于良性蠕虫对抗 P2P 蠕虫的策略研究[J]. 计算机应用研究,2009,26(12):4764-4767.Luo Weimin,Liu Jingbo,Fan Chengyu. Research of policy defending against P2P worm based on benign worm[J]. Application Research of Computers,2009,26(12):4764-4767(in Chinese).
[11] Jia Chunfu,Liu Xin,Liu Guoyou,et al. Worm containment based on double-neighbor lists in P2P overlay networks[C]// Proceedings of 2010 IEEE International Conference on Information Theory and Information Security(ICITIS 2010). Beijing,China,2010:558-562.
[12] Yang Sirui,Jin Hai,Li Bo,et al. Worm containment in peer-to-peer networks [C] // Proceedings of the 2009 International Conference on Scalable Computing and Communications,Eighth International Conference on Embedded Computing. Dalian,China,2009:208-313.
[13] McIlwraith D,Paquier M,Kotsovinos E. Di-jest:AutonomicnNeighbour management for worm resilience in P2P systems[C] // Proceedings of IEEE Inernational Symposium on a World of Wireless,Mobile and Multimedia Networks. Newport Beach,USA,2008:1-6.
[14] Weaver N,Paxson V,Staniford S,et al. A taxonomy of computer worms [C] // Proceedings of WORM '03.Washington,USA,2003:11-18.
[15] Moore D,Shannon C,Brown J. Code red:A case study on the spread and victims of an internet worm [C]//ACM/USENIX IMW. Marseille,France,2002:273-284.
[16] Fan Xiang,Xiang Yang. Propagation modeling of peerto-peer worms [C]// 24th IEEE International Conference on Advanced Information Networking and Applications(AINA). Perth,Australia,2010:1128-1135.
[17] 中国信息安全评测中心. 中国国家信息安全漏洞库[EB/OL]. http://www. cnnvd. org. cn/vulnerability,2011.China Information Technology Security Evaluation Center. China National Vulnerability Database of Information Security [EB/OL]. http:// www. cnnvd.org. cn/vulnerability,2011(in Chinese).
[18] Microsoft. Microsoft 安全响应中心安全公告严重等级评定系统 [EB/OL]. http://www. microsoft. com/china/technet/ security/bulletin/rating. mspx,2002-11.Microsoft. Microsoft Security Response Center Security Bulletin Severity Rating Assessment[EB/OL]. http://www. microsoft. com/china/technet/security/bulletin/rating. mspx,2002-11(in Chinese).
[19] Liang Jian,Kumar R,Ross K W. The KaZaA overlay:A measurement study[J]. Computer Networks Journal,2005,50(6):842-858.
[20] Arce I,Levy E. An analysis of the slapper worm[J].IEEE Security and Privacy,2003,1(1):82-87.