识别伪装ldns请求的ddos攻击的防护方法及装置制造方法

文档序号:7811723阅读:200来源:国知局
识别伪装ldns请求的ddos攻击的防护方法及装置制造方法
【专利摘要】本发明提供一种识别伪装LDNS请求的DDOS攻击的防护方法及装置,方法包括:向授权DNS服务器的前端或者向内部布置防护模块;防护模块存储最新的LDNS白名单列表以及TTL正常参考值;当发生异常时,解析所接收到的LDNS请求包,获得所述LDNS请求包所携带的当前TTL值,并与TTL正常参考值比较,从而判断该LDNS请求包是否为正常包。不需要依赖于网络运营商是否采取相关的路由控制策略,即可对权威DNS服务器进行有效防护,使其不被DDOS攻击,具有防护效果好、CPU消耗低的优点。
【专利说明】识别伪装LDNS请求的DDOS攻击的防护方法及装置

【技术领域】
[0001] 本发明属于DD0S攻击的防护方法,具体涉及一种识别伪装LDNS请求的DD0S攻击 的防护方法及装置。

【背景技术】
[0002] DD0S(分布式拒绝服务,Distributed Denial of Service)攻击是指:借助于客户 端/服务器技术,将多个计算机联合起来作为攻击平台,伪造大量合理的服务请求而占用 目标服务器的过多服务资源,从而导致目标服务器无法响应合法用户的服务请求。
[0003] 由于UDP缺乏建立连接握手机制,因此基于UDP的应用非常容易被伪造源IP的IP 包发起DD0S攻击。例如,在域名解析领域,黑客向目标权威DNS服务器发起DD0S攻击的方 式之一为:将位于不同地区的计算机联合起来,同时向目标权威DNS服务器发送大量伪装 LDNS请求包,即攻击包;其中,各个伪装LDNS请求包具有同一被伪装的源IP,源IP指LDNS 的IP地址;此时,目标权威DNS服务器无法识别出所接收到的大量伪装LDNS请求包为攻击 包,因此,目标权威DNS服务器占用大量资源对所接收到的大量伪装LDNS请求包进行域名 解析,导致目标权威DNS服务器无法处理正常的LDNS请求包,最终使目标权威DNS服务器 被攻瘫。
[0004] 目前解决上述问题的方法为:运营商在各级路由上进行相应控制,限制非本地源 IP的数据包向外发,例如:当运营商内部网络A采用上述路由控制策略后,当其接收到LDNS 请求包时,首先判断该LDNS请求包的源IP是否为本地IP地址,如果是,则将该LDNS请求 包递归到权威DNS服务器,由权威DNS服务器进行域名解析;如果不是,则认识该LDNS请 求包为攻击包,不将该LDNS请求包发送到权威DNS服务器,从而防止权威DNS服务器被攻 击。由上可以看出,权威DNS服务器是否被攻击,需要依赖于攻击发起方所借助的网络是否 被运营商采取上述路由控制策略,由于全球网络运营商数量众多,难以使全球所有网络运 营商均采取上述路由控制策略,因此,上述解决方案具有较大的应用局限性,难以保证权威 DNS服务器不被攻击。


【发明内容】

