APP下载

基于节点行为的主动P2P 蠕虫检测

2013-02-22李伟华史豪斌

计算机工程与应用 2013年7期
关键词:误报蠕虫节点

朱 晖,李伟华,史豪斌

西北工业大学 计算机学院,西安710129

随着P2P 技术的发展和基于P2P 应用的日渐增多,P2P流量已经占据互联网流量的70%,网络蠕虫找到了一种新的传播途径,得以相较于以往的传统网络蠕虫更为快速和隐蔽地传播。Zhou等[1]正式提出P2P 蠕虫为通过发掘漏洞,利用P2P 网络拓扑及其性质进行自主扩散的蠕虫。并且指出,利用P2P 网络拓扑进行传播的P2P 蠕虫免去了在网络上大规模随机扫描的过程,因此攻击流量能够方便地隐藏于P2P 流量中,使得传播更加隐蔽,攻击更加精确和高效,目前绝大多数针对扫描型蠕虫的防御机制都难以有效控制这种新型蠕虫。由于P2P 协议着重于性能,而相对忽视了对P2P 网络的管理,以及P2P 软件的多样性,所以协议或者软件的安全漏洞难以避免。一旦有漏洞被别有用心的黑客利用,数千万的P2P 用户主机安全将受到严重威胁,因此针对P2P 蠕虫传播检测和遏制的研究迫在眉睫。

1 相关研究

1.1 P2P 蠕虫分类

按照传播方式P2P 蠕虫一般分为三类[2]:主动型P2P 蠕虫(Proactive P2P Worm)、反应型P2P 蠕虫(Reactive P2P Worm)和被动型P2P 蠕虫(Passive P2P Worm)。主动型和反应型P2P 蠕虫都是利用P2P 协议或者P2P 客户端的漏洞主动攻击对等机的方式进行传播。两者的区别在于:主动型P2P 蠕虫会通过P2P 协议主动获取大量的节点信息表,并主动攻击这些节点;而反应型P2P蠕虫当且仅当受感染主机与对等机有正常连接时候才进行传播,这样蠕虫流量隐藏于正常的P2P 数据流中,隐蔽性较好,但是传播速度比主动型P2P 蠕虫稍慢。被动型P2P 蠕虫将自己伪装成当前流行的资源,诱使用户下载并执行,与传统的蠕虫传播方式有较大的区别,更类似于一种社会工程学攻击。其传播依赖于用户主动下载,所以传播速度相对上两种蠕虫最慢,也没有任何异常的网络流量,最难在其传播阶段被检测到。

1.2 蠕虫传播模型

理想的蠕虫传播模型可以为监控蠕虫传播,进而限制、消灭蠕虫提供一个有力的参考。在长期的研究中发现,网络蠕虫的扩散与生物学病毒的扩散有许多相似之处,由于对后者的研究相对成熟,所以很多网络蠕虫传播模型借鉴于生物学传播模型,如SI(Susceptible-Infection)模 型、SIS(Susceptible-Infection-Susceptible)[3]模 型、SIR(Susceptible-Infection-Removed)模型、双因素(Two Factor)模型[4]等等。

以上蠕虫传播模型主要适用于Internet 上的普通蠕虫传播。对于P2P 网络上的蠕虫传播有人基于双因素模型并结合P2P 网络的特性,提出了四因素(Four Factor)[5]模型,总结了影响主动P2P 蠕虫传播的4 个因素:首先是用户和ISP 采取的蠕虫对抗措施;其次是P2P 网络拓扑结构;再次是网络中节点配置的差异程度;最后是攻防策略。

1.3 现有的P2P 蠕虫检测方法

基于蠕虫特征码的检测技术是根据蠕虫在传播时发出大量相似报文,将这些相似的数据作为特征码。

基于用户正常网络行为的分析[6]是通过对用户网络行为的学习建立用户的习惯列表,将未知的通信行为作为蠕虫传播的依据。

基于连接变化点的检测方法CCD(Connection Changepoint based Detection)[7]通过监测P2P 节点的入站或者出站连接数,认为突然的连接数变化可能代表着潜在的蠕虫活动。

