一种检测网络攻击的方法和设备的制作方法

文档序号:7918350阅读:190来源:国知局
专利名称:一种检测网络攻击的方法和设备的制作方法
技术领域
本发明涉及通信技术领域,特别是涉及一种检测网络攻击的方法和设备。
背景技术
DDoS (Distributed Denial of Service,分布式拒绝服务)Flooding洪泛攻 击的基本原理是攻击者通过发动数量巨大的傀儡机,发送大量的服务请求或 大量的数据包到受害者,最终耗尽受害者主机或网络的资源,使受害者不能 够再对外提供服务,如图1所示,为DDoS Flooding攻击的结构图。由于DDoS Flooding的攻击工具非常简便,而且具有巨大的破坏性和难以检测、防御的特 点,这就使得DDoS Flooding攻击成为了当今的Internet网络中最大的安全威 胁之一。DDoS Flooding的检测和防御方法有很多,但是效果都不是很好,尤 其在快速检测、区分正常的大流量和异常流量等方面。
将数据包的距离值d定义为(TTL初值-TTL终值),其中,TTL ( Time To Live,
生存时间)是IP数据包IP报头的一个域,数据包每经过一个路由器,TTL 的值就会减1,当TTL的值变成0时,路由器就会丟弃该数据包,这样就可 以防止数据包在网络中无限的循环传递。从网络拓朴的角度来看,DDoS Flooding的攻击来源于大量的路由器,DDoS Flooding的攻击将会改变网络拓 朴的统计分布,对一个受害者的主机来说,网络拓朴就是发向它的网络流量 所经过的上游路由器拓朴。数据包的距离的变化,可以直接反映出攻击发生 时的网络拓朴的变化。现有技术中,通过估计数据包平均距离的检测方法来 检测DDoS Flooding攻击,检测引擎观察一个特定时间段内的所有流入数据包 的TTL值,并计算出数据包的平均距离值,数据包的平均距离值是对所有数 据包的距离值求和,用所得出的和除以数据包的个数。然后根据指数平滑预
测的算法预测下个时段的平均距离值,估计下一时间段的平均距离。将该平 均距离的预测值和实测值比较,用平均绝对误差的方法来判断是否发生异常, 并估计误差。
在实现本发明的过程中,发明人发现现有技术中至少存在以下问题由 于网络节点的数量巨大、网络拓朴复杂,正常客户访问具有随机性,很难仅 仅根据数据包的统计特性在某一时刻的一个异常变化断定发生了 DDoS Flooding攻击。现有技术的方法很容易将正常的网络访问情况波动或者正常的 突发大流量访问误净艮为DDoS Flooding攻击。