[0005] 针对现有技术存在的缺陷,本发明提供一种识别伪装LDNS请求的DD0S攻击的防 护方法及装置,可对权威DNS服务器进行有效防护,使其不被DD0S攻击。
[0006] 本发明采用的技术方案如下:
[0007] 本发明提供一种识别伪装LDNS请求的DD0S攻击的防护方法,包括以下步骤:
[0008] S1,当需要防护某一台授权DNS服务器时,向所述授权DNS服务器的前端或者向所 述授权DNS服务器的内部布置防护模块;
[0009] S2,所述防护模块存储最新的LDNS白名单列表;其中,所述LDNS白名单列表存储 全球正常LDNS的IP地址;
[0010] S3,所述防护模块实时获得各个正常LDNS到所述授权DNS服务器的TTL正常参考 值,然后存储各个正常LDNS的IP地址与TTL正常参考值的对映关系;其中,所述防护模块 实时维护最近设定时间长度内的历史TTL值列表,基于所述历史TTL值列表计算得到所述 TTL正常参考值;
[0011] S4,在所述授权DNS服务器运行时,当接收到异常数量的LDNS请求包时,则将所接 收到的各个LDNS请求包发送到所述防护模块;
[0012] 所述防护模块解析所接收到的LDNS请求包,获得所述LDNS请求包的源IP地址; 其中,所述LDNS请求包的源IP地址即为用于标识发送所述LDNS请求包的LDNS的IP地 址;然后判断所述源IP地址是否为所述LDNS白名单列表所存储的IP地址;如果是,则执行 S5 ;
[0013] S5,所述防护模块进一步解析所述LDNS请求包,获得所述LDNS请求包所携带的当 前TTL值;然后查找S3获得的对映关系,获得与所接收到的LDNS请求包的源IP地址对应 的TTL正常参考值;然后判断所述当前TTL值偏离所述TTL正常参考值的偏离度是否在设 定范围内,如果在,则执行S6 ;如果不在,则执行S7 ;
[0014] S6,所述防护模块得出当前接收到的所述LDNS请求包为正常包,将所述LDNS请求 包发送给所述授权DNS服务器,由所述授权DNS服务器对所述LDNS请求包进行域名解析; 同时,将所述当前TTL值增加到所述历史TTL值列表中,并计算得到新的TTL正常参考值, 用该新的TTL正常参考值更新S3存储的对映关系;
[0015] S7,所述防护模块得出当前接收到的所述LDNS请求包为攻击包,丢弃所述LDNS请 求包。
[0016] 优选的,S2中,所述防护模块存储最新的LDNS白名单列表,具体为:
[0017] 定期对全球范围内所有的授权DNS服务器的访问日志进行分析,得到最新的LDNS 白名单列表;
[0018] 然后将所得到的最新的LDNS白名单列表发送给各个授权DNS服务器所配置的防 护模块。
[0019] 优选的,S3中,所述防护模块通过以下方法实时获得各个正常LDNS到所述授权 DNS服务器的TTL正常参考值:
[0020] 所述防护模块实时维护最近设定时间长度内的历史TTL值列表,所述历史TTL值 列表由多个表项组成,每一个表项用于存储同一 LDNS的IP地址以及按时间顺序排列的历 史TTL值的映射关系,其中,所述历史TTL值指:LDNS请求包从LDNS到所述授权DNS服务 器所经过的路由条数;
[0021] 对于每一个LDNS所对应的多个历史TTL值,从所述多个历史TTL值中选取设定数 量的历史TTL值,然后计算所选取的各个历史TTL值的波动值,如果波动值小于波动正常 值,则得出所选取的设定数量的历史TTL值可作为参考样本的结论,然后再对所选取的设 定数量的历史TTL值进行计算,得到TTL正常参考值;如果波动值不小于波动正常值,则得 出所选取的设定数量的历史TTL值中存在异常请求包,则重新选择若干个历史TTL值,并重 新判断其能否作为参考样本。
[0022] 优选的,采用均方差或标准差计算方法,计算所选取的各个历史TTL值的波动值。
[0023] 优选的,所述波动正常值为:0· 2?0· 6。
[0024] 优选的,S4中,接收到异常数量的LDNS请求包是指:当在时间长度T1内接收到超 过设定阈值的LDNS请求包时,则为接收到异常数量的LDNS请求包。
[0025] 本发明还提供一种识别伪装LDNS请求的DD0S攻击的防护装置,所述防护装置布 置于需要被防护的授权DNS服务器的前端或内部;包括:
[0026] LDNS白名单列表维护模块,用于维护最新的LDNS白名单列表;其中,所述LDNS白 名单列表存储全球正常LDNS的IP地址;
[0027] 历史TTL值列表维护模块,用于实时维护最近设定时间长度内的历史TTL值列 表;
[0028] TTL正常参考值获取模块,用于根据所述历史TTL值列表维护模块所维护的历史 TTL值列表,实时获得各个正常LDNS到所述授权DNS服务器的TTL正常参考值;
[0029] 对映关系配置表,用于存储LDNS白名单列表维护模块所维护的全球正常LDNS的 IP地址以及所述TTL正常参考值获取模块所获取的TTL正常参考值的对映关系;
[0030] 异常情况判断模块,用于判断是否接收到异常数量的LDNS请求包;
[0031] 第一解析模块,用于当所述异常情况判断模块判断结果为是时,解析所接收到的 LDNS请求包,获得所述LDNS请求包的源IP地址;其中,所述LDNS请求包的源IP地址即为 用于标识发送所述LDNS请求包的LDNS的IP地址;
[0032] 第一判断模块,用于判断所述第一解析模块解析得到的源IP地址是否为所述 LDNS白名单列表维护模块所维护的IP地址;
[0033] 第二解析模块,用于当所述第一判断模块判断结果为是时,进一步解析所述LDNS 请求包,获得所述LDNS请求包所携带的当前TTL值;
[0034] 查找模块,用于当所述第一判断模块判断结果为是时,以所述第一解析模块解析 到的源IP地址为关键词,查找所述对映关系配置表,获得与所述源IP地址对应的TTL正常 参考值;
[0035] 第二判断模块,用于判断所述第二解析模块解析得到的当前TTL值偏离所述查找 模块查找到的TTL正常参考值的偏离度是否在设定范围内;
[0036] 正常包处理模块,用于当所述第二判断模块判断结果为在时,得出当前接收到的 所述LDNS请求包为正常包,将所述LDNS请求包发送给所述授权DNS服务器,由所述授权 DNS服务器对所述LDNS请求包进行域名解析;同时,将所述当前TTL值增加到所述历史TTL 值列表中,并计算得到新的TTL正常参考值,用该新的TTL正常参考值更新S3存储的对映 关系;
[0037] 攻击包处理模块,用于当所述第二判断模块判断结果为不在时,得出当前接收到 的所述LDNS请求包为攻击包,丢弃所述LDNS请求包。
[0038] 本发明提供的识别伪装LDNS请求的DD0S攻击的防护方法及装置具有以下优点:
[0039] 不需要依赖于网络运营商是否采取相关的路由控制策略,即可对权威DNS服务器 进行有效防护,使其不被DD0S攻击,具有防护效果好、CTO消耗低的优点。