纵观以上这些方法,发现基于特征码的检测技术对已知并提取特征码的蠕虫传播的检测比较有效,对于未知的蠕虫无能为力。基于用户正常网络行为的分析检测方法,因为用户网络行为具有不确定性,所以此方法误报率较高。CCD 检测方法只检测节点的入站和出站连接,对节点行为的刻画稍显粗略,导致难以在检测率和检测速度以及漏检率上同时达到相对优秀的结果。而且CCD 检测对整个网络的全局连接进行统计,检测时计算压力完全由几个主要的服务器或者网络上的路由器负担,与P2P 网络分散式的处理信息管理网络的初衷相背。由此在以上分析的基础上,提出一种基于节点行为的主动P2P 蠕虫检测方法。

2 基于节点行为的主动P2P 蠕虫检测方法PBD

2.1 节点行为分析

主动P2P 蠕虫不需要大规模的扫描网络,仅利用P2P网络即可向邻居节点实施攻击,目标是用最快的传播速度感染所有的易感节点。所以它必然需要采取积极、贪婪的传播算法,即首先在尝试感染完邻居节点之余,进一步扩充P2P 路由表信息,只有这样最大化地利用被感染的节点的计算能力和网络资源,主动P2P 蠕虫才能更快速地传播。因此,被感染的节点会向网络中发送大量的资源搜索和联系人查找信息,以获取更多的P2P 节点信息,并实施攻击。

主动P2P 蠕虫在获取到大量P2P 网络节点信息并实施攻击时,必然会导致出站连接的增加。而且这种连接与正常的资源请求连接不同,攻击节点只需要与被攻击节点建立短暂的连接,随着攻击的结束即断开与目的节点的持续连接,即可完成一次攻击尝试。这种大量、短暂的出站连接是主动P2P 蠕虫进行传播的典型特征。

为了后面表述方便,现在对长连接以及短连接进行定义。

定义1(长连接LTL(Long-Time Link))P2P 网络中两节点之间,为了完成P2P 网络预订任务(如资源传输、任务分配等),所建立的长时间的连接。

定义2(短连接STL(Short-Time Link))除了LTL 以外的,P2P 网络中两节点之间的所有信息传输动作(包括未真正建立连接的协议)。其中又分为短出站连接STOL(Short-Time Outbound Link)和短入站连接STIL(Short-Time Inbound Link)。

基于以上分析,提出一种基于节点行为的主动P2P 蠕虫检测方法PBD。上文分析的资源搜索信息、联系人查找信息和攻击流量都属于STOL,所以通过检测STOL 的数量变化可以发现P2P 蠕虫的传播。对于STOL 数量变化问题,可以应用连续检测问题的解决方法予以解决。连续监测问题是对于连续的观测量,如果有一个变化发生后要尽快地把这种变化检测出来。由于P2P 网络中节点数量庞大,所以采用平均运行长度相对较短的CUSUM 算法[8],检测主动P2P 蠕虫的传播。

在对P2P 软件的正常使用过程中,节点加入P2P 网络、资源搜索、资源发布和联系人查找请求所产生的连接都可以归于STOL。通过对P2P 协议的分析,可知节点加入P2P网络和资源发布为P2P 软件自动或者长周期性地进行,只会小规模产生STOL,正常情况下下一次产生此类信息与上一次没有任何关联,所以不可能通过积累而产生误报。资源搜索和联系人查找请求是由用户搜索或者开始下载资源所产生的,在用户正常的使用情况下,也不会大量持续产生STOL,在之后的参数选择中通过合理设置参数,也不会产生误报。

2.2 检测算法

首先,将时间划分为长度相同的离散观测窗口,表示为Δn ,n=1,2,…在第n 个观测窗口观测到的整个P2P 网络上的短出站连接STOL 数量表示为一个随机序列C={cn}n∈N。希望在E(C)变化的时刻,通过检测随机序列C的CUSUM 统计量得知这个变化,从而确定主动P2P 蠕虫的传播。

令x1,x2,…,xθ为独立同分布N(0,1)变量,而xθ+1,xθ+2,…为独立同分布N(δ,1)变量,其中变点θ位置,对一列给定观测值xθ+1,xθ+2,…,xn,备择假设θ=ν(ν<n)对原假设θ=∞(无变点)的对数似然比统计量为:

因为,目标是检测出P2P 节点短连接的异常增大,即已知是单向检测问题,δ>0,则对上述对数似然比统计量等价于下述统计量:

经过变换可以得到Zn的递推公式[8]:

由于未知P2P 蠕虫的攻击强度、传播能力是未知的,而且P2P 网络也处于发展和变化之中,所以难以事先知道δ的取值。可以采用一个不定参数k 代替δ/2,从而得到更一般的CUSUM 统计量:

