专利名称:分布式拒绝服务检测防御方法及网络设备的制作方法
技术领域:
本发明涉及通信领域,尤其涉及一种分布式拒绝服务检测防御方法及网 络设备。
背景技术:
拒绝服务(Denial of Service: DoS )攻击很久以来一直是计算机安全领 域的一种主要攻击手4爻。在这种攻击存在的情况下,网络中的受害者,如主 机、服务器、路由器等设备,将无法提供或接受正常的服务,而在分布式拒 纟色服务(Distributed Denial of Service: DDoS )攻击中,攻击者控制大量分布 网络各处的主机,在同一时间集中向目标发动拒绝服务攻击。
目前DDoS攻击中最常见的攻击方式是传送控制协议洪泛攻击(TCP Flood )、用户数据^i办议洪泛攻击(UDP Flood )、因特网控制才艮文协议洪泛 攻击(ICMP Flood)攻击,针对这些攻击,常用对策是设置诸如随机丟包 (Random Dr叩)、带宽限制等防护方法,但是这些防护方法只能緩解DDoS 攻击而不能真正解决DDoS攻击,如果需要真正解决DDoS,最关键的问题 在于如何快速有效地区分正常流量和异常攻击流量。
现有技术提供一种利用信息熵来检测异常攻击流量的方法,对于异常攻击 检测,需要不断的学习正常情况下数据包的属性的统计特性,计算相应的信 息熵,其中属性为源因特网协议(IP: Internet Protocol)地址字段或跳数 值(可任意选取,但是选取的好坏直接影响检测的效果),信息熵是用于描述 上述属性可能发生的不确定性的的量度,信息熵表达式为
<formula>formula see original document page 5</formula>
其中Pi是事件每个可能结果的概率,n为事件的可能发生的数目。正常情况 下基于某数据包的属性的信息熵在小范围内波动;当攻击发生时,基于该数 据包属性的信息熵具有明显的跳变。因此就可以检测出DDoS攻击。
发明人在实现本发明的过程中,发现现有技术至少存在以下缺点因为
信息熵是采用了单一的源因特网协议地址字段或跳数值来获取属性的概率, 该概率比较大,所以攻击者很容易可以通过篡改数据包网络层或传输层的源
IP地址字賴:值达到;f莫拟正常数据包属性概率分布的目的,使得基于单属性信
息熵的检测方法检测的准确率很低,漏才艮率高。
发明内容
本发明实施例要解决的技术问题是提供一种分布式拒绝服务检测防御方
法及网络设备,以提高检测DDoS攻击的准确率。
为解决上述技术问题,本发明的实施例提供以下技术方案 一种分布式拒绝服务检测防御方法,包括
统计单位时间内到达数据包的个数N,比较所述N和预置的阀值; 当所述N不大于所述预置的阀值,获取所述该单位时间内到达N个数据 包的联合熵,根据至少两个单位时间内数据包的联合熵获取联合熵的平均值, 根据所述单位时间内的联合熵和所述联合熵的平均值获取联合熵的波动范 围;
当所述N大于所述预置的阀值,获取所述该单位时间内到达N个数据包 的联合熵,比较所述该单位时间内到达N个数据包联合熵对所述联合熵的平 均值的偏离是否大于所述联合熵的波动范围,如果是,则确定发生攻击。
一种网络设备,包括
统计比较单元,用于统计单位时间内到达数据包的个数N,比较所述N 和预置的阀值;
学习单元,用于根据统计比较单元的比较结果,当所述N不大于所述预 置的阀值,获取所述该单位时间内到达N个数据包的联合熵,根据至少两个 单位时间内数据包的联合熵获取联合熵的平均值,根据所述单位时间内的联
合熵和所述联合熵的平均值获取联合熵的波动范围;
检测单元,用于根据统计比较单元的比较结果,当所述N大于所述预置
的阀值,获取所述该单位时间内到达N个数据包的联合熵,比较所述该单位 时间内到达N个数据包联合熵对所述联合熵的平均值的偏离是否大于所述联 合熵的波动范围,如果是,则确定发生攻击。
从以上技术方案可以看出,本发明实施例能够基于数据包两个或两个以
上的参量的联合熵来检测DDoS攻击,避免了攻击者通过单属性信息熵伪造 源IP地址进行攻击造成漏报率高的缺点,从而提高了检测DDoS攻击的准确 率。
图1为本发明实施例提供的一种分布式拒绝服务检测防御方法流程图; 图2为本发明实施例提供的一种网络设备结构图; 图3为本发明实施例提供的检测单元的结构图; 图4为本发明实施例提供的防御单元的结构图。
具体实施例方式
本发明实施例提供一种分布式拒绝服务检测防御方法和网络设备,该网
络设备可以为主机,也可以为i 各由器等,该方法包括
统计单位时间内到达数据包的个数N,比较所述N和预置的阀值; 当所述N不大于所述预置的阀值,获取所述该单位时间内到达N个数据包的联合熵,根据至少两个单位时间内数据包的联合熵获取联合熵的平均值,
根据所述单位时间内的联合熵和所述联合熵的平均值获取联合熵的波动范
围;
当所述N大于所述预置的阀值,获取所述该单位时间内到达N个数据包 的联合熵,比较所述该单位时间内到达N个数据包联合熵对所述联合熵的平 均值的偏离是否大于所述联合熵的波动范围,如果是,则确定发生攻击。
该技术方案能够基于数据包两个或两个以上的参量的联合熵来检测 DDoS攻击,避免了当攻击者通过单属性(只有一个参量)信息熵伪造源IP 地址进行攻击时,检测DDoS攻击漏报率高的缺点,从而提高了检测DDoS 攻击的准确率。为了更清楚的理解上述技术方案,下面结合附图详细描述本 发明提供的实施例。
在实施例一中以数据包的源IP地址和跳数为参量来计算联合熵和条件 熵,进行DDoS攻击的检测和防御,实践中,也可以利用数据其它有关联的 参量,如利用源IP地址、源端口 、目的IP地址、目的端口 、 lt据包的大 小和跳数中的任意两个或两个以上的参量来计算联合熵和条件熵,以进行DDoS攻击的检测和防雄卩。
参见图l所示,该分布式拒绝服务检测防御方法具体包括步骤
101 、统计单位时间内到达数据包的个数N,比4^该单位时间内到达数据 包的个数N和预置阀值fi;
该单位时间可以是预置的时间,该阀值fi根据客户需要或系统预先设置 的,如在正常状态下单位时间内到达的数据包个数一般为X,则阀值fi可以 为X或为X附近的值。
如果单位时间内到达数据包的个数N小于或等于阀值fi,则继续步骤 102,如果单位时间内到达数据包的个数N大于阀值fi,步骤103。
102、当单位时间内到达数据包的个数N小于或等于阀值ft,提取所述单 位时间内到达的N个数据包中的每个数据包中的源IP地址和TTL (生存时 间,Time To Live)值,根据TTL值计算跳数;
根据每个数据包的源IP地址和跳数计算所述到达的N个数据包的联合 熵,以及根据至少两个这样单位时间内到达数据包的联合熵计算联合熵H的 平均值Hn,然后根据这至少两个联合熵和联合熵平均值计算所述联合熵的波 动范围Ah,即得到每个联合熵与联合熵的平均值的差值,这至少两个差值的 平均值为所述联合熵的波动范围Ah;
其中,需要说明的是,所述的联合熵的平均值可根据不同时间段内数据 包的联合熵不断更新,由此,所述的联合熵波动范围也可不断更新;
其中联合熵为上述单位时间内到达的N个数据包中的两个或两个以上 的参量同时发生的不确定性的量度,根据源IP地址和跳数计算联合熵H;联 合熵为H(Z,r) = -t户k.,yi)log/^,乂),其中yi为第一个参量(如源IP 地址)的第i种取值,;为数据包的第二个参量(如:跳数傳i种取值,尸(x,,少,) 为所述第一个参量和所述第二个参量(如源IP地址和跳数)分别取值为 、和yi的相无率,n为yi、 所有可能取值组合的数目,如i的值从1到4, 那么n的值为4。如果Xi为数据包的第i种跳数值,那么yi为源IP地址的第 i种取值;如果Xj为源IP地址的第i种取值,那么yi为数据包的第i种跳数 值。103、 当所述N大于所述预置的阀值,获取该单位时间内到达N个数据
包的联合熵,比较该单位时间内到达N个数据包联合熵对所述联合熵的平均 值的偏离是否大于所述联合熵的波动范围,即比较|/^-/q和A、如果是,则 确定发生攻击。进入步骤104;如果否,即|//-// |^A/2,则再进入步骤102。 其中,需要i兌明的是,在单位时间内达到的凌丈据包当大于所述预置的阀 值,为确定是否发生攻击所需要的联合熵的平均值可以是该方法中前述步骤 中获得的所述联合熵平均值,当小于所述预置的阀值时,所需要的联合熵的 平均值可以是上次该方法循环中所获得的联合熵平均值;
104、 对联合熵相对于所述联合熵平均值的偏离大于所述联合熵的波动范 围的单位时间内到达的凄史据包,过滤该单位时间内到达的凄t据包所对应的用 户,或者对所述用户限流。
如果该单位时间内到达的数据包对应多个用户,则对这多个用户均进行 限流或过滤。
计算条件熵和丢包率,并以此进行丟包,即对该数据包对应的用户进行 限流,或者过滤该凄t据包对应的用户;
其中对该数据包对应的用户进行限流,具体包括限制该数据包IP对 应的用户发送数据包的个数(或大小)或者过滤该数据包对应的用户。限制 该数据包对应的用户发送数据包的个数,又具体包括
根据不同跳数下源IP地址的条件熵计算得到不同跳数数据包的丟包率 Dh,其中条件熵为一个参量一定情况下另一参量不确定性的量度,条件
熵为 '=i y代表数据包的跳数值,Xj代表某个
源IP地址,p" 1 ^为特定跳数下某源地址出现的条件概率; 根据丢包率Dh对不同跳数的数据包进行丟包。
<formula>formula see original document page 9</formula>数据包的丢包率Dh尸dhj/^X ,其中 I 7) 而 w 5
其中i为所有数据包中跳数的第i种取值,Dhj为跳数为i对应的数据
包的丢包率,"^为某类跳数数据包对应的条件熵变化率,""l少)为正在检
测数据包的条件熵,A(刈^)为正常的数据包对应的条件熵,y代表特定的跳 数值,Xj代表某个源IP地址,p(x' W为该特定跳数下某源IP地址出现的条 件概率。
实施例二,统计单位时间内到达数据包的个数N,比较单位时间内到达 数据包的个数N和预置的阀值fi;然后收集数据包的源IP地址、lt据包的跳 数、数据包的大小,根据源IP地址、数据包的跳数、数据包的大小来计算该 N个数据包的联合熵,此时联合熵为"(X,y,Z) = -1 P(jc,,y, ,z,. )log,乂,Zi), 其中yi为源IP地址的第i种取值,Xi为数据包的淵&t第i种取值,Zj为数据 包的大小的第i种取值,P(x,,乂,z,)为源IP地址、数据包的大小和跳数分别 取值为Xi 、 yi和Zi的概率,n为x" y,、 z,.所有可能取值组合的数目。条件熵 为F(X|>^) = -|_y,z)log2JP(x, l乂z),y代表数据包的跳数值,x;代表某个 源IP地址,Zi为'艮种数据包的大小P(;c, l乂z)为该跳数下某源地址和该种数据 包的大小出现的条件概率。然后根据实施例一的方法确定是否发生攻击,如 果确定发生攻击,则限制该IP对应的用户发送数据包的个数(或大小)或者 过滤该IP对应的用户。
上述实施例一和实施例二能够基于数据包的不同参量(如源IP地址和 跳数)的联合熵来检测DDoS攻击,避免了攻击者伪造单属性造成漏报率高 的缺点,从而提高了检测DDoS攻击的准确率,而且通过条件熵来确定丟包 率,提高过滤进行DDoS攻击用户及异常流量的效率。
下面描述结合上述方法的应用实施例
在一段时间内捕获正常流量下的数据包,获取IP报头内的属性信息(本 实例中使用源IP地址和TTL差值即跳数)。经过学习计算,得到基于源地址 和跳数的联合熵平均值为Hn(X, Y)=ll,波动偏差(10.2 11.4)为厶^=1.2。
在检测阶段观察该到达的N个数据包的流量并且计算所要检测数据包的
联合熵。在10.0-15.5秒内,得到该到达的N个数据包的联合熵H (X, Y) 在(8.3, 9.3)内波动。根据DDoS攻击的检测条件,
I //(X, y)— // (Z, y) |2 M/7V(1 //(X, y) - // (X, 7) I) = 1.7 > A/j
所以,判断10.0-15.5秒内发生DDoS攻击。
当检测到DDoS攻击发生时,釆用条件熵的过滤方法对DDoS流进行限 流,根据所述数据包条件熵与条件熵平均值的差值的大小将用户分为不同等 级,对变化大的条件熵数据包对应的用户大幅度限流,对变化小的条件熵条 件熵对应的用户小幅度限流。
条件熵H (X| y)表示特定跳数下的源地址分布特性
<formula>formula see original document page 11</formula>
^ 其中,y代表特定的跳数值,xi代表某
个源IP地址,尸"l少)为特定跳数下某源IP地址出现的条件概率。DDoS攻 击过滤依据是通过检测条件熵的变化发现特定跳数下源地址随机分布特性的 变化,作为是否丟弃数据包或者丟弃多少数据包的依据。
限流幅度可根据条件熵变化比例进行量化。如果正常条件下的条件熵表
示为&(xiy),正在检测数据包的条件熵表示为Hpn少),那么具有某类跳数
数据包对应的条件熵变化率为
<formula>formula see original document page 11</formula> 假设观察数据包中包含n种跳数
少-",A,…J"卜每种跳数对应条件熵变化率为《.(i二l,2,.…n),对上述条件熵 变化率做如下归 一化处理,作为跳数X对应的丟包率 <formula>formula see original document page 11</formula>本发明实施例还提供一种网络设备,如图2所示,该网络设备包括 统计比较单元201 ,用于统计单位时间内到达数据包的个数N,比较所 述N和预置的阀值;
学习单元202,用于根据统计比较单元201的比较结果,当所述N不大 于所述预置的阀值,获取所述该单位时间内到达N个数据包的联合熵,根据 至少两个单位时间内数据包的联合熵获取联合熵的平均值,根据所述单位时
间内的联合熵和所述联合熵的平均值获取联合熵的波动范围;
检测单元203,用于根据统计比较单元201的比较结果,当所述N大于 所述预置的阀值,获取所述该单位时间内到达N个数据包的联合熵,比较所 述该单位时间内到达N个数据包联合熵对所述联合熵的平均值的偏离是否大 于所述联合熵的波动范围,如果是,则确定发生攻击。
该联合熵、联合熵平均值和波动范围的计算同实施例一。 所述学习单元202,如图3所示,包括
参量提取单元2021,参量提取单元,用于分别提取所述单位时间内收集 的每个数据包的两个或两个以上的参量;
联合熵计算单元2022,用于根据所述单位时间内收集每个数据包的两个 或两个以上的参量计算所述单位时间内到达N个数据包的联合熵。计算方法 同实施例一。
该网络设备还可以包括防御单元204,如图2所示,用于在确定发生攻 击后,相对于所述联合熵平均值的偏离大于所述联合熵的波动范围的单位时 间内到达的凄i据包,过滤该单位时间内到达的it据包所对应的用户,或者对 所述用户限流。
所述防御单元204,如图4所示,包括限流单元2041,用于限制用户发 送数据包的个数或大小。
该限流单元2041,如图4所示,包4舌
丢包率计算单元20411,用于根据第一个参量不同取值下第二个参量的 条件熵计算得到第一个参量取值不同时的数据包的丢包率Dh;条件熵和丟包 率计算方法同实施例一。
丟包单元20412,用于根据所述丢包率计算单元20411得到的丟包率对 第 一参量取值不同时的数据包进行丢包。
上述各实施例中的第一参量和第二参量分别为源IP地址和跳数,或第一
参量和第二参量分别为跳数和源IP地址。也可以为数据包其他的参量,也可 以利用两个以上参量来计算联合熵及条件熵。利用数据包两个或两个以上的 参量的联合熵来检测DDoS攻击,和利用条件熵来过滤用户或对用户进行限
流,从而提高了检测DDoS攻击的准确率和提高了防御攻击的效率。
程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于 一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施
例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory: ROM)或随才X^储记忆体(Random Access Memory: RAM)等。
进行了详细介绍,
对于本领域的一般技术人员,依据本发明的思想,在具体实施方式
及应用范 围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
权利要求
1、一种分布式拒绝服务检测防御方法,其特征在于,包括:统计单位时间内到达数据包的个数N,比较所述N和预置的阀值;当所述N不大于所述预置的阀值,获取所述该单位时间内到达N个数据包的联合熵,根据至少两个单位时间内数据包的联合熵获取联合熵的平均值,根据所述单位时间内的联合熵和所述联合熵的平均值获取联合熵的波动范围;当所述N大于所述预置的阀值,获取所述该单位时间内到达N个数据包的联合熵,比较所述该单位时间内到达N个数据包联合熵对所述联合熵的平均值的偏离是否大于所述联合熵的波动范围,如果是,则确定发生攻击。
2、 如权利要求1所述分布式拒绝服务检测防御方法,其特征在于,获取 所述该单位时间内到达N个数据包的联合熵包括分别提取所述单位时间内 到达的每个数据包的两个或两个以上的参量,然后根据所述单位时间内到达 的每个数据包的两个或两个以上的参量计算所述单位时间内到达N个数据包 的联合熵。
3、 如权利要求1所述分布式拒绝服务检测防御方法,其特征在于,所述 确定发生攻击之后进一步包括相对于所述联合熵平均值的偏离大于所述联 合熵的波动范围的单位时间内到达的数据包,过滤该单位时间内到达的数据 包所对应的用户,或者对所述用户限流。
4、 如权利要求1所述分布式拒绝服务检测防御方法,其特征在于,所述 数据包的参量包括源IP地址、源端口 、目的IP地址、目的端口 、数据包的 大小或跳数。
5、 如权利要求1所述分布式拒绝服务检测防御方法,其特征在于, 所述获取所述该单位时间内到达N个数据包的联合熵包括/f(U) = -tp(^y,)l0gi^,j,),其中yi为第一个参量的第i种取值,Xi为数据包的第二个参量第i种取值,P(x,,少,)为两个参量同时出现且分别取值为 xi和yi的概率,n为yi、 Xi所有可能取值组合的数目。
6、 如权利要求3所述分布式拒绝服务检测防御方法,其特征在于,所述对所述用户进行限流,具体包括限制所述用户发送数据包的个数或大小。
7、 如权利要求6所述分布式拒绝服务检测防御方法,其特征在于,所述 限制所述用户发送数据包的个数,具体包括冲艮据第 一个参量不同取值下第二个参量的条件熵计算得到第 一个参量取<formula>formula see original document page 3</formula>值不同时的数据包的丢包率Dh,其中条件熵 '=' ,y代表第一个参量的取值,Xi代表第二个参量的不同取值,P"l^为第一参 量为y时第二个参量取值为Xi的条件概率;根据所述丢包率Dh对第一参量取值不同时的数据包进行丢包。
8、 如权利要求7所述分布式拒绝服务检测防御方法,其特征在于,所述 对所述用户进行限流,具体包括根据所述单位时间内到达的N个数据包条 件熵与条件熵平均值的差值的大小将用户分为不同等级,对变化大的条件熵 所述单位时间内到达的N个彩:据包对应的用户大幅度限流,对变化小的条件熵条件熵对应的用户小幅度限流。
9、 如权利要求7所述分布式拒绝服务检测防御方法,其特征在于,所述数据包的丟包率Dh「dhi/^X,其中 Hc(^H少) ,<formula>formula see original document page 3</formula>其中i为第一个参量的第i种情况,Dhi为该第一个参量为第i种情况对应的数据包的丟包率,"^为该第一个参量对应的条件熵变化率,^化l》)为正在检测数据包的条件熵,A("少)为正常的数据包对应的条件熵,y代表第一个参量取值,Xi代表第二个参量的某种取值,P"l^为该第一个参量为y 时第二个参量为Xi的条件概率。
10、 如权利要求5、 7或8所述分布式拒绝服务检测防御方法,其特征在 于,所述第一参量和第二参量分别为源IP地址和跳lt,或所述第一参量和第 二参量分别为跳数和源IP地址。
11、 一种网络设备,其特征在于,包括统计比较单元,用于统计单位时间内到达数据包的个数N,比较所述N 和预置的阀值;学习单元,用于根据统计比较单元的比较结果,当所述N不大于所述预 置的阀值,获取所述该单位时间内到达N个数据包的联合熵,根据至少两个 单位时间内数据包的联合熵获取联合熵的平均值,根据所述单位时间内的联 合熵和所述联合熵的平均值获取联合熵的波动范围;检测单元,用于根据统计比较单元的比较结果,当所述N大于所述预置 的阀值,获取所述该单位时间内到达N个数据包的联合熵,比较所述该单位 时间内到达N个数据包联合熵对所述联合熵的平均值的偏离是否大于所述联 合熵的波动范围,如果是,则确定发生攻击。
12、 如权利要求11所述网络设备,其特征在于,所述学习单元,包括 参量提取单元,用于分别提取所述单位时间内收集的每个数据包的两个或两个以上的参量;联合熵计算单元,用于根据所述单位时间内收集每个数据包的两个或两 个以上的参量计算所述单位时间内到达N个数据包的联合熵。
13、 如权利要求12所述网络设备,其特征在于,该设备还包括防御单元, 用于在确定发生攻击后,相对于所述联合熵平均值的偏离大于所述联合熵的 波动范围的单位时间内到达的凄t据包,过滤该单位时间内到达的凄史据包所对 应的用户,或者对所述用户限流。
14、 如权利要求13所述网络设备,其特征在于,所述防御单元,包括限 流单元,用于限制所述用户发送数据包的个数或大小。
15、 如权利要求14所述网络设备,其特征在于,所述限流单元,包括 丟包率计算单元,用于根据第一个参量不同取值下第二个参量的条件熵计算得到所述第一个参量取值不同时的凝:据包的丢包率Dh;丢包单元,用于根据所述丢包率对所述第一参量取值不同时的数据包进 行丟包。
全文摘要
本发明实施例涉及通信领域,提供一种分布式拒绝服务检测防御方法及网络设备,统计单位时间内到达数据包的个数N,比较N和阀值;当N不大于阀值,获取该单位时间内到达N个数据包的联合熵,联合熵的平均值,单位时间内数据包联合熵的波动范围;当N大于预置的阀值,获取该单位时间内到达N个数据包的联合熵,比较该单位时间内到达N个数据包联合熵对联合熵的平均值的偏离是否大于所述联合熵的波动范围,如果是,则确定发生攻击。利用数据包的不同参量的联合熵来检测分布式拒绝服务DDoS攻击,避免了攻击者伪造单属性造成漏报率高的缺点,从而提高了检测DDoS攻击的准确率。
文档编号H04L12/26GK101378394SQ20081016744
公开日2009年3月4日 申请日期2008年9月26日 优先权日2008年9月26日
发明者烜 张, 莉 杨, 杨亚涛, 谷勇浩, 阳 辛 申请人:成都市华为赛门铁克科技有限公司