【专利附图】

【附图说明】
[0040] 图1为本发明提供的识别伪装LDNS请求的DD0S攻击的防护方法的流程示意图;
[0041] 图2为防护模块设置在授权DNS服务器内部的结构示意图;
[0042] 图3为防护模块设置在授权DNS服务器前端的结构示意图;
[0043] 图4为本发明提供的识别伪装LDNS请求的DD0S攻击的防护装置的结构示意图。

【具体实施方式】
[0044] 以下结合附图对本发明进行详细说明:
[0045] 结合图1,本发明提供一种识别伪装LDNS请求的DD0S攻击的防护方法,包括以下 步骤:
[0046] S1,当需要防护某一台授权DNS服务器时,向所述授权DNS服务器的前端或者向所 述授权DNS服务器的内部布置防护模块;
[0047] S2,所述防护模块存储最新的LDNS白名单列表;其中,所述LDNS白名单列表存储 全球正常LDNS的IP地址;
[0048] 本步骤具体可采用以下方法实现:
[0049] 定期对全球范围内所有的授权DNS服务器的访问日志进行分析,得到最新的LDNS 白名单列表;
[0050] 然后将所得到的最新的LDNS白名单列表发送给各个授权DNS服务器所配置的防 护模块,从而能够使各个授权DNS服务器所配置的防护模块存储最新的LDNS白名单列表, 维护LDNS白名单列表的时效性,提高本发明防护方法的防效效果。
[0051] S3,所述防护模块实时获得各个正常LDNS到所述授权DNS服务器的TTL正常参考 值,然后存储各个正常LDNS的IP地址与TTL正常参考值的对映关系;其中,所述防护模块 实时维护最近设定时间长度内的历史TTL值列表,基于所述历史TTL值列表计算得到所述 TTL正常参考值;
[0052] 具体的,防护模块通过以下方法实时获得各个正常LDNS到授权DNS服务器的TTL 正常参考值:
[0053] (1)防护模块实时维护最近设定时间长度内的历史TTL值列表,所述历史TTL值列 表由多个表项组成,每一个表项用于存储同一 LDNS的IP地址以及按时间顺序排列的历史 TTL值的映射关系,其中,所述历史TTL值指:LDNS请求包从LDNS到所述授权DNS服务器所 经过的路由条数;
[0054] 以授权DNS服务器为授权DNS服务器-A为例,如表1所示,即为历史TTL值列表 的一种具体不例,在表1中,每一列即为一个表项,Tl、T2、T3、T4、T5为按时间先后顺序排 列的各个历史时间点。最近设定时间长度的数值根据实际需要灵活设定,例如,可设定为最 近100秒内。
[0055] 表1历史TTL值列表
[0056]