假设事先选定一个门限值h(h>0),如果Zi≤h ,i=1,2,…,n,说明在到时刻n 为止的过程中没有证据显示P2P节点STOL 数量异常增多,检测继续。若Zi≤h(i=1,2,…,n-1),且Zn>h,则表示检测到P2P 节点STOL 数量异常增多,可能该节点已经被P2P 蠕虫感染,并且正在向外界传播蠕虫。记τn为检测到主动P2P 蠕虫的运行时间:

2.3 参数选择

主动P2P 蠕虫攻击检测系统有三个关键的指标:第一个是误报率;第二个是漏报率;第三个是检测时间。这三者是相互矛盾的,不可能使三个指标同时达到最优,所以参数的选择必须有所取舍。

CUSUM统计式(3)由两个参数(h,k)决定,其中h称为门限值(Decision Boundary),k称为信念值(Reference Value)。选择的标准是用平均运行长度ARL,在ARL0满足设定要求的条件下选择使ARL1尽可能小的(h,k)对。这里ARL0=E(τn|网络处于受控状态),ARL1=E(τn|网络开始就处于蠕虫传播状态),其中τn如式(4)所定义,为检测到攻击的时间。

首先,定义攻击反应时间ρ如下:

其中τs为攻击开始的时间。

对于参数k的选择,Hawkins[9]研究指出,若要求CUSUM在受控状态下的ARL0满足一定的条件下而在某个δ处的ARL1达到最小,则应取k=E(C)+δ/2,但是实际难以真正准确知道某个主动P2P 蠕虫的传播对P2P 网络的影响。若δ和k取值过小,则会导致过高的误报率。因为P2P蠕虫若不能在初期广泛快速传播,使得用户有足够的时间来应对,其难以对整个P2P 网络造成大的破坏,所以一定的低速P2P蠕虫的漏报是可以容许的。综上所述,参数k 应该在ARL0满足设定要求前提下,尽可能取值小一些,以期尽可能检测出更多的主动P2P 蠕虫活动。

在实验中发现对于所有的节点设定相同的k 难以获得满意的结果。因为P2P 节点的网络条件具有很大的差别,所以传播蠕虫的能力也有很大的差异性,导致传播蠕虫时偏移量δ也各不相同。根据不同的网络条件和不同的邻居节点数量的节点设置不同的偏移量,能更好地检测到主动P2P 蠕虫的传播。

同时参数k 是由于蠕虫传播,导致E(C)向上偏移所得,可以记k为:

其中α为一个正数,称为偏移率。

由于蠕虫传播所导致的均值偏移预期为δ,所以cn=E(C)+δ。

可以得知在蠕虫的传播阶段,Zn-Zn-1即每轮检测CUSUM 统计量的增量为αE(C)。门限值h 从逻辑上可以理解为是由每轮的CUSUM 统计量增量经过攻击反应时间ρ所累积出的,因此门限值h 可以记为:

当攻击反应时间ρ设定得小的时候,可能导致过高的误判率;反之将攻击反应时间设定过大又需要很长的时间才能检测到蠕虫的传播。

最后,E(C)可以由实验预先得知,并根据观测到的结果实时进行修正。主动P2P 蠕虫可能降低传播速度,以躲避系统的检测,但是系统观测到的E(C)将不可避免地高于传播前的状态,所以E(C)的提高也可以作为一个系统检测主动P2P蠕虫的辅助因素。对于传播速度较慢的P2P蠕虫,也可以通过检测E(C)的变化而得知。

3 主动P2P 蠕虫检测系统PPWDS

P2P 网络由不同的信息处理能力、贡献率和网络带宽的节点组成,将信息处理能力强、贡献率高以及网络带宽大的节点称为超级节点。超级节点不仅是P2P 网络正常运转的基础,在受到主动P2P 蠕虫攻击时,它们的安全也是能否遏制主动P2P 蠕虫快速传播的关键。因此,为了既能充分利用超级节点的处理能力,又能重点保护超级节点的安全,提出了PPWDS。

3.1 PPWDS 系统结构

图1 主动P2P 蠕虫检测系统

