CN103685317A - 用于域名***的防护方法和装置 - Google Patents
用于域名***的防护方法和装置 Download PDFInfo
- Publication number
- CN103685317A CN103685317A CN201310751233.0A CN201310751233A CN103685317A CN 103685317 A CN103685317 A CN 103685317A CN 201310751233 A CN201310751233 A CN 201310751233A CN 103685317 A CN103685317 A CN 103685317A
- Authority
- CN
- China
- Prior art keywords
- domain name
- cache hit
- level domain
- hit rate
- arbitrary
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种用于域名***的防护方法和装置。其中,该方法包括:获取与在第一时间间隔内接收的域名服务请求对应的多个N级域名中的每一N级域名对应的缓存命中率,N大于等于1;根据每一N级域名对应的缓存命中率判断是否存在针对多个N级域名中的任一N级域名的域名攻击;若判断出存在针对任一N级域名的域名攻击,则对任一N级域名进行防护处理。本发明解决了由于现有针对变换前缀攻击的防护方式准确性较差造成的防护效率较低的技术问题。
Description
技术领域
本发明涉及互联网安全领域,具体而言,涉及一种用于域名***的防护方法和装置。
背景技术
域名***DNS(Domain Name System)是因特网的一项核心服务,可以视为一个域名与网络协议IP(Internet Protocol)地址相互映射的分布式数据库,并向客户端提供相应的查询服务。其中,为提高处理效率及响应速度,DNS中通常设置有分布式的DNS缓存服务器,这些缓存服务器作为DNS向客户端提供的查询服务的接口,可以在接收到客户端发送的域名服务请求后,先在缓存服务器的查询是否缓存有上述域名与地址之间的映射的记录,若存在,则向客户端返回查询结果,若不存在,则向权威服务器发送递归查询请求。
从以上描述可以看出,DNS的正常工作是互联网正常运行中的不可或缺的一环,而DNS的安全问题也日益成为互联网安全领域中最重要的课题之一,其中,缓存不命中攻击目前已经成为DNS攻击的主要手段,其攻击方式通常是持续地向DNS的缓存节点如DNS缓存服务器发送大量的随机域名,由于随机域名在缓存节点中记录的可能性较低,从而出现大量的缓存不命中的情况,进而触发向权威服务器的递归查询,而在递归查询过程中,通常需要执行缓存节点与权威服务器的根服务器以下的多级权威服务器之间的多次交互,从而达到消耗缓存节点及其对应的权威服务器大量的处理能力和带宽资源的目的,更为严重时可以导致DNS的瘫痪。
缓存不命中攻击通常可以分为两类:1)整个域名的变换攻击;2)不断变化域名前缀的攻击或者说域名攻击。对于第一种类型来说,客户端可以不断发送由毫无意义的字母组合形成的域名,例如:1)Sadf.2ac3de.cc;2)Dfafa.3dfaf.org;3)5uoda.rewc.com,或者是基于某个字典发送一些看似有意义但很可能不存在的域名,例如:1)www.hillhillstone.com;2)www.hillstoneorg.com,等,这种攻击方式会导致整个DNS缓存服务器的拒绝服务。对于第二种类型来说,客户端可以不断发送仅前缀发生变化的域名,例如:1)Enqw.ab.com;2)Ww2w.abcd.com;3)4wwe.abcd.com,等,在这种方式在流量达到一定值时会导致ab.com域的DNS解析的瘫痪,达到更大流量时也可能导致整个DNS缓存服务器停止服务。
在当前的实际网络中,DNS攻击通常是出于商业利益的驱动,从而攻击者更倾向于使用上述第二种类型的攻击方式以使如ab.com域等二级域名对应的权威服务器停止响应,由于二级域名通常对应于某一具体企业,通过这一方式可以实现对特定域名的攻击,因而也可以称之为域名攻击。
现有的对此类域名攻击的防护方式通常采用是基于统计DNS缓存节点的缓存未命中的数量或者是该数量随时间的变化来实现对是否存在针对某一域名的攻击的判断,进而对受到攻击的域名进行防护处理。然而该方案中对具体哪一域名受到攻击的判断通常并不准确,从而影响到防护的效果。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种用于域名***的防护方法和装置,以至少解决由于现有针对变换前缀攻击的防护方式准确性较差造成的防护效率较低的技术问题。
根据本发明实施例的一个方面,提供了一种用于域名***的防护方法,包括:获取与在第一时间间隔内接收的域名服务请求对应的多个N级域名中的每一N级域名对应的缓存命中率,N大于等于1;根据上述每一N级域名对应的缓存命中率判断是否存在针对上述多个N级域名中的任一N级域名的域名攻击;若判断出存在针对上述任一N级域名的域名攻击,则对上述任一N级域名进行防护处理。
优选地,上述获取与在第一时间间隔内接收的域名服务请求对应的多个N级域名中的每一N级域名对应的缓存命中率包括:获取在上述第一时间间隔内接收的与上述每一N级域名对应的域名服务请求的总数;获取在上述第一时间间隔内接收的与上述每一N级域名对应的域名服务请求中缓存命中的域名服务请求的数量;将上述命中的域名服务请求的数量与上述总数之间的比值作为与上述每一N级域名对应的缓存命中率。
优选地,上述获取在上述第一时间间隔内接收的与上述每一N级域名对应的域名服务请求中缓存命中的域名服务请求的数量包括:获取上述缓存节点在上述第一时间间隔内转发的与上述每一N级域名相对应的递归查询请求的数量;将上述总数与转发的上述递归查询请求的数量之间的差值作为上述缓存命中的域名服务请求的数量。
优选地,上述根据上述每一N级域名对应的缓存命中率判断是否存在针对上述多个N级域名中的任一N级域名的域名攻击包括:若上述任一N级域名对应的缓存命中率小于等于第一阈值,则判断出存在针对上述任一N级域名的域名攻击。
优选地,上述根据上述每一N级域名对应的缓存命中率判断是否存在针对上述多个N级域名中的任一N级域名的域名攻击包括:根据上述任一N级域名对应的缓存命中率在上述多个N级域名所对应的多个缓存命中率中的分布情况判断是否存在针对上述任一N级域名的域名攻击。
优选地,上述根据上述任一N级域名对应的缓存命中率在上述多个N级域名所对应的多个缓存命中率中的分布情况判断是否存在针对上述任一N级域名的域名攻击包括:若上述任一N级域名对应的缓存命中率与上述多个缓存命中率的平均值之间的比值小于等于第二阈值,则判断出存在针对上述任一N级域名的域名攻击。
优选地,上述根据上述任一N级域名对应的缓存命中率在上述多个N级域名所对应的多个缓存命中率中的分布情况判断是否存在针对上述任一N级域名的域名攻击包括:若上述任一N级域名对应的缓存命中率属于上述多个缓存命中率中的最小的M个,则判断出存在针对上述任一N级域名的域名攻击,或者,若上述任一N级域名对应的缓存命中率属于上述多个缓存命中率中的最小的M个且上述任一N级域名对应的缓存命中率小于等于第三阈值,则判断出存在针对上述任一N级域名的域名攻击,M小于N。
优选地,上述对上述任一N级域名进行防护处理包括:停止转发与在第二时间间隔内接收的与上述任一N级域名对应的域名服务请求相对应的递归查询请求。
优选地,上述停止转发与在第二时间间隔内接收的与上述任一N级域名对应的域名服务请求相对应的递归查询请求包括:判断在上述第二时间间隔内接收的与上述任一N级域名对应的域名服务请求的源地址是否满足拦截条件;若满足上述拦截条件,则停止转发与在第二时间间隔内接收的与上述任一N级域名对应的域名服务请求相对应的递归查询请求。
优选地,在上述判断在第三时间间隔内接收的与上述任一N级域名对应的域名服务请求的源地址是否满足拦截条件之前,上述对上述任一N级域名进行防护处理还包括:统计在上述第一时间间隔内接收的与上述任一N级域名对应的域名服务请求中、源地址属于多个地址段中的每一地址段的域名服务请求的缓存命中率;根据统计的缓存命中率判断发起域名攻击的地址段;将源地址属于上述发起域名攻击的地址段作为上述拦截条件。
优选地,上述根据统计的缓存命中率判断发起域名攻击的地址段包括:根据上述统计的缓存命中率中与上述多个地址段中的每一地址段对应的缓存命中率在上述统计的缓存命中率中的分布情况判断上述发起域名攻击的地址段。
优选地,上述根据上述统计的缓存命中率中与上述每一地址段对应的缓存命中率在上述统计的缓存命中率中的分布情况判断上述发起域名攻击的地址段包括:若上述统计的缓存命中率中与上述多个地址段中的任一地址段对应的缓存命中率属于上述统计的缓存命中率中的最小的L个,则判断出上述任一地址段为上述发起域名攻击的地址段。
根据本发明实施例的另一方面,还提供了一种用于域名***的防护装置,包括:获取单元,用于获取与在第一时间间隔内接收的域名服务请求对应的多个N级域名中的每一N级域名对应的缓存命中率,N大于等于1;判断单元,用于根据上述每一N级域名对应的缓存命中率判断是否存在针对上述多个N级域名中的任一N级域名的域名攻击;防护单元,用于在判断出存在针对上述任一N级域名的域名攻击时,对上述任一N级域名进行防护处理。
优选地,上述获取单元包括:第一获取模块,用于获取在上述第一时间间隔内接收的与上述每一N级域名对应的域名服务请求的总数;第二获取模块,用于获取在上述第一时间间隔内接收的与上述每一N级域名对应的域名服务请求中缓存命中的域名服务请求的数量;第一处理模块,用于将上述命中的域名服务请求的数量与上述总数之间的比值作为与上述每一N级域名对应的缓存命中率。
优选地,上述第二获取模块包括:获取子模块,用于获取上述缓存节点在上述第一时间间隔内转发的与上述每一N级域名相对应的递归查询请求的数量;处理子模块,用于将上述总数与转发的上述递归查询请求的数量之间的差值作为上述缓存命中的域名服务请求的数量。
优选地,上述判断单元包括:第一判断模块,用于根据上述任一N级域名对应的缓存命中率在上述多个N级域名所对应的多个缓存命中率中的分布情况判断是否存在针对上述任一N级域名的域名攻击。
优选地,上述防护单元包括:停止模块,用于停止转发与在第二时间间隔内接收的与上述任一N级域名对应的域名服务请求相对应的递归查询请求。
优选地,上述停止模块包括:第一判断子模块,用于判断在上述第二时间间隔内接收的与上述任一N级域名对应的域名服务请求的源地址是否满足拦截条件;停止子模块,用于在满足上述拦截条件时,停止转发与在第二时间间隔内接收的与上述任一N级域名对应的域名服务请求相对应的递归查询请求。
优选地,上述防护单元还包括:统计模块,用于统计在上述第一时间间隔内接收的与上述任一N级域名对应的域名服务请求中、源地址属于多个地址段中的每一地址段的域名服务请求的缓存命中率;第二判断模块,用于根据统计的缓存命中率判断发起域名攻击的地址段;第二处理模块,用于将源地址属于上述发起域名攻击的地址段作为上述拦截条件。
优选地,上述第二判断模块包括:第二判断子模块,用于根据上述统计的缓存命中率中与上述多个地址段中的每一地址段对应的缓存命中率在上述统计的缓存命中率中的分布情况判断上述发起域名攻击的地址段。
在本发明实施例中,由于采用了统计多个N级域名中的每一个各自对应的缓存命中率而非缓存命中数或者未命中数等易于浮动的指标作为判断是否存在针对该多个N级域名中的任一个的判断依据,因此判断结果无关于上述第一时间间隔的长短以及在该第一时间间隔内所接收到的域名访问请求的浮动情况,从而可以相对准确地判断出是否存在针对任一N级域名的域名攻击,达到了提高对域名攻击的目标进行判断的准确性的目的,进而解决了由于现有针对变换前缀攻击的防护方式准确性较差造成的防护效率较低的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的用于域名***的防护方法的示意图;
图2是根据本发明实施例的一种可选的用于域名***的防护装置的示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
实施例1
根据本发明实施例,提供了一种用于域名***的防护方法,如图1所示,该方法包括:
S102:获取与在第一时间间隔内接收的域名服务请求对应的多个N级域名中的每一N级域名对应的缓存命中率,N大于等于1;
S104:根据每一N级域名对应的缓存命中率判断是否存在针对多个N级域名中的任一N级域名的域名攻击;
S106:若判断出存在针对任一N级域名的域名攻击,则对任一N级域名进行防护处理。
应当明确的是,本发明技术方案所要解决的问题之一是提供一种方法,用于对域名***DNS(Domain Name System)、尤其是***中的权威服务器进行防护,以克服如变换前缀等基于递归查询流量的域名攻击所造成的权威服务器处理压力过大、甚至是瘫痪的问题。
为解决这一问题,在本发明实施例中,通过步骤S106,可以根据判断出的受到攻击的具体的一个或多个N级域名进行防护处理,其中,由于域名攻击的对象通常是与二级域名或顶级域名对应的权威服务器,因此N通常可以是1或者2,然而本发明对此不作限定,上述防护方法同样适用于防护针对三级或更高等级的域名的攻击。
在步骤S106中,基于判断出的受到攻击的N级域名对与该N级域名对应的域名服务及其载体,比如缓存节点、权威服务器、根服务器等进行防护的方式可以有多种,例如,作为一种可选的方式,在本发明实施例中,步骤S106中所述的针对任一N级域名的防护处理可以包括:
S2:停止转发在第二时间间隔内接收的与任一N级域名对应的域名服务请求所对应的递归查询请求。
通过这一方式,与该任一N级域名对应的域名服务请求即便出现缓存未命中的情形,仍不会触发与该未命中的域名服务请求对应的递归查询请求,从而该任一N级域名所对应的权威服务器及其根服务器将不再响应于这些基于域名攻击所产生的递归查询请求而进行大量的交互查询操作,换而言之,实现了权威服务器与攻击源的隔离,这就解决了如变换前缀等基于递归查询流量的域名攻击所造成的权威服务器处理压力过大、甚至是瘫痪的问题。
由此可知,在上述场景下,对受到攻击的N级域名进行准确的确定就成为了问题的关键之一,若无法准确地判断出域名攻击是否是针对某一N级域名,则很容易造成对域名攻击的攻击目标的漏判和误判,从而导致受到攻击的N级域名无法得到有效的防护,或者是未受到攻击的N级域名被执行了不必要的防护处理,进而增大了正当的域名服务请求在缓存未命中的情形下无法获得域名解析服务的可能性,这也会降低DNS的工作效率及其可靠性。
为提高对作为域名攻击的目标的N级域名进行判断的准确性、进而提高域名***的防护效率及工作效率,根据本发明实施例提供的防护方法,在步骤S102中,可以获取与在第一时间间隔内接收的域名服务请求对应的多个N级域名中的每一N级域名对应的缓存命中率。
在本发明实施例中,域名服务请求通常可以表示客户端发送的用于获取与请求中携带的待查询域名相对应的网络协议IP(Internet Protocol)地址的请求,例如,用户通过某一客户端上的浏览器访问网页或者说与该网页对应的web服务器时,在浏览器的地址栏中输入的网页地址通常并非IP地址,而是包含web服务器的域名在内的统一资源定位符URL(UniformedResource Locator),然而客户端通常无法直接使用URL中的域名访问相应的web服务器,而是需要请求DNS返回与域名对应的IP地址,进而通过IP地址访问web服务器,其中,客户端向DNS发送的获取IP地址的请求即可以作为上述域名服务请求。
进一步地,在本发明实施例中,与某一域名服务请求对应的N级域名可以表示与该请求中的待查询域名对应的N级域名,或者说该待查询域名中的倒数第N个“.”以后的片段。例如,在一个实施例中,用户在浏览器的地址栏中输入的URL可以是:
http://sports.abcd.com.cn/abc/2013-12-27/01266954170.shtml,
其中,“sports.abcd.com.cn”表示网页文档所在的web服务器的域名,该域名可以携带在域名服务请求中发送给DNS服务器,其中,该域名和携带有该域名的域名服务请求所对应的顶级域名或者说一级域名是“.cn”,表示中国国家,其所对应的二级域名是“.com.cn”,表示工商企业,其所对应的三级域名是“.abcd.com.cn”,表示具体企业的网站,其所对应的四级域名是“sports.abcd.com.cn”,表示网站的分支。
当然,以上只是一种示例,并不会对本发明构成限定,例如,在本发明实施例中,域名服务请求及其携带的待查询域名所对应的顶级域名也可以是“.com”,这通常取决于域名服务的用户在注册域名时的考量。
进一步地,在本发明实施例中,与在第一时间间隔内接收的域名服务请求对应的多个N级域名可以表示在第一时间间隔内接收的多个域名服务请求各自对应的N级域名的并集,例如,在一个实施例中,在第一时间间隔内接收的3个域名服务请求依次携带有待查询域名:
1)news.abcd.com.cn;2)sports.abcd.com.cn;3)www.ab.com,
则该3个域名服务请求对应的多个一级域名可以包括“.cn”和“.com”,对应的多个二级域名可以包括“.com.cn”和“.ab.com”,对应的多个三级域名可以包括“abcd.com.cn”和“www.ab.com”。
一般而言,在本发明实施例中,上述第一时间间隔通常可以采用一个预定的监视周期,比如1s,从而防护装置可以以每秒流量为依据执行上述防护方法,然而本发明对此不作限定,其中,该第一时间间隔也可以是动态的,例如,在本发明的一些实施例中,即便通过上述防护方法确定了受到攻击的N级域名并启动了对该N级域名的防护处理,对于其他暂时未受到攻击的N级域名而言,仍然可以处于防护装置的监控下以及第一时间间隔内的累计计数过程中。
此外,在本发明实施例中,步骤S102中所称的缓存命中率的概念通常可以类似于为本领域技术人员所知的缓存命中率的概念,然而在本发明实施例中,该缓存命中率可以不仅限于以某一缓存节点所处理的全部域名服务请求的命中数与未命中数的统计结果为基础所获得的与该缓存节点及全部域名服务请求对应的缓存命中率,还可以进一步地基于对缓存节点所处理的所有域名服务请求中与任一N级域名对应的域名服务请求的命中数与未命中数的统计,以获得与该缓存节点所处理的与任一N级域名对应的缓存命中率。下面将结合表1和一个具体的实施例对上述概念进行详细阐述,其中,表1表示本实施例中在第一时间间隔内接收的、分别与二级域名“.com.cn”和“.ab.com”对应的域名服务请求在缓存节点的缓存命中状况的统计结果。
表1
二级域名 | 命中数 | 未命中数 | 命中率 |
.com.cn | 850 | 150 | 85% |
.ab.com | 50 | 200 | 20% |
如表1所示,在本实施例中,在第一时间间隔内接收到的域名服务请求中与二级域名“.com.cn”对应的域名服务请求的总数可以是1000,在这1000个域名服务请求中,缓存命中、或者说携带的待查询域名及其对应的IP地址已被缓存节点记录的域名服务请求有850个,作为对这些请求的响应,缓存节点通常可以直接返回对应的IP地址,缓存未命中、或者说携带的待查询域名及其对应的IP地址并未由缓存节点记录的域名服务请求有150个,从而与二级域名“.com.cn”对应的缓存命中率可以是命中数与总数的比值,也即85%。通过类似的处理方式,基于如表1第3行所示的针对与另一二级域名“.ab.com”对应的域名服务请求的缓存命中状况的统计结果可知,二级域名“.ab.com”对应的缓存命中率为20%。
换而言之,在本发明实施例中,步骤S102可以包括:
S4:获取在第一时间间隔内接收的与每一N级域名对应的域名服务请求的总数;
S6:获取在第一时间间隔内接收的与该每一N级域名对应的域名服务请求中缓存命中的域名服务请求的数量;
S8:将该命中的域名服务请求的数量与该总数之间的比值作为与该每一N级域名对应的缓存命中率。
当然,这并非步骤S102唯一的实现方式,例如,作为上述实施方式的等效方案,如前述实施例中基于表1所示的统计结果获取缓存命中率的方式,也可以根据在第一时间间隔内接收的与每一N级域名对应的域名服务请求中缓存命中的域名服务请求的数量以及在第一时间间隔内接收的与该每一N级域名对应的域名服务请求中缓存未命中的域名服务请求的数量得出与该每一N级域名对应的缓存命中率,等,本发明对此不作限定。
在另一方面,由于缓存命中这一事件或者缓存未命中的事件通常发生在缓存节点内,因此考虑到对缓存命中数或未命中数的直接统计需要修改缓存节点本身的处理逻辑所带来的实施与维护上的不便,进一步地,在本发明实施例中,还可以采用对缓存节点的入口和/或出口的数据包进行监控的方式来获取计算缓存命中率所需的数据,例如,上述步骤S4中所述的对与每一N级域名对应的域名服务请求的总数可以通过设置在缓存节点入口处的监控装置来完成,进一步可选地,该监控装置既可以用于监视缓存节点接收到的每一域名服务请求,也可以用于后续执行的对参与到域名攻击的域名服务请求的拦截,本发明对此不作限定。此外,在本发明实施例中,还可以通过对缓存节点出口处的监视对该缓存节点所处理的域名服务请求的命中状况进行判断,例如,可选地,上述步骤S6可以包括:
S10:获取所述缓存节点在所述第一时间间隔内发送的与所述每一N级域名相对应的递归查询请求的数量;
S12:将所述总数与发送的所述递归查询请求的数量之间的差值作为所述缓存命中的域名服务请求的数量。
通过上述实施例,对步骤S102的具体实施方式进行了描述,其中,通过该步骤S102,可以获取与在第一间间间隔内缓存节点所接收的域名服务请求对应的多个N级域名中的每一个所对应的缓存命中率。在此基础上,根据本发明实施例提供的防护方法,在步骤S104中,可以进一步地根据获取的缓存命中率判断是否存在针对多个N级域名中的任一N级域名的域名攻击,例如,若其中某一N级域名对应的缓存命中率明显偏低,或者是明显低于其他N级域名对应的缓存命中率,即可以判断出存在针对该N级域名的域名攻击,比如基于前述实施例中如表1所示的统计结果,二级域名“.ab.com”对应的缓存命中率为20%,明显低于缓存节点的缓存命中率的正常阈值,也明显低于二级域名“.com.cn”的缓存命中率85%,从而可以判断出存在针对二级域名“.ab.com”的域名攻击。
具体地,作为一种可选的方式,在本发明实施例中,步骤S104可以包括:
S14:若任一N级域名对应的缓存命中率小于等于第一阈值,则判断出存在针对该任一N级域名的域名攻击。
一般而言,根据经验数据,正常工作的缓存节点如DNS缓存服务器的平均缓存命中率可以达到85%到90%,在个别情况下,该平均缓存命中率可能会下降到80%,因此在本发明实施例中,上述第一阈值可以设置在75%到90%之间,可以根据缓存节点或者该缓存节点对应的权威服务器的处理能力而定,其中,当缓存节点的处理能力较弱时,可以采取较为严格的判断标准,比如将第一阈值设置为90%,当缓存节点的处理能力较强时,则相对可以容忍平均缓存命中率以及与个别N级域名对应的缓存命中率在一定程度上的下降,从而将第一阈值设置地相对较低一些。
当然,以上只是一种示例,并非对本发明的限定。其中,在本发明的一些实施例中,该第一阈值可以是一个预设的固定的数值,然而在本发明的另一些实施例中,该第一阈值也可以是浮动的,例如,在一些实施例中,该第一阈值可以随缓存节点的平均缓存命中率浮动,当平均缓存命中率较低时,则下调第一阈值,当平均缓存命中率较高时,则上调第一阈值,从而进一步地提高判断的准确性,本发明对此不作限定。
相对于现有方案,采用在任一N级域名对应的缓存命中率与第一阈值之间进行比较的方式可以获得是否存在针对该任一N级域名的域名攻击的更为准确的判断结果,然而在一些场景下,仅采用第一阈值作为参照仍难以全面地反映出缓存节点实际的缓存命中状况,从而导致对域名攻击的目标产生错误的判断,例如,对于上述第一阈值随平均缓存命中率浮动的实施方式,若同时存在针对两个以上的N级域名、分别记为第一N级域名和第二N级域名的域名攻击,且第一N级域名受到的域名攻击更为严重且流量更大,则缓存节点的平均缓存命中率会被拉低到一个较低的水平,在这一场景下,第二N级域名虽然同样受到攻击,然而第二N级域名对应的缓存命中率仍可能高于平均缓存命中率,从而导致对针对第二N级域名的域名攻击的漏判。
为解决这一问题,在本发明实施例中,可以结合上述固定的第一阈值与浮动的第一阈值,并采用多个判断条件来对域名攻击的攻击目标进行判断,例如,可选地,步骤S104可以包括:
S16:若满足以下条件至少之一则判断出存在针对任一N级域名的域名攻击:该任一N级域名对应的缓存命中率小于等于第一预设阈值、该任一N级域名对应的缓存命中率小于等于第一动态阈值,其中,该第一动态阈值根据用于处理上述在第一时间间隔内接收的域名服务请求的缓存节点的平均缓存命中率设置。
此外,作为另一种可选的方式,在本发明实施例中,步骤S104可以包括:
S18:根据任一N级域名对应的缓存命中率在多个N级域名所对应的多个缓存命中率中的分布情况判断是否存在针对该任一N级域名的域名攻击。
在本发明实施例中,上述分布情况可以视为比较判断方式的另一种表现形式,与前述实施例中的比较判断方式不同的是,在本实施例中,该任一N级域名对应的缓存命中率的不再是相对静态地与第一阈值进行比较,而是在多个N级域名所对应的多个缓存命中率之中动态地进行比较,例如,具体地,步骤S18可以包括:
S20:若任一N级域名对应的缓存命中率与多个缓存命中率的平均值之间的比值小于等于第二阈值,则判断出存在针对该任一N级域名的域名攻击。
就方案本身而言,这一实施方式与前述的使用平均缓存命中率作为第一阈值的比较判断方式相近,在上述多个N级域名的集合中包括了缓存节点处理的全部域名服务请求所携带的待查询域名所对应的N级域名时,相当于在前述实施例中使用第二阈值与多个缓存命中率的平均值的乘积作为第一阈值,从而可以达到类似的效果。
在另一方面,可选地,步骤S18还可以包括:
S22:若任一N级域名对应的缓存命中率属于多个缓存命中率中的最小的M个,则判断出存在针对该任一N级域名的域名攻击,或者,若任一N级域名对应的缓存命中率属于多个缓存命中率中的最小的M个且任一N级域名对应的缓存命中率小于等于第三阈值,则判断出存在针对该任一N级域名的域名攻击,M小于N。
在这一场景下,对域名攻击的攻击目标的判断则更多地依赖于任一N级域名的缓存命中率在多个N级域名对应的多个缓存命中率之中的分布情况,并将多个缓存命中率中较低的一个或多个所对应的一个或多个N级域名判断为域名攻击的攻击对象。进一步可选地,可以在初步判断出存在经过某一缓存节点的域名攻击、比如检测到该缓存节点的处理能力的消耗达到或超过预设阈值之后,采用如步骤S22所述的基于分布情况的判断方式相对准确地判断出作为域名攻击的目标的一个或多个N级域名,进而通过步骤S106对其进行防护处理。事实上,由于通过上述方式可以有效地将缓存节点的处理资源从处理与缓存命中率较低的N级域名对应的域名服务请求中解放出来,因此这一实施方式也可以用于在缓存节点处理压力过大的情形下对域名服务请求的限流。
通过上述实施例,对本发明的多种具体实施方式及其工作原理进行了阐述,然而应当理解的是,上述实施例仅用于对本发明技术方案的理解,并不意味着对本发明构成了限定。其中,在本发明的上述实施例中,由于采用了统计多个N级域名中的每一个各自对应的缓存命中率而非缓存命中数或者未命中数等易于浮动的指标作为判断是否存在针对该多个N级域名中的任一个的判断依据,因此判断结果无关于上述第一时间间隔的长短以及在该第一时间间隔内所接收到的域名访问请求的浮动情况,从而可以相对准确地判断出是否存在针对任一N级域名的域名攻击,达到了提高对域名攻击的目标进行判断的准确性的目的,进而解决了由于现有针对变换前缀攻击的防护方式准确性较差造成的防护效率较低的技术问题。
需要说明的是,作为本发明的可行的实施环境,上述防护方法通常可以实施在缓存节点、比如本地DNS缓存服务器上,然而本发明对此不作限定,上述方法也可以实施在任一提供域名缓存服务的缓存节点、或者是与该缓存节点存在数据连接的环境中。
在以上描述的基础上,在本发明实施例中,还可以进一步地对步骤S106中所述的防护处理方式进行优化,以进一步地提高防护装置及其所在的DNS的防护效率及工作效率。其中,作为一种可选的方式,在本发明实施例中,步骤S106可以包括:
S24:判断在第二时间间隔内接收的与任一N级域名对应的域名服务请求的源地址是否满足拦截条件;
S26:若满足拦截条件,则停止转发与在第二时间间隔内接收的与任一N级域名对应的域名服务请求相对应的递归查询请求。
在上述场景下,通过与域名服务请求的源地址关联的拦截条件的设置,可以进一步在域名服务请求的发送端对客户端进行细分,以区分正常访问的客户端与恶意攻击的客户端,从而达成基于对域名服务请求的收发两端进行判断的更为高效的防护策略。具体地,作为一种可行的实施方式,可以在设置在缓存节点的入口处的监控设备中设置两层过滤器,一层对应于步骤S24所述的基于拦截条件的判断,另一层对应于步骤S26所述的基于在步骤S104中被判断为域名攻击的目标的任一N级域名的判断。
通过上述方式,缓存节点可以对不涉及受到攻击的N级域名、或者是源地址不满足拦截条件或者说源地址安全的域名服务请求进行正常的处理,从而较大程度上地避免了正当的域名服务请求在缓存未命中的情形下无法获得域名解析服务的情形,进而在实现对域名攻击的有效防护的基础上提高了DNS的可靠性。
进一步地,本发明将提供一种可行的上述拦截条件的设置方式,其中,在步骤S24之前,步骤S106还可以包括:
S28:统计在第一时间间隔内接收的与任一N级域名对应的域名服务请求中、源地址属于多个地址段中的每一地址段的域名服务请求的缓存命中率;
S30:根据统计的缓存命中率判断发起域名攻击的地址段;
S32:将源地址属于发起域名攻击的地址段作为拦截条件。
其中,与任一N级域名对应的域名服务请求中、源地址属于多个地址段中的每一地址段的域名服务请求的缓存命中率可以表示缓存节点处理的同时满足以下两个条件的全部域名服务请求的缓存命中数与总数的比值:1)与任一N级域名对应;2)发出请求的源地址属于该每一地址段,其中,类似于前述实施例中对多个N级域名的定义,在本发明实施例中,多个地址段或者说IP段可以表示与该任一N级域名对应的全部域名服务请求的源地址的集合。下面将结合表2和一个具体的实施例来解释上述概念,其中,表2表示如表1所示的二级域名“.ab.com”对应的域名服务请求中分别对应不同的地址段的域名服务请求在缓存节点中的缓存命中状况的统计结果。
表2
地址段 | 缓存命中数 | 缓存未命中数 | 缓存命中率 |
10.100.0.0/16 | 36 | 4 | 90% |
10.101.0.0/16 | 9 | 1 | 90% |
10.200.0.0/16 | 3 | 97 | 3% |
10.201.0.0/16 | 2 | 98 | 2% |
如表2所示,在在本实施例中,表1中所示的与二级域名“.ab.com”对应的250个域名服务请求可以分别来自于4个地址段:
1)10.100.0.0/16;2)10.101.0.0/16;3)10.200.0.0/16;4)10.201.0.0/16,
其中,如表2所示,在第一时间间隔内接收到的域名服务请求中与二级域名“.ab.com”对应、且属于地址段10.100.0.0/16的域名服务请求的总数可以是40,在这40个域名服务请求中,缓存命中的有36个,缓存未命中的有4个,从而与二级域名“.ab.com”对应、且属于地址段10.100.0.0/16的域名服务请求的缓存命中率为90%。通过类似的处理方式,基于如表2第3行至第5行所示的针对与其他地址段对应的域名服务请求的缓存命中状况的统计结果可知,在与二级域名“.ab.com”对应的域名服务请求中,属于地址段“10.101.0.0/16”的域名服务请求的缓存命中率为90%,属于地址段“10.200.0.0/16”的域名服务请求的缓存命中率为90%,属于地址段“10.101.0.0/16”的域名服务请求的缓存命中率为90%。
类似于前述实施例中对表1所示的统计数据的获取方式,在本实施例中,与表2对应的统计数据同样可以通过设置在缓存节点的入口和/或出口的监控装置来完成,本发明在此不作累述。进一步地,基于获取的上述与每一地址段对应的缓存命中率,在步骤S30中,可以根据统计的缓存命中率判断出发起域名攻击的地址段,进而可以将源地址属于发起域名攻击的地址段作为上述拦截条件,例如,若其中某一地址段对应的缓存命中率明显偏低,或者是明显低于其他地址段对应的缓存命中率,即可以判断出域名攻击由该地址段发起,比如表2中所示地址段“10.200.0.0/16”和“10.201.0.0/16”。
进一步可选地,类似于前述实施例中所述的基于分布情况的判断方式,在本发明实施例中,步骤S30可以包括:
S34:根据统计的缓存命中率中与多个地址段中的每一地址段对应的缓存命中率在统计的缓存命中率中的分布情况判断发起域名攻击的地址段。
其中,可选地,步骤S34可以进一步包括:
S36:若统计的缓存命中率中与多个地址段中的任一地址段对应的缓存命中率属于统计的缓存命中率中的最小的L个,则判断出任一地址段为发起域名攻击的地址段。
通过上述实施方式,可以获得与前述实施例中所述的基于分布情况的判断方式类似的效果,本发明在此不作累述。
值得注意的是,本发明实施例中所使用的步骤标号S102、S104、……以及S2、S4、……等仅用于方便对本发明实施例的描述,该标号本身不应视为构成了对方法流程如执行次序或执行方式的限定,例如,在本发明的一些实施例中,如步骤S2所述的防护处理操作可以在如步骤S4至S8所述的缓存命中率的获取操作之后执行,且上述防护处理操作与获取操作之间还可以设置有如步骤S104所述的判断操作,等,本发明对此不作限定。应当理解的是,类似的实施方式均应视为在本发明的保护范围之内。
实施例2
根据本发明实施例,还提供了一种用于实施上述防护方法的防护装置,如图2所示,该装置包括:
1)获取单元202,用于获取与在第一时间间隔内接收的域名服务请求对应的多个N级域名中的每一N级域名对应的缓存命中率,N大于等于1;
2)判断单元204,用于根据每一N级域名对应的缓存命中率判断是否存在针对多个N级域名中的任一N级域名的域名攻击;
3)防护单元206,用于在判断单元204判断出存在针对该任一N级域名的域名攻击时,对该任一N级域名进行防护处理。
应当明确的是,本发明技术方案所要解决的问题之一是提供一种装置,用于对DNS尤其是DNS中的缓存***及权威服务器进行防护,以克服如变换前缀等基于递归查询流量的域名攻击所造成的权威服务器处理压力过大、甚至是瘫痪的问题。
为解决这一问题,在本发明实施例中,通过防护单元206,可以根据判断出的受到攻击的具体的一个或多个N级域名进行防护处理,其中,由于域名攻击的对象通常是与二级域名或顶级域名对应的权威服务器,因此N通常可以是1或者2,然而本发明对此不作限定,上述防护装置同样适用于防护针对三级或更高等级的域名的攻击。
在防护单元206中,基于判断出的受到攻击的N级域名对与该N级域名对应的域名服务及其载体,比如缓存节点、权威服务器、根服务器等进行防护的方式可以有多种,例如,作为一种可选的方式,在本发明实施例中,防护单元206可以包括:
1)截止模块,用于停止转发与在第二时间间隔内接收的与该任一N级域名对应的域名服务请求相对应的递归查询请求。
通过这一方式,与该任一N级域名对应的域名服务请求即便出现缓存未命中的情形,仍不会触发与该未命中的域名服务请求对应的递归查询请求,从而该任一N级域名所对应的权威服务器及其根服务器将不再响应于这些基于域名攻击所产生的递归查询请求而进行大量的交互查询操作,换而言之,实现了权威服务器与攻击源的隔离,这就解决了如变换前缀等基于递归查询流量的域名攻击所造成的权威服务器处理压力过大、甚至是瘫痪的问题。
由此可知,在上述场景下,对受到攻击的N级域名进行准确的确定就成为了问题的关键之一,若无法准确地判断出域名攻击是否是针对某一N级域名,则很容易造成对域名攻击的攻击目标的漏判和误判,从而导致受到攻击的N级域名无法得到有效的防护,或者是未受到攻击的N级域名被执行了不必要的防护处理,进而增大了正当的域名服务请求在缓存未命中的情形下无法获得域名解析服务的可能性,这也会降低DNS的工作效率及其可靠性。
为提高对作为域名攻击的目标的N级域名进行判断的准确性、进而提高域名***的防护效率及工作效率,根据本发明实施例提供的防护装置,在获取单元202中,可以获取与在第一时间间隔内接收的域名服务请求对应的多个N级域名中的每一N级域名对应的缓存命中率。
在本发明实施例中,域名服务请求通常可以表示客户端发送的用于获取与请求中携带的待查询域名相对应的网络协议IP(Internet Protocol)地址的请求,例如,用户通过某一客户端上的浏览器访问网页或者说与该网页对应的web服务器时,在浏览器的地址栏中输入的网页地址通常并非IP地址,而是包含web服务器的域名在内的统一资源定位符URL(UniformedResource Locator),然而客户端通常无法直接使用URL中的域名访问相应的web服务器,而是需要请求DNS返回与域名对应的IP地址,进而通过IP地址访问web服务器,其中,客户端向DNS发送的获取IP地址的请求即可以作为上述域名服务请求。
进一步地,在本发明实施例中,与某一域名服务请求对应的N级域名可以表示与该请求中的待查询域名对应的N级域名,或者说该待查询域名中的倒数第N个“.”以后的片段。例如,在一个实施例中,用户在浏览器的地址栏中输入的URL可以是:
http://sports.abcd.com.cn/abc/2013-12-27/01266954170.shtml,
其中,“sports.abcd.com.cn”表示网页文档所在的web服务器的域名,该域名可以携带在域名服务请求中发送给DNS服务器,其中,该域名和携带有该域名的域名服务请求所对应的顶级域名或者说一级域名是“.cn”,表示中国国家,其所对应的二级域名是“.com.cn”,表示工商企业,其所对应的三级域名是“.abcd.com.cn”,表示具体企业的网站,其所对应的四级域名是“sports.abcd.com.cn”,表示网站的分支。
当然,以上只是一种示例,并不会对本发明构成限定,例如,在本发明实施例中,域名服务请求及其携带的待查询域名所对应的顶级域名也可以是“.com”,这通常取决于域名服务的用户在注册域名时的考量。
进一步地,在本发明实施例中,与在第一时间间隔内接收的域名服务请求对应的多个N级域名可以表示在第一时间间隔内接收的多个域名服务请求各自对应的N级域名的并集,例如,在一个实施例中,在第一时间间隔内接收的3个域名服务请求依次携带有待查询域名:
1)news.abcd.com.cn;2)sports.abcd.com.cn;3)www.ab.com,
则该3个域名服务请求对应的多个一级域名可以包括“.cn”和“.com”,对应的多个二级域名可以包括“.com.cn”和“.ab.com”,对应的多个三级域名可以包括“abcd.com.cn”和“www.ab.com”。
一般而言,在本发明实施例中,上述第一时间间隔通常可以采用一个预定的监视周期,比如1s,从而防护装置可以以每秒流量为依据执行上述防护装置,然而本发明对此不作限定,其中,该第一时间间隔也可以是动态的,例如,在本发明的一些实施例中,即便通过上述防护装置确定了受到攻击的N级域名并启动了对该N级域名的防护处理,对于其他暂时未受到攻击的N级域名而言,仍然可以处于防护装置的监控下以及第一时间间隔内的累计计数过程中。
此外,在本发明实施例中,获取单元202中所称的缓存命中率的概念通常可以类似于为本领域技术人员所知的缓存命中率的概念,然而在本发明实施例中,该缓存命中率可以不仅限于以某一缓存节点所处理的全部域名服务请求的命中数与未命中数的统计结果为基础所获得的与该缓存节点及全部域名服务请求对应的缓存命中率,还可以进一步地基于对缓存节点所处理的所有域名服务请求中与任一N级域名对应的域名服务请求的命中数与未命中数的统计,以获得与该缓存节点所处理的与任一N级域名对应的缓存命中率。下面将结合实施例1中提供的表1和一个具体的实施例对上述概念进行详细阐述,其中,表1表示本实施例中在第一时间间隔内接收的、分别与二级域名“.com.cn”和“.ab.com”对应的域名服务请求在缓存节点的缓存命中状况的统计结果。
如表1所示,在本实施例中,在第一时间间隔内接收到的域名服务请求中与二级域名“.com.cn”对应的域名服务请求的总数可以是1000,在这1000个域名服务请求中,缓存命中、或者说携带的待查询域名及其对应的IP地址已被缓存节点记录的域名服务请求有850个,作为对这些请求的响应,缓存节点通常可以直接返回对应的IP地址,缓存未命中、或者说携带的待查询域名及其对应的IP地址并未由缓存节点记录的域名服务请求有150个,从而与二级域名“.com.cn”对应的缓存命中率可以是命中数与总数的比值,也即85%。通过类似的处理方式,基于如表1第3行所示的针对与另一二级域名“.ab.com”对应的域名服务请求的缓存命中状况的统计结果可知,二级域名“.ab.com”对应的缓存命中率为20%。
换而言之,在本发明实施例中,获取单元202可以包括:
1)第一获取模块,用于获取在第一时间间隔内接收的与每一N级域名对应的域名服务请求的总数;
2)第二获取模块,用于获取在第一时间间隔内接收的与该每一N级域名对应的域名服务请求中缓存命中的域名服务请求的数量;
3)第一处理模块,用于将该命中的域名服务请求的数量与该总数之间的比值作为与该每一N级域名对应的缓存命中率。
当然,这并非获取单元202唯一的实现方式,例如,作为上述实施方式的等效方案,如前述实施例中基于表1所示的统计结果获取缓存命中率的方式,也可以根据在第一时间间隔内接收的与每一N级域名对应的域名服务请求中缓存命中的域名服务请求的数量以及在第一时间间隔内接收的与该每一N级域名对应的域名服务请求中缓存未命中的域名服务请求的数量得出与该每一N级域名对应的缓存命中率,等,本发明对此不作限定。
在另一方面,由于缓存命中这一事件或者缓存未命中的事件通常发生在缓存节点内,因此考虑到对缓存命中数或未命中数的直接统计需要修改缓存节点本身的处理逻辑所带来的实施与维护上的不便,进一步地,在本发明实施例中,还可以采用对缓存节点的入口和/或出口的数据包进行监控的方式来获取计算缓存命中率所需的数据,例如,上述第一获取模块中所述的对与每一N级域名对应的域名服务请求的总数可以通过设置在缓存节点入口处的监控装置来完成,进一步可选地,该监控装置既可以用于监视缓存节点接收到的每一域名服务请求,也可以用于后续执行的对参与到域名攻击的域名服务请求的拦截,本发明对此不作限定。此外,在本发明实施例中,还可以通过对缓存节点出口处的监视对该缓存节点所处理的域名服务请求的命中状况进行判断,例如,可选地,上述第二获取模块可以包括:
1)第一获取子模块,用于获取所述缓存节点在所述第一时间间隔内发送的与所述每一N级域名相对应的递归查询请求的数量;
2)第一处理子模块,用于将所述总数与发送的所述递归查询请求的数量之间的差值作为所述缓存命中的域名服务请求的数量。
通过上述实施例,对获取单元202的具体实施方式进行了描述,其中,通过该获取单元202,可以获取与在第一间间间隔内缓存节点所接收的域名服务请求对应的多个N级域名中的每一个所对应的缓存命中率。在此基础上,根据本发明实施例提供的防护装置,在判断单元204中,可以进一步地根据获取的缓存命中率判断是否存在针对多个N级域名中的任一N级域名的域名攻击,例如,若其中某一N级域名对应的缓存命中率明显偏低,或者是明显低于其他N级域名对应的缓存命中率,即可以判断出存在针对该N级域名的域名攻击,比如基于前述实施例中如表1所示的统计结果,二级域名“.ab.com”对应的缓存命中率为20%,明显低于缓存节点的缓存命中率的正常阈值,也明显低于二级域名“.com.cn”的缓存命中率85%,从而可以判断出存在针对二级域名“.ab.com”的域名攻击。
具体地,作为一种可选的方式,在本发明实施例中,判断单元204可以包括:
1)第一判断模块,用于在任一N级域名对应的缓存命中率小于等于第一阈值时,判断出存在针对该任一N级域名的域名攻击。
一般而言,根据经验数据,正常工作的缓存节点如DNS缓存服务器的平均缓存命中率可以达到85%到90%,在个别情况下,该平均缓存命中率可能会下降到80%,因此在本发明实施例中,上述第一阈值可以设置在75%到90%之间,可以根据缓存节点或者该缓存节点对应的权威服务器的处理能力而定,其中,当缓存节点的处理能力较弱时,可以采取较为严格的判断标准,比如将第一阈值设置为90%,当缓存节点的处理能力较强时,则相对可以容忍平均缓存命中率以及与个别N级域名对应的缓存命中率在一定程度上的下降,从而将第一阈值设置地相对较低一些。
当然,以上只是一种示例,并非对本发明的限定。其中,在本发明的一些实施例中,该第一阈值可以是一个预设的固定的数值,然而在本发明的另一些实施例中,该第一阈值也可以是浮动的,例如,在一些实施例中,该第一阈值可以随缓存节点的平均缓存命中率浮动,当平均缓存命中率较低时,则下调第一阈值,当平均缓存命中率较高时,则上调第一阈值,从而进一步地提高判断的准确性,本发明对此不作限定。
相对于现有方案,采用在任一N级域名对应的缓存命中率与第一阈值之间进行比较的方式可以获得是否存在针对该任一N级域名的域名攻击的更为准确的判断结果,然而在一些场景下,仅采用第一阈值作为参照仍难以全面地反映出缓存节点实际的缓存命中状况,从而导致对域名攻击的目标产生错误的判断,例如,对于上述第一阈值随平均缓存命中率浮动的实施方式,若同时存在针对两个以上的N级域名、分别记为第一N级域名和第二N级域名的域名攻击,且第一N级域名受到的域名攻击更为严重且流量更大,则缓存节点的平均缓存命中率会被拉低到一个较低的水平,在这一场景下,第二N级域名虽然同样受到攻击,然而第二N级域名对应的缓存命中率仍可能高于平均缓存命中率,从而导致对针对第二N级域名的域名攻击的漏判。
为解决这一问题,在本发明实施例中,可以结合上述固定的第一阈值与浮动的第一阈值,并采用多个判断条件来对域名攻击的攻击目标进行判断,例如,可选地,判断单元204可以包括:
1)第一判断子模块,用于在满足以下条件至少之一时判断出存在针对任一N级域名的域名攻击:该任一N级域名对应的缓存命中率小于等于第一预设阈值、该任一N级域名对应的缓存命中率小于等于第一动态阈值,其中,该第一动态阈值根据用于处理上述在第一时间间隔内接收的域名服务请求的缓存节点的平均缓存命中率设置。
此外,作为另一种可选的方式,在本发明实施例中,判断单元204可以包括:
1)第二判断模块,用于根据任一N级域名对应的缓存命中率在多个N级域名所对应的多个缓存命中率中的分布情况判断是否存在针对该任一N级域名的域名攻击。
在本发明实施例中,上述分布情况可以视为比较判断方式的另一种表现形式,与前述实施例中的比较判断方式不同的是,在本实施例中,该任一N级域名对应的缓存命中率的不再是相对静态地与第一阈值进行比较,而是在多个N级域名所对应的多个缓存命中率之中动态地进行比较,例如,具体地,第二判断模块可以包括:
1)第二判断子模块,用于在任一N级域名对应的缓存命中率与多个缓存命中率的平均值之间的比值小于等于第二阈值时,判断出存在针对该任一N级域名的域名攻击。
就方案本身而言,这一实施方式与前述的使用平均缓存命中率作为第一阈值的比较判断方式相近,在上述多个N级域名的集合中包括了缓存节点处理的全部域名服务请求所携带的待查询域名所对应的N级域名时,相当于在前述实施例中使用第二阈值与多个缓存命中率的平均值的乘积作为第一阈值,从而可以达到类似的效果。
在另一方面,可选地,第二判断模块还可以包括:
1)第三判断子模块,用于在任一N级域名对应的缓存命中率属于多个缓存命中率中的最小的M个,则判断出存在针对该任一N级域名的域名攻击,或者,若任一N级域名对应的缓存命中率属于多个缓存命中率中的最小的M个且任一N级域名对应的缓存命中率小于等于第三阈值,则判断出存在针对该任一N级域名的域名攻击,M小于N。
在这一场景下,对域名攻击的攻击目标的判断则更多地依赖于任一N级域名的缓存命中率在多个N级域名对应的多个缓存命中率之中的分布情况,并将多个缓存命中率中较低的一个或多个所对应的一个或多个N级域名判断为域名攻击的攻击对象。进一步可选地,可以在初步判断出存在经过某一缓存节点的域名攻击、比如检测到该缓存节点的处理能力的消耗达到或超过预设阈值之后,采用如第三判断子模块所述的基于分布情况的判断方式相对准确地判断出作为域名攻击的目标的一个或多个N级域名,进而通过防护单元206对其进行防护处理。事实上,由于通过上述方式可以有效地将缓存节点的处理资源从处理与缓存命中率较低的N级域名对应的域名服务请求中解放出来,因此这一实施方式也可以用于在缓存节点处理压力过大的情形下对域名服务请求的限流。
通过上述实施例,对本发明的多种具体实施方式及其工作原理进行了阐述,然而应当理解的是,上述实施例仅用于对本发明技术方案的理解,并不意味着对本发明构成了限定。其中,在本发明的上述实施例中,由于采用了统计多个N级域名中的每一个各自对应的缓存命中率而非缓存命中数或者未命中数等易于浮动的指标作为判断是否存在针对该多个N级域名中的任一个的判断依据,因此判断结果无关于上述第一时间间隔的长短以及在该第一时间间隔内所接收到的域名访问请求的浮动情况,从而可以相对准确地判断出是否存在针对任一N级域名的域名攻击,达到了提高对域名攻击的目标进行判断的准确性的目的,进而解决了由于现有针对变换前缀攻击的防护方式准确性较差造成的防护效率较低的技术问题。
需要说明的是,作为本发明的可行的实施环境,上述防护装置通常可以实施在缓存节点、比如本地DNS缓存服务器上,然而本发明对此不作限定,上述装置也可以实施在任一提供域名缓存服务的缓存节点、或者是与该缓存节点存在数据连接的环境中。
在以上描述的基础上,在本发明实施例中,还可以进一步地对防护单元206中所述的防护处理方式进行优化,以进一步地提高防护装置及其所在的DNS的防护效率及工作效率。其中,作为一种可选的方式,在本发明实施例中,前述用于停止转发递归查询请求的停止模块可以包括:
1)第四判断子模块,用于判断在第二时间间隔内接收的与任一N级域名对应的域名服务请求的源地址是否满足拦截条件;
2)停止子模块,用于在满足拦截条件时,停止转发与在第二时间间隔内接收的与任一N级域名对应的域名服务请求相对应的递归查询请求。
在上述场景下,通过与域名服务请求的源地址关联的拦截条件的设置,可以进一步在域名服务请求的发送端对客户端进行细分,以区分正常访问的客户端与恶意攻击的客户端,从而达成基于对域名服务请求的收发两端进行判断的更为高效的防护策略。具体地,作为一种可行的实施方式,可以在设置在缓存节点的入口处的监控设备中设置两层过滤器,一层对应于第四判断子模块所述的基于拦截条件的判断,另一层对应于停止子模块所述的基于在判断单元204中被判断为域名攻击的目标的任一N级域名的判断。
通过上述方式,缓存节点可以对不涉及受到攻击的N级域名、或者是源地址不满足拦截条件或者说源地址安全的域名服务请求进行正常的处理,从而较大程度上地避免了正当的域名服务请求在缓存未命中的情形下无法获得域名解析服务的情形,进而在实现对域名攻击的有效防护的基础上提高了DNS的可靠性。
进一步地,本发明将提供一种可行的上述拦截条件的设置方式,其中,与第四判断子模块耦合地,防护单元206还可以包括:
1)统计模块,用于统计在第一时间间隔内接收的与任一N级域名对应的域名服务请求中、源地址属于多个地址段中的每一地址段的域名服务请求的缓存命中率;
2)第三判断模块,用于根据统计的缓存命中率判断发起域名攻击的地址段;
3)第二处理模块,用于将源地址属于发起域名攻击的地址段作为拦截条件。
其中,与任一N级域名对应的域名服务请求中、源地址属于多个地址段中的每一地址段的域名服务请求的缓存命中率可以表示缓存节点处理的同时满足以下两个条件的全部域名服务请求的缓存命中数与总数的比值:1)与任一N级域名对应;2)发出请求的源地址属于该每一地址段,其中,类似于前述实施例中对多个N级域名的定义,在本发明实施例中,多个地址段或者说IP段可以表示与该任一N级域名对应的全部域名服务请求的源地址的集合。下面将结合实施例1中提供的表2和一个具体的实施例来解释上述概念,其中,表2表示如表1所示的二级域名“.ab.com”对应的域名服务请求中分别对应不同的地址段的域名服务请求在缓存节点中的缓存命中状况的统计结果。
如表2所示,在在本实施例中,表1中所示的与二级域名“.ab.com”对应的250个域名服务请求可以分别来自于4个地址段:
1)10.100.0.0/16;2)10.101.0.0/16;3)10.200.0.0/16;4)10.201.0.0/16,
其中,如表2所示,在第一时间间隔内接收到的域名服务请求中与二级域名“.ab.com”对应、且属于地址段10.100.0.0/16的域名服务请求的总数可以是40,在这40个域名服务请求中,缓存命中的有36个,缓存未命中的有4个,从而与二级域名“.ab.com”对应、且属于地址段10.100.0.0/16的域名服务请求的缓存命中率为90%。通过类似的处理方式,基于如表2第3行至第5行所示的针对与其他地址段对应的域名服务请求的缓存命中状况的统计结果可知,在与二级域名“.ab.com”对应的域名服务请求中,属于地址段“10.101.0.0/16”的域名服务请求的缓存命中率为90%,属于地址段“10.200.0.0/16”的域名服务请求的缓存命中率为90%,属于地址段“10.101.0.0/16”的域名服务请求的缓存命中率为90%。
类似于前述实施例中对表1所示的统计数据的获取方式,在本实施例中,与表2对应的统计数据同样可以通过设置在缓存节点的入口和/或出口的监控装置来完成,本发明在此不作累述。进一步地,基于获取的上述与每一地址段对应的缓存命中率,在第三判断模块中,可以根据统计的缓存命中率判断出发起域名攻击的地址段,进而可以将源地址属于发起域名攻击的地址段作为上述拦截条件,例如,若其中某一地址段对应的缓存命中率明显偏低,或者是明显低于其他地址段对应的缓存命中率,即可以判断出域名攻击由该地址段发起,比如表2中所示地址段“10.200.0.0/16”和“10.201.0.0/16”。
进一步可选地,类似于前述实施例中所述的基于分布情况的判断方式,在本发明实施例中,第三判断模块可以包括:
1)第五判断子模块,用于根据统计的缓存命中率中与多个地址段中的每一地址段对应的缓存命中率在统计的缓存命中率中的分布情况判断发起域名攻击的地址段。
其中,可选地,第五判断子模块还可以进一步包括:
1)第六判断子模块,用于在统计的缓存命中率中与多个地址段中的任一地址段对应的缓存命中率属于统计的缓存命中率中的最小的L个时,判断出任一地址段为发起域名攻击的地址段。
通过上述实施方式,可以获得与前述实施例中所述的基于分布情况的判断方式类似的效果,本发明在此不作累述。
本发明提供了一些优选的实施例来进一步对本发明进行解释,但是值得注意的是,这些优选实施例只是为了更好的描述本发明,并不构成对本发明不当的限定。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (20)
1.一种用于域名***的防护方法,其特征在于,包括:
获取与在第一时间间隔内接收的域名服务请求对应的多个N级域名中的每一N级域名对应的缓存命中率,N大于等于1;
根据所述每一N级域名对应的缓存命中率判断是否存在针对所述多个N级域名中的任一N级域名的域名攻击;
若判断出存在针对所述任一N级域名的域名攻击,则对所述任一N级域名进行防护处理。
2.根据权利要求1所述的方法,其特征在于,所述获取与在第一时间间隔内接收的域名服务请求对应的多个N级域名中的每一N级域名对应的缓存命中率包括:
获取在所述第一时间间隔内接收的与所述每一N级域名对应的域名服务请求的总数;
获取在所述第一时间间隔内接收的与所述每一N级域名对应的域名服务请求中缓存命中的域名服务请求的数量;
将所述命中的域名服务请求的数量与所述总数之间的比值作为与所述每一N级域名对应的缓存命中率。
3.根据权利要求2所述的方法,其特征在于,所述获取在所述第一时间间隔内接收的与所述每一N级域名对应的域名服务请求中缓存命中的域名服务请求的数量包括:
获取所述缓存节点在所述第一时间间隔内转发的与所述每一N级域名相对应的递归查询请求的数量;
将所述总数与转发的所述递归查询请求的数量之间的差值作为所述缓存命中的域名服务请求的数量。
4.根据权利要求1所述的方法,其特征在于,所述根据所述每一N级域名对应的缓存命中率判断是否存在针对所述多个N级域名中的任一N级域名的域名攻击包括:
若所述任一N级域名对应的缓存命中率小于等于第一阈值,则判断出存在针对所述任一N级域名的域名攻击。
5.根据权利要求1所述的方法,其特征在于,所述根据所述每一N级域名对应的缓存命中率判断是否存在针对所述多个N级域名中的任一N级域名的域名攻击包括:
根据所述任一N级域名对应的缓存命中率在所述多个N级域名所对应的多个缓存命中率中的分布情况判断是否存在针对所述任一N级域名的域名攻击。
6.根据权利要求5所述的方法,其特征在于,所述根据所述任一N级域名对应的缓存命中率在所述多个N级域名所对应的多个缓存命中率中的分布情况判断是否存在针对所述任一N级域名的域名攻击包括:
若所述任一N级域名对应的缓存命中率与所述多个缓存命中率的平均值之间的比值小于等于第二阈值,则判断出存在针对所述任一N级域名的域名攻击。
7.根据权利要求5所述的方法,其特征在于,所述根据所述任一N级域名对应的缓存命中率在所述多个N级域名所对应的多个缓存命中率中的分布情况判断是否存在针对所述任一N级域名的域名攻击包括:
若所述任一N级域名对应的缓存命中率属于所述多个缓存命中率中的最小的M个,则判断出存在针对所述任一N级域名的域名攻击,或者,若所述任一N级域名对应的缓存命中率属于所述多个缓存命中率中的最小的M个且所述任一N级域名对应的缓存命中率小于等于第三阈值,则判断出存在针对所述任一N级域名的域名攻击,M小于N。
8.根据权利要求1至7中任一项所述的方法,其特征在于,所述对所述任一N级域名进行防护处理包括:
停止转发与在第二时间间隔内接收的与所述任一N级域名对应的域名服务请求相对应的递归查询请求。
9.根据权利要求8所述的方法,其特征在于,所述停止转发与在第二时间间隔内接收的与所述任一N级域名对应的域名服务请求相对应的递归查询请求包括:
判断在所述第二时间间隔内接收的与所述任一N级域名对应的域名服务请求的源地址是否满足拦截条件;
若满足所述拦截条件,则停止转发与在第二时间间隔内接收的与所述任一N级域名对应的域名服务请求相对应的递归查询请求。
10.根据权利要求9所述的方法,其特征在于,在所述判断在所述第二时间间隔内接收的与所述任一N级域名对应的域名服务请求的源地址是否满足拦截条件之前,所述对所述任一N级域名进行防护处理还包括:
统计在所述第一时间间隔内接收的与所述任一N级域名对应的域名服务请求中、源地址属于多个地址段中的每一地址段的域名服务请求的缓存命中率;
根据统计的缓存命中率判断发起域名攻击的地址段;
将源地址属于所述发起域名攻击的地址段作为所述拦截条件。
11.根据权利要求10所述的方法,其特征在于,所述根据统计的缓存命中率判断发起域名攻击的地址段包括:
根据所述统计的缓存命中率中与所述多个地址段中的每一地址段对应的缓存命中率在所述统计的缓存命中率中的分布情况判断所述发起域名攻击的地址段。
12.根据权利要求11所述的方法,其特征在于,所述根据所述统计的缓存命中率中与所述每一地址段对应的缓存命中率在所述统计的缓存命中率中的分布情况判断所述发起域名攻击的地址段包括:
若所述统计的缓存命中率中与所述多个地址段中的任一地址段对应的缓存命中率属于所述统计的缓存命中率中的最小的L个,则判断出所述任一地址段为所述发起域名攻击的地址段。
13.一种用于域名***的防护装置,其特征在于,包括:
获取单元,用于获取与在第一时间间隔内接收的域名服务请求对应的多个N级域名中的每一N级域名对应的缓存命中率,N大于等于1;
判断单元,用于根据所述每一N级域名对应的缓存命中率判断是否存在针对所述多个N级域名中的任一N级域名的域名攻击;
防护单元,用于在判断出存在针对所述任一N级域名的域名攻击时,对所述任一N级域名进行防护处理。
14.根据权利要求13所述的装置,其特征在于,所述获取单元包括:
第一获取模块,用于获取在所述第一时间间隔内接收的与所述每一N级域名对应的域名服务请求的总数;
第二获取模块,用于获取在所述第一时间间隔内接收的与所述每一N级域名对应的域名服务请求中缓存命中的域名服务请求的数量;
第一处理模块,用于将所述命中的域名服务请求的数量与所述总数之间的比值作为与所述每一N级域名对应的缓存命中率。
15.根据权利要求14所述的装置,其特征在于,所述第二获取模块包括:
获取子模块,用于获取所述缓存节点在所述第一时间间隔内转发的与所述每一N级域名相对应的递归查询请求的数量;
处理子模块,用于将所述总数与转发的所述递归查询请求的数量之间的差值作为所述缓存命中的域名服务请求的数量。
16.根据权利要求13所述的装置,其特征在于,所述判断单元包括:
第一判断模块,用于根据所述任一N级域名对应的缓存命中率在所述多个N级域名所对应的多个缓存命中率中的分布情况判断是否存在针对所述任一N级域名的域名攻击。
17.根据权利要求13至16中任一项所述的装置,其特征在于,所述防护单元包括:
停止模块,用于停止转发与在第二时间间隔内接收的与所述任一N级域名对应的域名服务请求相对应的递归查询请求。
18.根据权利要求17所述的装置,其特征在于,所述停止模块包括:
第一判断子模块,用于判断在所述第二时间间隔内接收的与所述任一N级域名对应的域名服务请求的源地址是否满足拦截条件;
停止子模块,用于在满足所述拦截条件时,停止转发与在第二时间间隔内接收的与所述任一N级域名对应的域名服务请求相对应的递归查询请求。
19.根据权利要求18所述的装置,其特征在于,所述防护单元还包括:
统计模块,用于统计在所述第一时间间隔内接收的与所述任一N级域名对应的域名服务请求中、源地址属于多个地址段中的每一地址段的域名服务请求的缓存命中率;
第二判断模块,用于根据统计的缓存命中率判断发起域名攻击的地址段;
第二处理模块,用于将源地址属于所述发起域名攻击的地址段作为所述拦截条件。
20.根据权利要求19所述的装置,其特征在于,所述第二判断模块包括:
第二判断子模块,用于根据所述统计的缓存命中率中与所述多个地址段中的每一地址段对应的缓存命中率在所述统计的缓存命中率中的分布情况判断所述发起域名攻击的地址段。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310751233.0A CN103685317A (zh) | 2013-12-31 | 2013-12-31 | 用于域名***的防护方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310751233.0A CN103685317A (zh) | 2013-12-31 | 2013-12-31 | 用于域名***的防护方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103685317A true CN103685317A (zh) | 2014-03-26 |
Family
ID=50321631
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310751233.0A Pending CN103685317A (zh) | 2013-12-31 | 2013-12-31 | 用于域名***的防护方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103685317A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104144165A (zh) * | 2014-08-11 | 2014-11-12 | 互联网域名***北京市工程研究中心有限公司 | 一种抗dns死域攻击的缓存方法及*** |
CN104618354A (zh) * | 2015-01-19 | 2015-05-13 | 中国科学院信息工程研究所 | 一种抵抗持续性变域名前缀攻击的缓存优化方法和*** |
CN108259198A (zh) * | 2016-12-28 | 2018-07-06 | ***通信集团辽宁有限公司 | 一种域名缓存命中率的预判方法、装置及设备 |
CN108667782A (zh) * | 2017-04-01 | 2018-10-16 | 贵州白山云科技有限公司 | 一种用于DNS服务的DDoS攻击防御方法及*** |
CN110581842A (zh) * | 2019-08-19 | 2019-12-17 | 网宿科技股份有限公司 | Dns请求的处理方法及服务器 |
CN113556342A (zh) * | 2021-07-21 | 2021-10-26 | 江南信安(北京)科技有限公司 | 一种dns缓存服务器前缀变化攻击防护方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101572701A (zh) * | 2009-02-10 | 2009-11-04 | 中科正阳信息安全技术有限公司 | 针对DNS服务的抗DDoS攻击安全网关*** |
CN103001825A (zh) * | 2012-11-15 | 2013-03-27 | 中国科学院计算机网络信息中心 | Dns流量异常的检测方法和*** |
-
2013
- 2013-12-31 CN CN201310751233.0A patent/CN103685317A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101572701A (zh) * | 2009-02-10 | 2009-11-04 | 中科正阳信息安全技术有限公司 | 针对DNS服务的抗DDoS攻击安全网关*** |
CN103001825A (zh) * | 2012-11-15 | 2013-03-27 | 中国科学院计算机网络信息中心 | Dns流量异常的检测方法和*** |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104144165A (zh) * | 2014-08-11 | 2014-11-12 | 互联网域名***北京市工程研究中心有限公司 | 一种抗dns死域攻击的缓存方法及*** |
CN104618354A (zh) * | 2015-01-19 | 2015-05-13 | 中国科学院信息工程研究所 | 一种抵抗持续性变域名前缀攻击的缓存优化方法和*** |
CN104618354B (zh) * | 2015-01-19 | 2018-04-27 | 中国科学院信息工程研究所 | 一种抵抗持续性变域名前缀攻击的缓存优化方法和*** |
CN108259198A (zh) * | 2016-12-28 | 2018-07-06 | ***通信集团辽宁有限公司 | 一种域名缓存命中率的预判方法、装置及设备 |
CN108259198B (zh) * | 2016-12-28 | 2021-08-06 | ***通信集团辽宁有限公司 | 一种域名缓存命中率的预判方法、装置及设备 |
CN108667782A (zh) * | 2017-04-01 | 2018-10-16 | 贵州白山云科技有限公司 | 一种用于DNS服务的DDoS攻击防御方法及*** |
CN108667782B (zh) * | 2017-04-01 | 2021-03-23 | 贵州白山云科技股份有限公司 | 一种用于DNS服务的DDoS攻击防御方法及*** |
CN110581842A (zh) * | 2019-08-19 | 2019-12-17 | 网宿科技股份有限公司 | Dns请求的处理方法及服务器 |
CN113556342A (zh) * | 2021-07-21 | 2021-10-26 | 江南信安(北京)科技有限公司 | 一种dns缓存服务器前缀变化攻击防护方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103685317A (zh) | 用于域名***的防护方法和装置 | |
Hao et al. | Understanding the domain registration behavior of spammers | |
CN103152357B (zh) | 一种针对dns服务的防御方法、装置和*** | |
Passerini et al. | Fluxor: Detecting and monitoring fast-flux service networks | |
CN101674293B (zh) | 一种分布式应用中处理非正常请求的方法及*** | |
CN102291390B (zh) | 一种基于云计算平台的防御拒绝服务攻击的方法 | |
CN101841442B (zh) | 一种在名址分离网络中对网络异常进行检测的方法 | |
CN102739683B (zh) | 一种网络攻击过滤方法及装置 | |
CN109951500A (zh) | 网络攻击检测方法及装置 | |
CN103685294B (zh) | 拒绝服务攻击的攻击源的识别方法和装置 | |
US9680842B2 (en) | Detecting co-occurrence patterns in DNS | |
US20130312081A1 (en) | Malicious code blocking system | |
CN104506525B (zh) | 防止恶意抓取的方法和防护装置 | |
US9300684B2 (en) | Methods and systems for statistical aberrant behavior detection of time-series data | |
CN105553974A (zh) | 一种http慢速攻击的防范方法 | |
CN101150586A (zh) | Cc攻击防范方法及装置 | |
CN104954384B (zh) | 一种保护Web应用安全的url拟态方法 | |
CN106357685A (zh) | 一种防御分布式拒绝服务攻击的方法及装置 | |
CN108270778B (zh) | 一种dns域名异常访问检测方法及装置 | |
CN106961422B (zh) | 一种dns递归服务器的拟态安全方法及装置 | |
CN103856487A (zh) | 一种对授权域dns服务器的防护方法及*** | |
CN103916379A (zh) | 一种基于高频统计的cc攻击识别方法及*** | |
CN105939320A (zh) | 处理报文的方法及装置 | |
CN106411819A (zh) | 一种识别代理互联网协议地址的方法及装置 | |
CN106888192A (zh) | 一种抵抗dns攻击的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140326 |
|
RJ01 | Rejection of invention patent application after publication |