【权利要求】
1. 一种识别伪装LDNS请求的DDOS攻击的防护方法,其特征在于,包括以下步骤: S1,当需要防护某一台授权DNS服务器时,向所述授权DNS服务器的前端或者向所述授 权DNS服务器的内部布置防护模块; 52, 所述防护模块存储最新的LDNS白名单列表;其中,所述LDNS白名单列表存储全球 正常LDNS的IP地址; 53, 所述防护模块实时获得各个正常LDNS到所述授权DNS服务器的TTL正常参考值, 然后存储各个正常LDNS的IP地址与TTL正常参考值的对映关系;其中,所述防护模块实时 维护最近设定时间长度内的历史TTL值列表,基于所述历史TTL值列表计算得到所述TTL 正常参考值; 54, 在所述授权DNS服务器运行时,当接收到异常数量的LDNS请求包时,则将所接收到 的各个LDNS请求包发送到所述防护模块; 所述防护模块解析所接收到的LDNS请求包,获得所述LDNS请求包的源IP地址;其中, 所述LDNS请求包的源IP地址即为用于标识发送所述LDNS请求包的LDNS的IP地址;然后 判断所述源IP地址是否为所述LDNS白名单列表所存储的IP地址;如果是,则执行S5 ; 55, 所述防护模块进一步解析所述LDNS请求包,获得所述LDNS请求包所携带的当前 TTL值;然后查找S3获得的对映关系,获得与所接收到的LDNS请求包的源IP地址对应的 TTL正常参考值;然后判断所述当前TTL值偏离所述TTL正常参考值的偏离度是否在设定 范围内,如果在,则执行S6 ;如果不在,则执行S7 ; 56, 所述防护模块得出当前接收到的所述LDNS请求包为正常包,将所述LDNS请求包发 送给所述授权DNS服务器,由所述授权DNS服务器对所述LDNS请求包进行域名解析;同时, 将所述当前TTL值增加到所述历史TTL值列表中,并计算得到新的TTL正常参考值,用该新 的TTL正常参考值更新S3存储的对映关系; 57, 所述防护模块得出当前接收到的所述LDNS请求包为攻击包,丢弃所述LDNS请求 包。
2. 根据权利要求1所述的识别伪装LDNS请求的DD0S攻击的防护方法,其特征在于, S2中,所述防护模块存储最新的LDNS白名单列表,具体为: 定期对全球范围内所有的授权DNS服务器的访问日志进行分析,得到最新的LDNS白名 单列表; 然后将所得到的最新的LDNS白名单列表发送给各个授权DNS服务器所配置的防护模 块。
3. 根据权利要求1所述的识别伪装LDNS请求的DD0S攻击的防护方法,其特征在于,S3 中,所述防护模块通过以下方法实时获得各个正常LDNS到所述授权DNS服务器的TTL正常 参考值: 所述防护模块实时维护最近设定时间长度内的历史TTL值列表,所述历史TTL值列表 由多个表项组成,每一个表项用于存储同一 LDNS的IP地址以及按时间顺序排列的历史TTL 值的映射关系,其中,所述历史TTL值指:LDNS请求包从LDNS到所述授权DNS服务器所经 过的路由条数; 对于每一个LDNS所对应的多个历史TTL值,从所述多个历史TTL值中选取设定数量的 历史TTL值,然后计算所选取的各个历史TTL值的波动值,如果波动值小于波动正常值,则 得出所选取的设定数量的历史TTL值可作为参考样本的结论,然后再对所选取的设定数量 的历史TTL值进行计算,得到TTL正常参考值;如果波动值不小于波动正常值,则得出所选 取的设定数量的历史TTL值中存在异常请求包,则重新选择若干个历史TTL值,并重新判断 其能否作为参考样本。
4. 根据权利要求3所述的识别伪装LDNS请求的DDOS攻击的防护方法,其特征在于,采 用均方差或标准差计算方法,计算所选取的各个历史TTL值的波动值。
5. 根据权利要求3所述的识别伪装LDNS请求的DDOS攻击的防护方法,其特征在于,所 述波动正常值为:0.2?0.6。
6. 根据权利要求1所述的识别伪装LDNS请求的DDOS攻击的防护方法,其特征在于,S4 中,接收到异常数量的LDNS请求包是指:当在时间长度T1内接收到超过设定阈值的LDNS 请求包时,则为接收到异常数量的LDNS请求包。
7. -种识别伪装LDNS请求的DDOS攻击的防护装置,其特征在于,所述防护装置布置于 需要被防护的授权DNS服务器的前端或内部;包括: LDNS白名单列表维护模块,用于维护最新的LDNS白名单列表;其中,所述LDNS白名单 列表存储全球正常LDNS的IP地址; 历史TTL值列表维护模块,用于实时维护最近设定时间长度内的历史TTL值列表; TTL正常参考值获取模块,用于根据所述历史TTL值列表维护模块所维护的历史TTL值 列表,实时获得各个正常LDNS到所述授权DNS服务器的TTL正常参考值; 对映关系配置表,用于存储LDNS白名单列表维护模块所维护的全球正常LDNS的IP地 址以及所述TTL正常参考值获取模块所获取的TTL正常参考值的对映关系; 异常情况判断模块,用于判断是否接收到异常数量的LDNS请求包; 第一解析模块,用于当所述异常情况判断模块判断结果为是时,解析所接收到的LDNS 请求包,获得所述LDNS请求包的源IP地址;其中,所述LDNS请求包的源IP地址即为用于 标识发送所述LDNS请求包的LDNS的IP地址; 第一判断模块,用于判断所述第一解析模块解析得到的源IP地址是否为所述LDNS白 名单列表维护模块所维护的IP地址; 第二解析模块,用于当所述第一判断模块判断结果为是时,进一步解析所述LDNS请求 包,获得所述LDNS请求包所携带的当前TTL值; 查找模块,用于当所述第一判断模块判断结果为是时,以所述第一解析模块解析到的 源IP地址为关键词,查找所述对映关系配置表,获得与所述源IP地址对应的TTL正常参考 值; 第二判断模块,用于判断所述第二解析模块解析得到的当前TTL值偏离所述查找模块 查找到的TTL正常参考值的偏离度是否在设定范围内; 正常包处理模块,用于当所述第二判断模块判断结果为在时,得出当前接收到的所述 LDNS请求包为正常包,将所述LDNS请求包发送给所述授权DNS服务器,由所述授权DNS服 务器对所述LDNS请求包进行域名解析;同时,将所述当前TTL值增加到所述历史TTL值列 表中,并计算得到新的TTL正常参考值,用该新的TTL正常参考值更新S3存储的对映关系; 攻击包处理模块,用于当所述第二判断模块判断结果为不在时,得出当前接收到的所 述LDNS请求包为攻击包,丢弃所述LDNS请求包。
【文档编号】H04L29/06GK104125242SQ201410406691
【公开日】2014年10月29日 申请日期:2014年8月18日 优先权日:2014年8月18日
【发明者】彭扬 申请人:北京阅联信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1