如图1 所示,PPWDS 分为两层:(1)基本P2P 层BPL(Base P2P Layer),即设计要保护的P2P 层。本层的节点根据二元组(IP,Port)对每个节点进行编号,而且系统将阻止相同的IP 地址以不同的端口号加入网络,这样每个节点都可以得到一个惟一的编号。(2)上层P2P 层TPL(Top P2P Layer),是由底层P2P 网络超级节点组成的新的结构化P2P网络,组织方法可以采用Pastry、CAN、Chord 等。BPL 节点根据自身在BPL 的位置,从属于多个附近的超级节点,即TPL 节点,这样不仅可以抵抗TPL 节点正常或者不正常的离线,还能防止某一个TPL 节点被蠕虫感染,伪造以及隐匿整个下层网络的信息。

3.2 PPWDS 处理流程

PPWDS 对流量数据的处理分为以下4 步:

(1)BPL 节点收集自身节点的网络信息,包括节点自身的长连接和短入站连接、短出站连接的连接对象编号和连接数量等。

(2)BPL 节点将收集的节点信息直接或者通过其他节点上传给上级的TPL 节点。TPL 节点根据得到的信息执行检测算法,检测是否有节点正在传播主动P2P 蠕虫。

(3)TPL 节点收到BPL 节点信息并执行检测后,首先将信息共享到附近的TPL节点,防止自身突然离线造成的损失,其次还要将信息共享到连接对象所属的上层TPL 节点,目的在于防止感染P2P蠕虫的节点伪造或者隐匿自身信息。

(4)TPL 根据检测结果,对出现异常的BPL 节点直接或者间接进行处理。

4 实验验证

利用P2P 仿真工具PeerSim 对P2P 网络进行模拟,在此基础上对PBD 检测主动P2P 蠕虫进行了一系列的实验。任取一个P2P 节点作为蠕虫传播起点,并对各种不同的参数各进行了50 次模拟实验。

图2 是α和ρ分别取3、4、5 的蠕虫传播以及PBD 的检测结果。根据文献[10]所测量的KAD 网络,设定α=4 时,经过实验系统没有产生过误报,可以使得ARL0达到预定的要求。检测系统PBD 平均经过三个时间间隔第一次检测到蠕虫的传播,此时P2P 网络的感染率在3%~10%,满足。但是可以明显看出,在一段时间后,PBD 检测时延明显变大。原因在于设定节点拥有的邻居越少,传播蠕虫的速度越慢,所以此类节点传播蠕虫时的偏移率要明显小于拥有大量邻居的节点,需要相对更长的时间才能检测到这类节点的异常状态。

图2 固定α和ρ参数检测结果

对比α=4,ρ=4 的数据,可以看出α=3,ρ=3 时检测速度有了极大的提高,几乎在传播的时刻就能立刻检测到P2P蠕虫的传播。但是在实验中,可以发现检测到的蠕虫传播数量甚至大于真实的蠕虫传播数量,明显有误报的情况发生。而且经过实验,系统可能在P2P 节点上线并带有大量未完成的下载任务情况下,以及P2P 节点有比较大量的搜索请求时产生误报。通过α=5,ρ=5 的检测曲线,可以看出检测的时间间隔相比前两者有明显增加。以上实验完全印证了之前的分析,即α、ρ取值大小与检测的速度呈现出正相关的关系。

对于变换参数,记α=α基数+节点度系数×节点度数。图3 是在ρ=4 的基础上,分别取α基数为2、2.5、3 以及节点度系数为0.05、0.15 的蠕虫传播,以及PBD 的检测结果。在α基数取值为2,节点度系数取0.05 时,较小的节点在进行资源搜索、联系人查找时,会产生误报。加大节点度系数至0.15,误报的情况仍然未能解决,继续增大节点度系数系统检测速度会急剧降低,所以α基数不能设置得过小。稍微加大α基数后,实验系统在α=2.5+0.05×节点度数以及α=3.0+0.05×节点度数情况下均没有产生过误报,也可以使得ARL0达到预定的要求。但是α基数设置越小,检测到蠕虫传播的速度越快,越能及时获得P2P 蠕虫传播的及时情况。所以在使得ARL0达到预定要求的情况下,尽量选取小的α基数能获得更好的检测效果。而节点度系数的作用在于能够使用相对于固定参数的α更小的α基数,而不会因为资源搜索、联系人查找等正常的P2P 行为产生误报。

图3 变换α和ρ参数检测结果

对于变换参数的检测方法,系统同样能在蠕虫开始传播的三个时间间隔后检测到蠕虫的传播,此时P2P 网络的感染率依旧处于3%~15%之间,但是对于节点度数较小的节点传播蠕虫检测速度也有很大的提高,可以及时准确地掌握整个P2P 网络的情况。因此可以认为,变换参数的PBD 检测方法相对于固定参数的检测方法更为优秀。

