一种p2p网络大规模蠕虫爆发检测方法

文档序号:7927727阅读:159来源:国知局
专利名称:一种p2p网络大规模蠕虫爆发检测方法
技术领域
本发明涉及计算机安全防护技术领域,尤其涉及一种P2P网络大规模蠕虫爆发检测方法。
背景技术
网络蠕虫是一种可独立运行的恶意程序,它通过扫描网络,发现存在系统漏洞的计算机系统或应用服务,感染该计算机,并获取该计算机系统的控制权,进行传播;网络蠕虫大规模感染会导致信息泄露、计算机系统资源过耗、网络拥塞等严重后果。著名的Code Red蠕虫、Slammer蠕虫均在爆发后短期内直接造成10亿美元以上的巨大损失。网络蠕虫已成为目前影响网络安全的一个重大因素。防止蠕虫泛滥的关键在于及早发现受感染的蠕虫主机,然后由防范器对蠕虫主机采取应对措施,如清除蠕虫文件、隔离主机、过滤蠕虫数据包等。因此,检测蠕虫是抑制蠕虫传播的关键步骤。研究蠕虫检测技术已成为保证网络环境安全性,维护社会和个人利益的迫切需要。目前对于网络蠕虫的检测包括的基于特征码的检测方法和基于网络异常的检测方法两大类。基于特征码的检测方法是较传统的方法,该方法首先分析捕获的蠕虫样本得到该蠕虫的特征码;然后根据特征码在网络流量或者主机文件中进行特征匹配,从而实现蠕虫检测。该检测方法对已知蠕虫具有良好的检测结果,但存在缺点,缺点之一无法第一时间获取新蠕虫或变种蠕虫的特征码,所以对新出现蠕虫的检测延迟较大,起不到预警作用;缺点之二 无法检测到动态改变代码的多态蠕虫,该类蠕虫没有固定的特征码,可以规避基于特征码的检测方法。具有较高的漏报率。该类检测方法无法预防爆发十分快速的P2P蠕虫。基于网络异常的检测方法是蠕虫检测技术的发展方向,该方法监测特定的网络指标,根据指标异常来检测蠕虫的爆发。常用的方法如通过统计连接数,判断连接累计值是否超过设置的阈值来检测蠕虫;通过统计ICMP消息异常来检测蠕虫的发生;通过计算失败连接与成功连接比率,判断是否超过预设阈值来检测蠕虫等。该方法可以检测到未知蠕虫, 但也存在缺点目前出现的基于网络特征的检测方法或者由于计算量大,检测实时性差; 或者由于检测指标简单,存在较高的误报率。并且该类检测方法对P2P蠕虫的检测率较低。贝叶斯公式用来描述两个条件概率之间的关系,比如P(A|B)和P(B|A)。按照乘法法则=P (Α Π B) =P(A) *Ρ (B I A) =P (B) *P (A | B),可以立刻导出贝叶斯定理公式:P (A | B)= P (B I A) *P (A) /P (B)。如上公式也可变形为=P (B | A) = P (A | B) *P (B) /P (A)贝叶斯公式为利用搜集到的信息对原有判断进行修正提供了有效手段。在采样之前,经济主体对各种假设有一个判断(先验概率),关于先验概率的分布,通常可根据经济主体的经验判断确定(当无任何信息时,一般假设各先验概率相同),较复杂精确的可利用包括最大熵技术或边际分布密度以及相互信息原理等方法来确定先验概率分布。

发明内容
本发明的目的是克服了现有技术无法检测P2P蠕虫或检测率不高的不足,提供一种P2P网络大规模蠕虫爆发检测方法。P2P网络大规模蠕虫爆发检测方法的步骤如下1)在计算机中安装决策中心装置,并加入互联网,开放特定网络端口,接收来自检测端点的注册消息、预警消息;2)在η台计算机中安装P2P客户端软件,同时安装路由表监测装置,每个检测端点利用Ρ2Ρ客户端软件加入Ρ2Ρ网络,成为Ρ2Ρ网络中的一个节点,每个检测端点利用路由表监测装置向决策中心装置注册,并与决策中心装置建立网络连接;3)计算每个检测端点关键参数指针表查询频率和单位时间指针表使用率,对于检测端点k,在时间窗口 wl之内第i次发生指针表查询时,将被查询的目标节点记为Di,并设置标志符Fi,若Di兴Dp1,则置Fi为1,否则Fi为0,经过滑动时间ml后,统计时间窗口 wl 之内有效标志符数量$以及使用的指针数Pk,计算指针表查询频率和单位时间指针表使用率;4)每隔单位时间t,检测端点通过已建立的网络连接向决策中心发送关键参数指针表查询频率和单位时间指针表使用率以及包含时间戳t的消息;5)系统预先定义4类事件W为网络爆发蠕虫,N为网络正常,S为FFQ >0,F为 FFQ = 0, FFQ代表针表查询频率;
P(W) * P(S I W)6)利用公式ω p(wι= p(wyp(Ksι众+W叩ι巧检测s事件的发生,
P(Wls)是在S事件发生后,W事件发生的概率。P(SlW)是在W事件发生后,S事件发生的概率。P(SlN)是在N事件发生后,S事件发生的概率。其中P(W)初始取值η,相应的P (N)
=入;
P(W)*P(F I W)7)利用公式⑵PW I F) = p{w) *p(》| ;) +(m) ip(F | 检测F事件的发生,
P(WlF)是在F事件发生后,W事件发生的概率。P(F|W)是在W事件发生后,F事件发生的概率。P(F|N)是在N事件发生后,F事件发生的概率。其中P(W)初始取值η,相应的P(N)
=入;8)每次使用公式(1)或公式(2)计算之后,用得到的结果作为先验概率,更新 P(W)的值,控制P(W)不小于η,若P(W) > λ,则认为爆发蠕虫;9)若决策中心装置认为Ρ2Ρ网络已爆发蠕虫,则发出蠕虫爆发报警。所述的计算每个检测端点关键参数指针表查询频率和单位时间指针表使用率步骤为根据公式FFA = SF/Wl计算指针表查询频率,根据公式RF& = SF/Pk计算单位时间指针表使用率。本发明克服了现有的网络蠕虫检测技术不能快速检测P2P蠕虫爆发,检测结果存在较高漏报率的缺点,可准确、高效、实时地检测到P2P网络中爆发P2P蠕虫。


