软交换平台下公共服务号码的拒绝服务攻击检测方法
技术领域
本发明通信技术领域,具体涉及通信安全技术。
背景技术
拒绝服务(DoS,Denial of Service)攻击是指故意攻击网络协议实现的缺陷或直接通过野蛮手段耗尽被攻击对象的资源,目的是让目标计算机或网络无法提供正常的服务,使目标系统停止响应甚至崩溃。这些服务资源包括网络带宽、文件系统空间容量、开放的进程或者允许的连接等,是网络上一种简单但很有效的破坏性攻击手段。
软交换(softswitching)技术是利用把呼叫控制功能与媒体网关分开的方法来沟通公用电话交换网(PSTN)与IP电话(VoIP)的一种交换技术。软交换平台是采用软交换技术将公用电话交换网与IP电话融合的一种系统。IP电话的成功促使软交换平台的转型,分组化、软交换等技术的使用,使得原本小概率的软交换平台安全问题日渐突出,在软交换平台这种攻击方式也应运而生。软交换平台受到来自Internet网络攻击的可能性不断增大,主要原因在于:
1.终端智能化;在极大丰富了服务类型与内容的同时,拥有丰富智能特性的终端也将一般IP网的安全问题带入了软交换平台。具有很强计算能力、存储能力和通信能力的计算机,一旦成为傀儡机,完全有可能在用户没有察觉的情况下成为向软交换平台终端发起攻击的主机。
2.攻击代价低并追溯困难;这使得攻击发起者可以多次反复尝试多种攻击手段,而基本无需顾忌攻击成本问题。这与IP网的匿名、开放、无管理等有着直接关系,用户在网络中的行为基本不受约束,黑客/骇客大行其道。
3.攻击强度高并破坏性大;使得原本需要很大代价才能达成的目的现在可以较为容易地实现。如对某个软交换平台号码或号段的阻塞、对某些用户的电话骚扰、进行某些反动言论的宣传等。由于“投入产出比”较高,促成了某些潜在的网络犯罪行为,如网络敲诈、网络欺骗等,进一步使得软交换平台平台的安全形势恶化。
同时,深入分析针对软交换平台下电话终端的拒绝服务攻击,虽然其仍然具有传统拒绝服务攻击的特征,但与一般意义上的拒绝服务已存在一定的差异。首先,在主要作用目标上有区别,前者重点破坏被叫用户的接通率,后者则针对传输带宽或服务器可用资源。其次,在作用机理上,前者若是针对单个电话终端的拒绝服务攻击,更多的体现在时间轴上的连续呼叫行为,除了发动大量主机对同一个目标(传输带宽或服务器)实施攻击这种传统方式外,仅需一台主机也可以完全阻塞一个电话终端用户,这无疑为黑客创造了更加丰富的攻击手段和机会。从攻击效果方面分析,在面对更加复杂更加险恶的网络环境的同时,由于软交换平台一端缺少安全防护措施,一旦电话线路长时间被阻塞,电话终端立即陷入瘫痪状态,攻击带来的危害将显著提高。
因此,考虑到软交换平台的拒绝服务问题具有明显有别于IP网拒绝服务攻击的特征,特别是软交换平台不断地向下一代网络的融合的过程中,该类安全问题日渐突出,软交换平台迫切需要快速高效的公共服务号码拒绝服务攻击检测算法。
在拒绝服务攻击安全方面的研究,目前主要集中在对IP网络中该攻击的研究。大体上我们可以将现有的研究方向分为三类:利用更好的信号处理方法来发现异常流量;二是建立更好的网络流量模型来精确刻画流量变化,以此为基础发现异常流量;三是采用智能推理方法来分析发现异常流量。以下分别对这三类研究方向简单介绍:
1.利用更好的信号处理方法来发现异常;本类方法是目前网络流量异常检测方法发展的主流,受到的重视最多,研究得到的方法也最多,该类方法大致有可分为两类:一是单时间序列分析方法,另一类是多时间序列分析方法。所谓单时间序列分析方法是将一条链路的流量信号看作一个一维信号,采用一维信号的分析方法进行异常检测(当然也有个别方法将一维分解成二维信号进行分析);所谓多时间序列分析方法是将多条链路的流量信号看作一个二维信号,采用二维信号的分析方法进行异常检测。
2.基于网络流量模型的异常检测方法,随着网络技术的不断发展和更新,许多研究者投入到分组网络业务量的研究之中,并根据各自的学术背景提出了各种业务量表征的概念和模型。研究者已经发现在正常网络业务中,对某一特定的节点而言,来自大量不同数据源的数据之间通常不具有时间和分组特征(比如协议类型,分组尺寸)方面的相关性,但是,当异常(比如拒绝服务攻击)发生时,大量邻近的分组段之间在时间和分组特征上具有某种特定的相关性。正是这种相关性的变化,将会导致其流量模型的相关参数的变化,从而有可能利用流量分析的方法将包含有异常数据的业务量和正常业务区分开来。该类方法通过对网络流量模型参数变化的监测,不需拆开分组,不需分析攻击所属的协议类型,计算量小,占用资源少,可运用于分布式系统,能准确有效的判断异常的发生。
3.流量异常的智能推理方法,用有限状态机或者模式匹配等智能推理方法来进行异常检测很早就出现了,目前已经不是主流的检测方法,但有必要进行归类和简单描述:
(31)有限状态机方法;有限状态机模型通过一系列异常事件发生过程中或发生以前的预警序列来检测异常行为。它的缺点是:因为所有的异常错误都可以通过一定长度的有限状态机预警序列来捕获,这就可能导致状态的数量随着异常模型的数量和复杂度增加,我们要研究的参数也跟着增加。参数设定好之后,只能适用于固定的网络,灵活性差,时间复杂度高,不适用于实时检测。
(32)模式匹配方法;把异常信号和正常信号区分开来。异常信号是偏离正常信号的变化。这种方法中,通过在线学习建立给定网络的流量模型,参数有如链接数、包丢失数、冲突数。然后按照时间对流量模型分类,比如星期、特殊日子(周末、假期)等。如果一个新的到达数据不能在一定的置信区间匹配这些模型,那么我们就认为这个数据是一个异常数据。它的缺点是:严重依赖于网络流量的波形统计,当用于新的网络时,需要花大量的时间建立起网络流量波形的统计。
以上的现有技术研究的内容均计算机网络中的拒绝服务攻击的检测,均未实现对软交换平台下拒绝服务攻击的检测,而实际需求中,迫切需要一种软交换平台下公共服务号码的拒绝服务攻击检测方法。
发明内容
本发明的目的是满足软交换平台的实际需求,提出了软交换平台下公共服务号码的拒绝服务攻击检测方法,可以准确的检测出拒绝服务攻击的发生。
为了实现上述目的,本发明的技术方案是:软交换平台下公共服务号码的拒绝服务攻击检测方法,包括步骤:
步骤1.拒绝服务攻击行为预判断:预先设定一指定公共服务号码的计时器时间门限T和计数器次数门限值N,启动计时器和计数器,记录此时的工作时刻为起始时刻t1,判断计时器的工作时间是否达到计时器时间门限T,如果达到计时器时间门限T,则计时器和计数器复位重新启动计时器和计数器,如果没有达到计时器时间门限T,则进一步判断计数器次数n是否达到计数器次数门限值N;如果达到计数器次数门限值N,记录此时的工作时刻为计数器中止时刻t2,同时进入下一步骤,如果没有达到计数器次数门限值N,计时器和计数器继续计数;
步骤2.分别计算检测窗口TDetWin=[t1,t2]的被服务号码信息熵HDet和历史窗口THisWin=[t0,t1]的被服务号码信息熵序列H(m),其中THisWin为预设值并且大于TDetWin,m为信息熵值的序号,取值范围为1到M之间的任意整数,M=[THisWin/TDetWin];
步骤3.计算信息熵判决门限T1和T2,并将检测窗口TDetWin的被服务号码的信息熵HDet与判决门限比对,判决检测窗口TDetWin是否有拒绝服务攻击行为发生;
步骤4.根据指定公共服务号码的各个被服务号码对指定公共服务号码的呼叫数据,统计各个被服务号码对该指定公共服务号码发起的呼叫次数和各个被服务号码对该公共服务号码发起的呼叫的平均通话时长,同时,计算呼叫次数门限σT1和平均通话时长门限σT2;
步骤5.将步骤(4)中的被服务号码对指定公共服务号码的呼叫次数Counti及平均通话时长Timei与计算得到的呼叫次数判决门限σT1和平均通话时长判决门限σT2进行比对,若呼叫次数Counti大于呼叫次数判决门限σT1并且平均通话时长Timei小于平均通话时长判决门限σT2,则判断该主叫方为拒绝服务攻击的具体攻击方;
上述步骤2的包括如下步骤:
21.计算检测窗口TDetWin的被服务号码信息熵:根据信息熵的定义及检测窗口内的呼叫数据,计算被服务号码的信息熵HDet;
22.计算历史窗口THisWin的被服务号码信息熵序列H(m):将历史窗口THisWin按检测窗口TDetWin的时间跨度大小划分成M个子窗口,根据各个子窗口时间段内的呼叫数据分别计算各个子窗口的被服务号码的信息熵,进而得到信息熵序列H1,H2,...,HM;
上述步骤3的包括如下步骤:
步骤31.假设历史窗口T
HisWin的被服务号码信息熵序列H(m)的均值为E,标准差为σ
H,则有:
和
那么信息熵判决门限T
1和T
2分别为:T
1=E-3σ
H和T
2=E+3σ
H;
步骤32.异常判决,根据步骤(2)中计算的HDet和步骤(3)中计算的信息熵判决门限T1和T2判决公共服务号码在检测窗口TDetWin内是否遭受了攻击;
当HDet<T1并且HDet>T2时,判定指定公共服务号码遭受到拒绝服务攻击,结束整个检测过程,否则判定公共服务号码没有遭到了攻击,进入下一步骤;
上述步骤4的包括如下步骤:
步骤41.分析呼叫历史数据:根据历史呼叫数据,统计各个被服务号码对指定公共服务号码的呼叫次数Count
i及平均通话时长Time
i,同时,根据所有被服务号码的最大呼叫次数Num
max和最短的通话时长Length
min分别计算呼叫次数相对于最大呼叫次数Num
max的离散系数σ
2 Num以及平均通话时长相对最小通话时长Length
min的离散系数
Nummax=max(Counti);
Lengthmin=min(Timei);
其中:Nummax为最大呼叫次数,Lengthmin为最小平均通话时长,n为被服务号码的个数,Count表示第i个被服务号码对指定公共服务号码的呼叫次数,Timei表示第i个被服务号码对指定公共服务号码的平均通话时间。
步骤42.判决门限的设定:
呼叫次数判决门限σT1:σT1=Nummax-σNum;
平均通话时长判决门限σT2:σT2=Lengtgmin+σlength ;
本发明的有益效果:一般情况下,拒绝服务攻击的单个攻击的发起端的行为,其异常也许并不明显,但是针对某个公共服务号码(比如114)拒绝服务攻击,如果存在多个攻击的发起端,此时,多个准同时发生的呼叫,具有相似的用户行为构成了威胁。因此,我们考虑从呼叫的整体特征入手来研究攻击的检测,针对软交换平台下公共服务号码的拒绝服务攻击的特征,本发明提出的方法通过将信息熵的理论应用到公共服务号码拒绝服务攻击检测,进一步对攻击源进行确认认定,最终快速、准确的找出了攻击源。因此本发明可以有效的检测出软交换平台下的公共服务号码的拒绝服务攻击行为的发生。并且结合已有的呼叫数据,还可以准确的确定出攻击方的号码。
附图说明
图1是本发明具体实施例的主流程图。
图2是本发明具体实施例步骤1的具体流程图。
图3是本发明具体实施例步骤2的具体流程图。
图4是本发明具体实施例步骤2的滑动窗口检测原理示意图。
图5是本发明具体实施例步骤3的具体流程图。
具体实施方式
在对具体实施例进行具体描述前,先对以下概念做出定义或解释:对指定的公共服务号码(如114、110、120等)发起呼叫的号码称为被服务号码;被服务号码向服务号码发起的呼叫称为服务请求呼叫。
下面结合附图和具体实施例对本发明作进一步说明。如图1所示,软交换平台下公共服务号码的拒绝服务攻击检测方法,如图2所示,包括步骤:
步骤1.拒绝服务攻击行为预判断:预先设定一指定公共服务号码的计时器时间门限T和计数器次数门限值N,启动计时器和计数器,记录此时的工作时刻为起始时刻t1,判断计时器的工作时间是否达到计时器时间门限T,如果达到计时器时间门限T,则计时器和计数器复位重新启动计时器和计数器,如果没有达到计时器时间门限T,则进一步判断计数器次数n是否达到计数器次数门限值N;如果达到计数器次数门限值N,记录此时的工作时刻为计数器中止时刻t2同时进入下一步骤,如果没有达到计数器次数门限值N,计时器和计数器继续计数;
上述过程中,如果计数器次数n在计时器的工作时刻t没有达到计时器时间门限值T之前达到计数器次数门限值N,则认为可能有拒绝服务攻击行为发生,则进入下一步骤进一步判断,否则认为没有拒绝服务攻击行为发生。
步骤2.分别计算检测窗口TDetWin=[t1,t2]的被服务号码信息熵HDet和历史窗口THisWin=[t0,t1]的被服务号码信息熵序列H(m),其中THisWin为预设值并且大于TDetWin,m为信息熵值的序号,取值范围为1到M之间的任意整数,M=[THisWin/TDetWin]([]表示向上取整,即如果THisWin/TDetWin含有小数部分,则M为THisWin/TDetWin取整之后之后再加1)
本步骤的详细过程如图3和图4所示:
21.计算检测窗口TDetWin的被服务号码信息熵:根据信息熵的定义及检测窗口内的呼叫数据,计算被服务号码的信息熵HDet。
22.计算历史窗口THisWin的被服务号码信息熵序列H(m):将历史窗口THisWin按检测窗口TDetWin的时间跨度大小划分成M个子窗口,根据各个子窗口时间段内的呼叫数据分别计算各个子窗口的被服务号码的信息熵,进而得到信息熵序列H1,H2,...,HM。
下面介绍信息熵及其计算方法:信息熵是信息论中用于度量信息量的一个概念,反映了系统微观状态的分布几率,分布越分散,变量的不确定性越大,把它弄清楚所需要的信息量也就越大,其信息熵也就越大。本发明将信息熵这种理论应用到公共服务号码的拒绝服务攻击的检测,通过分析信息熵的变化来发现对公共服务号码的呼叫的的异常。下面介绍信息熵的定义:
如果在时间窗口TWin内有R个被服务号码对指定服务号码发出了服务请求呼叫,第i个被服务号码发出的服务请求呼叫的个数为ki,S为该时间段内服务请求呼叫的总数,即:
公式(1)
时间窗口TWin内的被服务号码信息熵为:
公式(2)
在本发明中,根据式(1)和(2),计算得到检测窗口TDetWin的被服务号码信息熵HDet,同时,计算得到历史窗口THisWin的各个子窗口的被服务号码信息熵,进而得到信息熵序列H(m),其中,m=1,2,...,M;
步骤3.计算信息熵判决门限T1和T2,并将检测窗口TDetWin的被服务号码的信息熵HDet与判决门限比对,判决检测窗口TDetWin是否有拒绝服务攻击行为发生。具体过程如图5所示:
31.假设历史窗口THisWin的被服务号码信息熵序列H(m)的均值为E,标准差为σH,则有:
公式(3)
公式(4)
那么信息熵判决门限T1和T2分别为:
T1=E-3σH 公式(5)
T2=E+3σH 公式(6)
32.异常判决,根据步骤(2)中计算的HDet和步骤(3)中计算的信息熵判决门限T1和T2判决公共服务号码在检测窗口TDetWin内是否遭受了攻击。
当HDet<T1并且HDet>T2时,判定指定公共服务号码遭受到拒绝服务攻击,结束整个检测过程,否则判定公共服务号码没有遭到了攻击,进入下一步骤;
上述步骤1到步骤3也被称为软交换平台下公共服务号码的拒绝服务攻击检测方法的粗检测过程。
步骤4.根据指定公共服务号码的各个被服务号码(比如028-88636763等电话号码)对指定公共服务号码(比如114)的呼叫数据,统计各个被服务号码对该指定公共服务号码发起的呼叫次数和各个被服务号码对该公共服务号码发起的呼叫的平均通话时长,同时,计算呼叫次数门限σT1和平均通话时长门限σT2。
上述这些被服务号码发起的被服务呼叫的呼叫数据包括主、被叫号码,呼叫发起时间,呼叫应答时间,呼叫结束时间,挂机方。
步骤41.分析呼叫历史数据:根据历史呼叫数据,统计各个被服务号码对指定公共服务号码的呼叫次数Count
i及平均通话时长Time
i,同时,根据所有被服务号码的最大呼叫次数Num
max和最短的通话时长Length
min分别计算呼叫次数相对于最大呼叫次数Num
max的离散系数σ
2 Num以及平均通话时长相对最小通话时长Length
min的离散系数
Nummax=max(Counti) 公式(7)
Lengthmin=min(Timei) 公式(8)
公式(9)
公式(10)
其中:Nummax为最大呼叫次数,Lengthmin为最小平均通话时长,n为被服务号码的个数,Counti表示第i个被服务号码对指定公共服务号码的呼叫次数,Timei表示第i个被服务号码对指定公共服务号码的平均通话时间。
步骤42.判决门限的设定:
呼叫次数判决门限σT1:
σT1=Nummax-σNum 公式(11)
平均通话时长判决门限σT2:
σT2=Lengthmin+σlength 公式(12)
步骤5:将步骤(4)中的被服务号码对指定公共服务号码的呼叫次数Counti及平均通话时长Timei与计算得到的呼叫次数判决门限σT1和平均通话时长判决门限σT2进行比对,若呼叫次数Counti大于呼叫次数判决门限σT1并且平均通话时长Timei小于平均通话时长判决门限σT2,则判断该主叫方为拒绝服务攻击的具体攻击方。
步骤6:白名单筛选;若上一步骤判断出主叫方为拒绝服务攻击的具体攻击方,则将该主叫方与系统预先设定的白名单进行比对,若该主叫方在白名单中,则判断该主教方不是具体攻击方,结束该阶段判断。
本步骤为可选步骤,主要是考虑到一些电话号码从步骤(4)的技术分析的角度满足具体攻击方的条件,但是实际上并非攻击方的情况。
步骤7:黑名单筛选;若上一步骤判断出主叫方不是拒绝服务攻击的具体攻击方,则将该主叫方与系统预先设定的黑名单进行比对,若该主叫方在黑名单中,则判断该主教方是具体攻击方,否则直接结束该阶段判断。
本步骤为可选步骤,主要是考虑到一些电话号码从步骤(4)的技术分析的角度不满足具体攻击方的条件,但是实际上是攻击方的情况。
上述步骤6和7完成后,若判断主叫方为具体攻击方,还可以向系统报告该攻击者。
上述步骤4到步骤7被称为软交换平台下公共服务号码拒绝服务攻击检测方法的精检测过程,这些步骤都是可选择步骤,可以根据方案的功能设计有选择的采用。
本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的实施方法,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。7