实验中还发现PBD 方法的一个缺点,也是大部分与连接点相关的方法共同的缺点,即如果有某个节点恶意发送大量的资源搜索信息和联系人查找信息,系统会产生误报。因为有恶意行为的节点较少,也不具有传播性,PPWDS 检测到仅有个别的节点有传播P2P 蠕虫的可能,可以认为P2P 网络安全没有P2P 蠕虫的传播。

对比CCD 检测方法,两者检测到蠕虫时的节点感染率分别为CCD 的2%~19%和3%~10%,可以认为两个检测方法的检测速度相差不大。这里CCD 不存在误检率,经过实验,可以认为在一个稳定、成熟的P2P 网络中CCD 方法误检率几乎为零。但是在一个快速发展或者不成熟的P2P 网络中,CCD 可能由于P2P 网络上某种流行资源的发布而使得整个网络的流量陡增,从而使网络上的持续连接在一个相对较长的时间内保持较高的状态,而导致误报。这种流行资源的发布,网络上节点的搜索量会增大,但是不会有持续的搜索在某一个节点上发生,同时PBD 忽略时间较长连接,不会对此种状况产生误报。

5 总结

本文采用了CUSUM 算法来检测P2P 网络中节点的行为,通过检测节点的出站短连接的变化情况,来获知整体P2P 网络是否有蠕虫传播以及蠕虫传播的及时信息。该算法相比仅仅检测节点连接情况的算法,能得到相同的准确率和更低的误报率,在检测系统的结构上也符合P2P 的初衷。在提出算法的基础上,还设计了一个主动P2P 蠕虫检测系统,该系统不仅适用于主动P2P 蠕虫的检测,还能适用于其他类型的P2P 蠕虫检测。接下来的工作,其一就是研究其他类型的P2P 蠕虫传播特征,使该系统的适用范围更加广泛;其二是研究该系统在遏制P2P 蠕虫传播时能起到的作用。

[1] Zhou Lidong,Zhang Lintao,McSherry F.A first look at peerto-peer worms:threats and defenses[C]//Proceedings of the 4th International Workshop on Peer-to-Peer Systems,2005:24-35.

[2] Chen Guanling,Gray R S.Simulating non-scanning worms on peer-to-peer networks[C]//Proceedings of the 1st International Conference on Scalable Information Systems,InfoScale’06.New York,NY,USA:ACM,2006.

[3] Wang Yang,Wang Chenxi.Modeling the effects of timing parameters on virus propagation[C]//Proceedings of the ACM Workshop on Rapid Malcode(WORM’03).New York,NY,USA:ACM,2006.

[4] Zou Changchun,Gong Weibo.Code red worm propagation modeling and analysis[C]//Proceedings of the 9th ACM Conference on Computer and Communications Security(CCS’02).Washington DC,USA:ACM,2002.

[5] Zhang Xiaosong,Chen Ting.Proactive worm propagation modeling and analysis in unstructured peer-to-peer networks[J].Zhejiang Univ-Sci C(Comput and Electron),2010,11(2):119-129.

[6] 王平,方滨兴,云晓春.基于用户习惯的蠕虫的早期发现[J].通信学报,2006(2):56-65.

[7] 张治江.主动P2P 蠕虫的检测与防御技术研究[D].武汉:华中科技大学,2009.

[8] 濮晓龙.关于积累和(CUSUM)检验的改进[J].应用数学学报,2003,26(2):226-241.

[9] Hawkins D M.Cumulative sum charts and charting for quality improvement[M].New York:Springer-Verlag,1997:31-32.

[10] 余杰.P2P 网络测量与安全关键技术研究[D].长沙:国防科技大学,2010.

猜你喜欢

误报蠕虫节点
CM节点控制在船舶上的应用
Analysis of the characteristics of electronic equipment usage distance for common users
家用燃气报警器误报原因及降低误报率的方法
蠕虫状MoS2/C的制备及其在锂离子电池负极材料中的应用
基于AutoCAD的门窗节点图快速构建
秋季谨防家禽蠕虫病
某水电站励磁系统误报导致机组事故停机原因分析
安全监控系统误报警故障的排除思路与方法
各类气体报警器防误报漏报管理系统的应用
青海海晏县牛羊寄生蠕虫种调查与防治