图1为FFQ与RFQ统计滑动时间窗口示意图
图2为本发明P2P蠕虫检测方法的检测算法流程图;图3为按照本发明P2P蠕虫检测方法的用于Chord网络中的FFQ分布图;图4为按照本发明P2P蠕虫检测方法的用于Chord网络的RFQ分布5为按照本发明P2P蠕虫检测方法的用于Chord网络的部署图。
具体实施例方式P2P网络大规模蠕虫爆发检测方法的步骤如下1)在计算机中安装决策中心装置,并加入互联网,开放特定网络端口,接收来自检测端点的注册消息、预警消息;2)在η台计算机中安装P2P客户端软件,同时安装路由表监测装置,每个检测端点利用Ρ2Ρ客户端软件加入Ρ2Ρ网络,成为Ρ2Ρ网络中的一个节点,每个检测端点利用路由表监测装置向决策中心装置注册,并与决策中心装置建立网络连接;3)计算每个检测端点关键参数指针表查询频率和单位时间指针表使用率,对于检测端点k,在时间窗口 wl之内第i次发生指针表查询时,将被查询的目标节点记为Di,并设置标志符Fi,若Di兴Dp1,则置Fi为1,否则Fi为0,经过滑动时间ml后,统计时间窗口 wl 之内有效标志符数量$以及使用的指针数Pk,计算指针表查询频率和单位时间指针表使用率;4)每隔单位时间t,检测端点通过已建立的网络连接向决策中心发送关键参数指针表查询频率和单位时间指针表使用率以及包含时间戳t的消息;5)系统预先定义4类事件W为网络爆发蠕虫,N为网络正常,S为FFQ > 0,F为 FFQ = 0, FFQ代表针表查询频率;
P(W) * P(S I W) 6)利用公式 ω P(Wι= p(wrp(KsII^0检测S事件的发生,
P(Wls)是在S事件发生后,W事件发生的概率。P(SlW)是在W事件发生后,S事件发生的概率。P(SlN)是在N事件发生后,S事件发生的概率。其中P(W)初始取值η,相应的P (N)
=入;
P(W)*P(F I W)7)利用公式⑵ PQVIF) = P(wrP(;^)+\lN)iP(F{N/mF事件的发生,
P(WlF)是在F事件发生后,W事件发生的概率。P(F|W)是在W事件发生后,F事件发生的概率。P(F|N)是在N事件发生后,F事件发生的概率。其中P(W)初始取值η,相应的P(N)
=入;8)每次使用公式⑴或公式(2)计算之后,用得到的结果作为先验概率,更新 P(W)的值,控制P(W)不小于η,若P(W) > λ,则认为爆发蠕虫;9)若决策中心装置认为Ρ2Ρ网络已爆发蠕虫,则发出蠕虫爆发报警。所述的计算每个检测端点关键参数指针表查询频率和单位时间指针表使用率步骤为根据公式FFA = SF/Wl计算指针表查询频率,根据公式RF& = SF/Pk计算单位时间指针表使用率。本发明基于以下理论基础(1)P2P蠕虫在P2P网络中爆发时,必须依靠P2P节点中的路由表传播,传播时会频繁访问路由表。O)P2P节点在正常情况下,其路由表在单位时间内的访问次数符合特定分布,访问次数在接近某个正常值,在蠕虫感染情况下,其路由表在单位时间内的访问次数必然骤增,明显超过正常值。根据研究发现,P2P网络爆发蠕虫时,蠕虫节点表现出明显的行为异常短时间内访问指针表中的所有节点。特别的,这种异常在情报节点中会更加明显,因为情报节点不会主动查找资源,只会处理并转发来自其他节点的查询报文。因此,本发明提出针对单一节点的两个关键参数指针表查询频率(FFQ, Frequency of Finger Table Query),单位时间指针表使用率(RFQ, Ratio ofFinger Table Query)。FFQ体现节点指针表在单位时间内被使用的频率(使用数/时间),RFQ体现节点指针表在单位时间内的利用率(使用数/指针数)。两个参数均是一段时间内的频度,因此采用滑动时间窗口的统计方法。令时间窗口为wl = l(s),滑动时间为ml = 0.1(s)。时间窗口使用方法如图1所示,每经过0. 1秒重新计算节点在最近1秒内的FFQ与RFQ。情报节点视为样本,来自情报节点的FFQ可视为所有节点的FFQ的样本值。若仅考虑当前抽样得到的样本值,则具有较大的误差,如果考虑先验概率与当前样本值,可以得到更精确的检测结果。因此检测算法采用了贝叶斯公式。1)计算关键参数FFQ 对于情报节点k,在时间窗口 Wl之内第i次发生指针表查询时,将被查询的目标节点记为Di,并设置标志符Fi,若Di兴Dp1,则置Fi为1,否则为0。经过滑动时间ml后,统计时间窗口 wl之内有效标志符数量&,计算FF& = SF/w102)基于贝叶斯公式的检测算法定义4类事件W (网络爆发蠕虫)、N (网络正常)、S (FFQ > 0)、F (FFQ = 0)。4类事件的组合形成下表所列参数,部分参数的概率值通过实验数据已获得。
权利要求
1.一种P2P网络大规模蠕虫爆发检测方法,其特征在于它的步骤如下1)在计算机中安装决策中心装置,并加入互联网,开放特定网络端口,接收来自检测端点的注册消息、预警消息;2)在η台计算机中安装P2P客户端软件,同时安装路由表监测装置,每个检测端点利用 Ρ2Ρ客户端软件加入Ρ2Ρ网络,成为Ρ2Ρ网络中的一个节点,每个检测端点利用路由表监测装置向决策中心装置注册,并与决策中心装置建立网络连接;3)计算每个检测端点关键参数指针表查询频率和单位时间指针表使用率,对于检测端点k,在时间窗口 wl之内第i次发生指针表查询时,将被查询的目标节点记为Di,并设置标志符Fi,若Di兴Dg,则置Fi为1,否则Fi为0,经过滑动时间ml后,统计时间窗口 wl之内有效标志符数量$以及使用的指针数Pk,计算指针表查询频率和单位时间指针表使用率;4)每隔单位时间t,检测端点通过已建立的网络连接向决策中心发送关键参数指针表查询频率和单位时间指针表使用率以及包含时间戳t的消息;5)系统预先定义4类事件W为网络爆发蠕虫,N为网络正常,S为FFQ>0,F为FFQ =0,FFQ代表针表查询频率;6)利用公式(1)— I =I Λ0检测S事件的发生,P(Wls)是在S事件发生后,W事件发生的概率。P(SlW)是在W事件发生后,S事件发生的概率。P(SlN)是在N事件发生后,S事件发生的概率。其中P(W)初始取值η,相应的P (N)=入;P(W)*P(F \ W)7)利用公式⑵—ιη = P(w) * P(;, ;) ; F(F, 检测ρ事件的发生,P(WlF)是在F事件发生后,W事件发生的概率。P(F|W)是在W事件发生后,F事件发生的概率。P(F|N)是在N事件发生后,F事件发生的概率。其中P(W)初始取值η,相应的P(N)=入;8)每次使用公式(1)或公式(2)计算之后,用得到的结果作为先验概率,更新P(W)的值,控制P(W)不小于η,若P(W) > λ,则认为爆发蠕虫;9)若决策中心装置认为Ρ2Ρ网络已爆发蠕虫,则发出蠕虫爆发报警。
2.根据权利要求1所述的一种Ρ2Ρ网络大规模蠕虫爆发检测方法,其特征在于所述的计算每个检测端点关键参数指针表查询频率和单位时间指针表使用率步骤为根据公式 FFQk = SF/Wl计算指针表查询频率,根据公式RF& = SF/Pk计算单位时间指针表使用率。
全文摘要
本发明公开了一种P2P网络大规模蠕虫爆发检测方法。本发明向P2P网络部署多个检测端点和一个决策中心装置,每个检测端点对应一个随机选中的P2P节点,安装路由表监测装置监测P2P节点的两个关键参数,指针表查询频率(FFQ,FrequencyofFingerTableQuery)和单位时间指针表使用率(RFQ,RatioofFingerTableQuery)。P2P节点定时将这两个参数值发送给决策中心。检测端点视为样本,来自检测端点的FFQ可视为所有节点的FFQ的样本值。决策中心根据本发明提出的基于贝叶斯公式的检测算法来判断当前网络是否有蠕虫爆发。本发明克服了现有的网络蠕虫检测方法不适于检测P2P蠕虫、对P2P蠕虫的检测率低误报率高等不足,可有效检测到P2P网络的蠕虫爆发。
文档编号H04L12/56GK102368719SQ201110297289
公开日2012年3月7日 申请日期2011年9月28日 优先权日2011年9月28日
发明者张知临, 林怀忠, 苏啸鸣, 陈萍 申请人:浙江大学, 浙江省电子信息产品检验所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1