发明内容
本发明实施例提供一种检测网络攻击的方法和设备,以准确检测出网络 攻击。
本发明实施例提出一种检测网络攻击的方法,包括 接收数据包,获取数据包的相邻观察时刻的平均距离值的比较值; 对所述比较值进行累积和统计,获得累积和的统计量; 在预定的观察周期内,当所述累积和的统计量超过预先设定的阈值时,
判定发生网络攻击。
本发明实施例还提出了一种检测网络攻击的设备,包括 比较值获取模块,用于获取数据包相邻观察时刻的平均距离值的比较值; 统计量获取模块,用于对所述比较值进行累积和统计,获得累积和的统
计量;
判定模块,用于在预定的观察周期内,当所述累积和的统计量超过预先 设定的阈值时,判定发生网络攻击。
与现有技术相比,本发明实施例具有以下优点累积和算法主要是累积 明显比正常运行情况下的平均水平高的变量的值,即累积差异值,因此能 够更准确地4企测网络攻击,发生减小误报率;同时,算法简单,可以迅速地 ;f企测出网络攻击。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实 施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面 描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲, 在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。 图1为DDoS Flooding攻击的结构示意图; 图2为本发明实施例一的一种检测网络攻击的方法流程图; 图3为本发明实施例二的一种4全测DDoS Flooding的方法流程图; 图4为本发明实施例三的一种^r测DDoS Flooding的方法流程图; 图5为本发明实施例的一种检测DDoS Flooding的设备结构图; 图6为本发明实施例的另 一种检测DDoS Flooding的设备结构图。
具体实施例方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行 清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而 不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作 出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例一提供一种检测网络攻击的方法,如图2所示,包括以下 步骤
步骤S201,接收数据包,获取所述数据包的相邻观察时刻的平均距离值 的比较值;
步骤S202,对所述比较值进行累积和(CumulativeSum , CUSUM)统计, 获得累积和的统计量;
步骤S203,在预定的观察周期内,当所述CUSUM的统计量超过预先设 定的阈值时,判定发生网络攻击。
其中网络攻击可以为DDoS Flooding攻击,发生DDoS Flooding攻击时, 攻击者会发动大量的傀儡机发动攻击,主机数量巨大而且具有分布广泛性 的特点,各个攻击主机的傀儡机的性能、网络链路的状况以及分布位置都 会存在差异,DDoS Flooding攻击的发生也是一个渐变的、持续的过程。本 发明实施例提出的DDoS Flooding检测方法,就是基于数据包的平均距离 在正常状态下的稳定性,并运用CUSUM算法来检测DDoS Flooding攻击。 CUSUM是在统计过程控制中常用的算法,用来检测一个统计过程均值的 变化,它基于似然比导出,被证明在检测小的漂移时有理想的效果。CUSUM 需要随机序列的参数模型,用概率密度函数来监控序列,如果有变化发生, 则随机序列的概率分布将会改变。CUSUM算法主要是累积明显比正常运 行情况下的平均水平高的变量的值,即累积差异值,因此能够更准确地检 测网络攻击,发生减小误报率;同时,算法筒单,可以迅速地检测出网络攻 击。
本发明实施例二4是供的一种4全测DDoS Flooding的方法,如图3所示, 包括以下步骤
步骤S301,检测引擎收集数据包,提取数据包中ip包的ttl值,并计 算数据包的距离值,数据包的距离值d定义为(TTL初值-TTL终值),TTL是IP 数据包IP报头的一个域,数据包每经过一个路由器,TTL的值就会减l,当 TTL的值变成0时,路由器就会丟弃该数据包,这样就可以防止数据包在网 络中无限的循环传递。数据包的距离值d还表明从发送端的边界路由器到受 害主机所要经过的跳数。TTL的终值可以从收到的数据包中来读取,而TTL 的初值则由操作系统来设定,取32, 64, 128, 255中的一个,网络中的主机 一般可以在30跳内到达,所以可以根据TTL的终值推来测出TTL的初值。
步骤S302,检测引擎根据网络流量的大小及主机的处理性能,设定一个 观察时间间隔r即数据包的观察周期,统计该观察周期内到达受害主机的所 有数据包的平均距离值,由于通常的DDoS攻击可以在14秒之内使得受害主 机无法提供正常服务,因此该观察周期y的选择必须小于14秒,在设定的过 程中,观察周期7的值设定的越小越好,观察周期^可选择l-2秒。在到达设 定的观察周期^的周期后,检测引擎就将计算所有数据包的平均距离值,根 据检测引擎观察到的一个特定时间段内的所有流入数据包的TTL值,计算出 数据包的平均距离值,数据包的平均距离值就是对所有数据包的距离值求和, 用所得出的结果除以数据包的个数。
步骤S303,检测引擎计算t+At时刻的平均距离值和t时刻的平均距
离值的差值的绝对值,用dt"t表示t+At时刻的平均距离值,《表示t时刻 的平均距离值,Xt+At表示t+At时刻平均距离值的差值的绝对值,t表示数 据包的一个观察时刻,取值为小于r At表示预定的时间间隔,可以为l秒, 也可以为0.5秒,可以根据具体需要进行预先设定;在观察周期内,从O秒时 刻开始,每相隔At时刻就是一个观察时刻,t+At时刻与t时刻是两个相邻 观察时刻;t+At的取值为小于等于、则t+At时刻的平均距离值和t时刻 的平均距离值的差值的绝对值Xt+At为
在正常状态下,各个观察时刻的平均距离值d的值相差很小,由平均距离 值d所组成的序列也是一个稳定的的序列,即义t+,t的值是基本稳定的。当 发生DDoS攻击时,由于主机数量的巨大和分布的广泛性,d的值会发生 较大的改变,义t^的值也会随之发生较大的改变。
步骤S304,检测引擎根据平均距离值的差值的绝对值《计算CUSUM
统计量。令^-《-k, k取合适的值,《为t时刻平均距离值与上一时刻平
均距离值的差值的绝对值,在正常情况下"o,当发生异常时,《会发生
较大的变化,导致"> 0;令Z(-max(0,Z'一+^,其中Z。-0,则4就是一个 CUSUM统计量,CUSUM统计量就是将Y变量的各个时刻的正值累加起 来,也就是将异常效应累加起来。参数k要根据正常情况和异常情况下包 平均距离的差值来选择,根据历史记录或其他的历史经验,或者根据正常 情况下包平均距离值的变化范围来确定。
步骤S305,在数据包的一个观察周期内,检测引擎判断CUSUM统计
量Z'是否超出了预先设定的阔值h,如果超过了阁值h,转到步骤S306, 如果没有超出阈值h,则转到步骤S307。 h应根据要求的检测时间,即从 异常产生到判断为攻击长短来具体选择,具体还应根据实际网络情况及误 报率和漏报率之间的平衡做调整。
步骤S306,检测引擎进行报警,说明被检测对象遭到了 DDoS Flooding 的攻击。
步骤S307,检测引擎为正常状态,表明没有受到DDoS Flooding的攻击, 结束这个观察周期,进入下一个观察周期,t清零,;险测引擎重新进行检测。
可见,本实施例中,通过获取数据包的两个相邻观察时刻的平均距离值 的差值的绝对值进行CUSUM统计,根据CUSUM统计值来判断是否发生 DDoS Flooding攻击,可以准确快速的区分出正常的网络访问流的变化,減小 误报率。
本发明实施例三的 一种检测DDoS Flooding的方法,如图4所示,包括 以下步骤
步骤S401 -步骤S402与步骤S301 -步骤S302完全一样,在此不在赘述。 步骤S403,检测引擎计算t+ △ t时刻的平均距离值和t时刻的平均距离
值的比值,用dt+,t表示t+At时刻的平均距离值,《表示t时刻的平均距离 值,Zt A表示t+l时刻平均距离值与t时刻平均距离值的比值。则t+At时
刻的平均距离值和t时刻的平均距离值的比值%t+A,为:
在正常状态下,各个观察时刻的平均距离值d的值相差很小,由平均距离 值d所组成的序列则是一个稳定的的序列,即JSTt+At的值也是基本稳定的。 当发生DDoS攻击时,由于主机数量的巨大和分布的广泛性,d的值会发 生较大的改变,A+At的值也会随之发生较大的改变。
步骤S404,在数据包的一个观察周期内,检测引擎根据平均距离值的
比值《计算CUSUM统计量。令"=不-1^ k取合适的值,不为t时刻平均 距离值与上一时刻平均距离值的的比值与l的差值的绝对值,在正常情况
下^<0,当发生异常时,《会发生较大的变化,导致"> 0;令 Z,=max{0,ZM+fl,其中2。=0,则4就是一个CUSUM统计量,即是将Y
变量的各个时刻的正值累加起来,也就是将异常效应累加起来。参数k要 根据正常情况和异常情况下包平均距离的差值来选择,根据历史记录或其 他的历史经验,或者根据正常情况下包平均距离值的变化范围来确定。
步骤S405,检测引擎判断CUSUM统计量Z是否超出了预先设定的阈 值h,如果超过了阈值h,转到步骤S406,如果没有超出阈值h,则转到 步骤S407。 h应根据要求的检测时间,即从异常产生到判断为攻击长短来 选择,具体还应根据实际网络情况及误报率和漏报率之间的平衡做调整。
步骤S406,检测引擎进行报警,说明受害者遭到了 DDoS Flooding的 攻击。
步骤S407,检测引擎为正常状态,表明没有受到DDoS Flooding的攻击, 结束这个观察周期,进入下一个观察周期,t清零,;险测引擎重新进行;险测。
可见,本实施例中,通过获取数据包的两个相邻观察时刻的平均距离值 的比值的绝对值进行CUSUM统计,据CUSUM统计值来判断是否发生DDoS Flooding攻击,可以准确快速的区分出正常的网络访问流的变化,减小误报率。 本发明实施例还提供一种检测DDoS Flooding的设备,如图5所示,包括 设定模块10 ,用于设定数据包观察周期。
平均距离值获取模块20,用于在设定模块IO设定的观察周期内,每隔A t获取数据包观察周期内的平均距离值,At表示预定的时间间隔,可以为1 秒,也可以为0.5秒,可以根据具体需要进行预先设定;。
第一比较值获取模块30,用于根据平均距离值获取模块20得到的平均距 离值,获取数据包的相邻观察时刻的平均距离值的差值的绝对值,其中相邻 观察时刻指在观察周期内所有两个间隔△ t的时刻。
第一变量统计模块40,用于根据第一比较值获取^莫块30获取的数据包的 两个相邻观察时刻的平均距离值的差值的绝对值与一预设值的差作为变量。
累加模块50,用于将第一变量统计模块40中得到的变量的各个观察时 刻的正值累加,得到CUSUM的统计量。
判定模块60,用于在数据包的一个观察周期内,根据所述统计量累加模 块50统计的CUSUM的统计量判定是否发生网络击,当所述CUSUM的统计 量超过预先设定的阔值时,发生网络攻击,当所述CUSUM的统计量没有超 过预先设定的阈值时,则没有发生网络攻击。
可见,本实施例中,通过对数据包的两个相邻观察时刻的平均距离值的 差值的绝对值进行正值累加,即进行CUSUM统计,可以准确快速的区分出 正常的网络访问流的变化,检测出网络攻击,减小误报率。
本发明实施例的另一种检测DDoS Flooding的设备,如图6所示,包括 设定模块10,平均距离值获取模块20,累加模块50,判定模块60,这些模 块与上一个实施例功能相同,还包括
第二比较值获f^莫块70,用于根据平均距离值获取模块20得到的平均距 离值,获取数据包的两个相邻观察时刻的平均距离值比值
第二变量统计模块80,用于根据第二比较值获取模块70获取的相邻两个 数据包观察周期的平均距离值比值与 一预设值的差作为各个观察时刻的变 量。
可见,本实施例中,通过对数据包的两个相邻观察时刻的平均距离值的 比值的绝对值进行正值累加,即进行CUSUM统计,可以准确快速的区分出 正常的网络访问流的变化,检测出网络攻击,减小误报率。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发 明可以通过硬件实现,也可以可借助软件加必要的通用硬件平台的方式来实 现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来, 该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM, U盘,移 动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机, 服务器,或者网络i殳备等)执行本发明各个实施例所述的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的 普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进 和润饰,这些改进和润饰也应视本发明的保护范围。
权利要求
1.一种检测网络攻击的方法,其特征在于,包括接收数据包,获取所述数据包的相邻观察时刻的平均距离值的比较值;对所述比较值进行累积和统计,获得累积和的统计量;在预定的观察周期内,当所述累积和的统计量超过预先设定的阈值时,判定发生网络攻击。
2、 如权利要求l所述的方法,其特征在于,所述获取所述数据包的两个 相邻观察时刻的平均距离值的比较值包括获取所述数据包的相邻观察时刻的平均距离值的差值的绝对值;或 获取所述数据包的相邻观察时刻的平均距离值的比值的绝对值。
3、 如权利要求2所述的方法,其特征在于,所述所述数据包的相邻观察 时刻的平均距离值比值包括使所述数据包的两个相邻观察时刻中后一个数 据包的观察时刻的平均距离值除以前一个数据包的观察时刻的平均距离值 的结果减去1的绝对值。
4、 如权利要求2所述的方法,其特征在于,所述对所述比较值进行累积 和统计包括将数据包的相邻观察时刻的平均距离值的差值的绝对值与 一预设值的差 作为变量;将所述各个观察时刻的变量的正值累加。
5、 如权利要求2所述的方法,其特征在于,所述对所述比较值进行累积 和统计包括将数据包的相邻观察时刻的平均距离值比值的绝对值与 一预设值的差作为变量;将所述各个观察时刻的变量的正值累加。
6、 如权利要求1至5所述的方法,其特征在于,所述相邻观察时刻具体 为观察周期内两个相隔预定间隔的时刻。
7、 一种检测网络攻击的设备,其特征在于,包括 比较值获取模块,用于接收数据包,获取所述数据包相邻观察时刻的平均距离值的比较值;统计量获取模块,用于对所述比较值进行累积和统计,获得累积和的统 计量;判定模块,用于在预定的观察周期内,当所述累积和的统计量超过预先 设定的阈值时,判定发生网络攻击。
8、 如权利要求7所述的设备,其特征在于,所述比较值获取模块包括 第一比较值获取^t块,用于获取所述数据包的相邻观察时刻的平均距离值的差值的绝对值;或第二比较值获取模块,用于获取所述数据包的相邻观察时刻的平均距离 值比值。
9、 如权利要求8所述的设备,其特征在于,所述统计量获取模块包括 第一变量统计才莫块,用于将所述数据包的相邻观察时刻的平均距离值的差值的绝对值与一预设值的差作为变量;累加才莫块,用于将所述各个观察时刻的变量的正值累加。
10、 如权利要求8所述的设备,其特征在于,所述统计量获取模块包括 第二变量统计模块,用于将数据包的相邻观察时刻的平均距离值比值的绝对值与一预设值的差作为变量;累加模块,用于将所述各个观察时刻的变量的正值累加。
11、 如权利要求7所述的设备,其特征在于,还包括 设定模块,用于设定数据包观察周期。
12、 如权利要求7所述的设备,其特征在于,所述相邻观察时刻具体为 观察周期内两个相隔预定间隔的时刻。
全文摘要
本发明实施例公开了一种检测网络攻击的方法,包括接收数据包,获取数据包的相邻观察时刻的平均距离值的比较值;对所述比较值进行累积和统计,获得累积和的统计量;在预定的观察周期内,当所述累积和的统计量超过预先设定的阈值时,判定发生网络攻击。本发明中,CUSUM算法主要是累积明显比正常运行情况下的平均水平高的变量的值,即累积差异值,因此能够更准确地检测网络攻击,发生减小误报率;同时,算法简单,可以迅速地检测出网络攻击。
文档编号H04L9/36GK101369897SQ20081014446
公开日2009年2月18日 申请日期2008年7月31日 优先权日2008年7月31日
发明者烜 张, 张振宇, 张进军, 谷勇浩 申请人:成都市华为赛门铁克科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1