一种域名递归服务的预判干预方法

文档序号:7779544阅读:168来源:国知局
一种域名递归服务的预判干预方法
【专利摘要】本发明公开了一种域名递归服务的预判干预方法。本方法为:1)选取待监控的域名,预判系统将递归服务器中待监控域名的资源记录同步到本地;2)对每个域名的资源记录进行监控;3)如果发现域名的设定类型记录发生变化,则获取该域名的特征数据并利用分类器进行识别,判断该域名的资源记录变化是否为危险变化;如果危险变化为权威服务器发生变化,则向该域名的原权威服务器请求NS记录和Glue记录,并将其写入递归服务器缓存中;如果权威服务器未发生变化,则延长该域名在递归服务器缓存中的原资源记录的生存时间;如果为否定异常或区不可达,则延长递归服务器缓存里该域名资源记录集的生存时间;本发明可提高递归服务器和用户的安全。
【专利说明】一种域名递归服务的预判干预方法
【技术领域】
[0001]本发明涉及一种域名递归服务的预判干预方法,属于计算机网络【技术领域】。
【背景技术】
[0002]域名系统及其安全状态:
[0003]作为互联网的重要基础设施,域名系统(Domain Name System, DNS)一直为全球互联网的运行提供关键性的基础服务。随着互联网规模爆炸式增长,DNS相关的各种新技术相继出现,如IPv6、多语种域名和DNS安全扩展协议(DNS Security Extension, DNSSEC)等,DNS系统也由此变得越来越庞杂。由于在设计之初对安全性和扩展性考虑欠缺,域名系统在协议、实现和操作上存在着固有的不足与脆弱,进而使其面临着很多安全威胁。其中,数据损坏中的部分威胁(如权威服务器信息的未经授权更改、域名劫持、递归服务器缓存中毒和人为配置错误等)和拒绝服务造成递归服务器的解析状态从安全变得相对危险,使其缓存了域名的错误解析数据或者向客户端返回否定应答。
[0004]域名任何类型(如A记录、CNAME记录或NS记录等)的资源记录(集)都可能发生变化,这些变化可能是危险变化,也可能是安全变化。比如域名所有者更换域名应用的网络运营商时,通常会改变A记录中的数据部分里的IP地址,就是一种安全变化;假定我们知道一黑客通过域名劫持修改了域名的A记录数据部分中的IP地址,那么这就是一种危险变化。当域名的某资源记录发生变化时,我们称这个变化为域名记录变化。如果通过一定的手段确定该变化是危险变化,那么我们称之为记录危险变化。特别地,当权威服务器无法正常地响应递归服务器(解析器)时,我们称之为否定异常变化,如名字错误应答和没有数据应答(No Data)等。
[0005]权威服务器信息的未经授权更改、域名劫持、递归服务器缓存中毒和人为配置错误都是域名记录的危险变化,都会造成递归服务器缓存了错误的记录数据。解析数据发生变化或者由原来的肯定应答数据变成否定应答数据,都看作是解析数据的变化。
[0006]权威服务器的拒绝服务和人工错误配置会造成域名发生否定异常变化。拒绝服务分为针对DNS服务器的攻击和针对网络基础设施的服务器的攻击,当某域名区权威服务器遭到拒绝服务攻击时,如果某递归服务器向该权威服务器查询其管理的区中的资源记录,那么它将面临三种可能的权威服务器表现形式:一是收到该权威服务器发来的服务器失败(Server Failure, Servfail)等类型响应;二是不可达(Unreachable),即从某个权威服务器收不到任何响应;最后,区不可达(Zone Unreachable).“区不可达”就是当所有服务器出现问题而无法正常应答递归服务器请求时的权威服务器状态。当黑客对部分权威服务器发动攻击而造成其响应缓慢,那么递归服务器会因选择这些服务器做查询请求而延迟获得应答;当黑客对所有权威服务器进行攻击并使它们都无法应答外界请求时,那么递归服务器可能完全无法获得区数据,即该区因此而不可达了。“区不可达”的结果是递归服务器无法正常地回应客户端,并最终导致客户端无法访问域名提供的服务。
[0007]虽然递归服务器的缓存机制降低了服务器端的负载和查询延迟,从而提高了递归服务器的性能,但是如果某递归服务器缓存了某个域名,那么在该域名的缓存数据在缓存中处于有效期期间,当该域名的权威服务器因为某种原因而无法正常、正确地响应外界对该域名的任何请求,直到该域名在该缓存中过期也没有恢复,那么当递归服务器再次以递归方式解析此域名时,就可能丢掉了正确数据,而缓存了错误数据或否定数据。其中,如果域名发生危险资源记录变化,那么缓存了错误的数据;如果域名发生了否定异常变化,那么缓存了否定数据。
[0008]资源记录危险变化或者否定异常变化既对用户有影响,又对递归服务器有影响。首先,当域名资源记录发生危险变化或否定异常变化时,使用此递归服务器解析服务的DNS应用将被重定向到非目标服务器或根本无法访问任何服务器,这会影响使用这些递归服务器服务用户的上网安全,或者使他们无法上网。其次,某些域名的请求量巨大,其所在权威服务器一旦发生问题,若DNS应用有滥用DNS的故障,那么客户端将发送大量请求给递归服务器。作为在DNS层次树的链条中的一个重要部分,递归服务器可能受到冲击而影响正常的服务。
[0009]虽然根据DNS协议分散管理的原则,权威服务器对自己管理的区中的域名负有主要责任。但另一方面,如果用户的DNS应用被重定向到非法网站,那么递归服务器的用户可能遭受损失;如果因为域名权威服务器的问题而无法访问域名应用,那么用户也将可能有损失。因此,本着服务用户、对用户负责的原则和保证递归服务器安全、稳定的考虑,需要对递归服务器做一些安全防护工作,以提高其用户的上网安全和自身的可访问性。
[0010]总之,递归服务器的缓存机制导致不能及时地发现权威服务器的异常状态。问题发现的滞后性影响到了递归服务器本身的解析质量和解析安全,进而降低其解析服务的可访问性和客户端的上网安全。

【发明内容】

[0011]针对现有技术中存在的问题,本发明的目的在于提供一种域名递归服务的预判干预方法。
[0012]本发明不仅试图降低DNS查询的网络延迟,还试着增强递归服务器的解析安全;本发明不是简单地预取资源记录,而是在预取的基础上,根据域名的相关信息判断和干预递归服务器的状态,进而保证递归服务器的解析安全和数据安全。
[0013]本发明提出了一个适用于递归服务器解析安全状态的预处理方法。监测递归服务器缓存内的域名资源记录集,在它们过期前的一段时间之前,通过有针对性的方法判断它们的解析状态,并在发现危险时进行适当地干预,避免突发因素影响递归服务器的解析安全,从而保证递归服务器处于解析安全状态,保证递归服务器缓存数据的正确性,进而保证其用户的上网安全。
[0014]本发明的技术方案为:
[0015]一种域名递归服务的预判干预方法,其步骤为:
[0016]I)选取待监控的域名,预判系统将递归服务器中待监控域名及其设定类型的资源记录同步到本地;
[0017]2)预判系统对每个域名的资源记录从T1-T时刻开始进行监控直至该域名的资源记录到期;其中,Ti为第i个域名的资源记录到期时刻,T为设定时间长度;[0018]3)如果发现域名的设定类型记录发生变化,预判系统则获取该域名的设定特征数据,然后利用所训练的分类器对该域名的特征数据进行识别,判断该域名的资源记录变化是否为危险变化;
[0019]31)如果发生危险变化,且权威服务器发生变化,则预判系统向该域名的原权威服务器请求NS记录和Glue记录,并将其写入递归服务器缓存中;
[0020]32)如果发生危险变化,但权威服务器未发生变化,则预判系统延长该域名在递归服务器缓存中的原资源记录集、NS记录和Glue记录的生存时间;
[0021]33)如果发生危险变化为否定异常或区不可达,则预判系统延长递归服务器缓存里该域名资源记录集的生存时间;并对该域名状态进行监控,当发现恢复时,将递归服务器缓存内的该域名资源记录集更新为从恢复的该域名所在权威服务器获取的记录集或者删除;
[0022]34)如果发生危险变化为权威服务器不响应,则从递归服务器缓存中删除掉该权威服务器的资源记录,并对该权威服务器进行监控,该权威服务器状态恢复后将与其相关的NS记录重新添加到递归服务器的缓存中。
[0023]进一步的,所述特征数据包括:域名长度、域名注册时长、TTL变化大小、网络延迟变化度、域名过期剩余时长。
[0024]进一步的,所述设定类型的资源记录为A记录或NS记录;所述预判系统从递归服务器获取该域名的A记录、NS记录、PTR记录和MX记录的资源记录集,获取该域名到权威服务器、域名应用服务器的网络延迟数据,从whois数据库查询获取该域名的域名信息;然后从所获取数据中提取该域名的所述特征数据。
[0025]进一步的,所述预判系统通过对域名的资源记录进行标记,标记为安全变化还是危险变化,得到一组样本数据;然后利用该样本数据和决策树算法、贝叶斯分类器算法或支持向量机获得所述分类器。
[0026]进一步的,所述预判系统将递归服务器中待监控域名及其设定类型的资源记录同步到本地的方法为:所述预判系统通过端口镜像监控递归服务器返回给用户的应答数据流,并从中获取待监控域名的资源记录;或者所述预判系统向递归服务器做递归查询或非递归查询,获取待监控域名的资源记录;或者所述预判系统向递归服务器发送控制命令获取待监控域名的资源记录。
[0027]进一步的,确定所述待监控域名的方法为:所述预判系统通过端口镜像获取流向设定递归服务器的请求数据包,经过流量统计分析判断,从中选取请求量或查询率排名靠前的若干域名作为所述待监控域名;或者从DNS日志中选取请求量或查询率排名靠前的若干域名作为所述待监控域名;或者自定义所述待监控域名。
[0028]进一步的,所述资源记录到期时刻Ti设置为当前时间加上一设定时间长度t。
[0029]与现有技术相比,本发明的积极效果为:
[0030]I)本发明首次提出通过预处理的方法判断递归服务器的解析状态。本发明一定程度上既能保证递归服务器的解析安全,又能保证其用户的上网安全。
[0031]2)智能性。本发明不是通过人为设定危险判断的条件,而是通过机器学习的方法发现特征与危险变化的联系,从而智能地判断资源记录(集)的变化是否为危险变化。
[0032]3)灵活性。不管本系统与监测的递归服务器之间的关系是强还是弱,通过不同的递归服务器缓存数据同步方式预判系统都可以实现对递归服务器的监测,从而预判系统的部署较为灵活,既可以与递归服务器位于同一局域网,又可以远距离部署。
【专利附图】

【附图说明】
[0033]图1为预判系统流程图;
[0034]图2为预判系统拓扑图;
[0035]图3为预判系统模块图。
【具体实施方式】
[0036]本发明并不是让递归服务器完成预处理的过程和动作,而是在递归服务器外完成。本发明提出的一个域名的预处理过程可以分为三个步骤:第一,对象选取:通过一定的域名列表选取方式获取一定数量的域名,同步它们在递归服务器中的某些资源记录集到预判系统本地。第二,预判:在域名的资源记录过期前,递归服务器就向相关权威服务器做递归请求,获取它们的新资源记录(集),并对它们解析状态进行判断。第三,干预:当发现某域名处于危险中时,就赶在其资源记录集过期前适当地干预缓存。
[0037]I)对象选取[0038]为了表述方便,本文把这些要监控的域名称之为重点域名,那么重点域名的选取方式有:第一,预判系统通过端口镜像获取流向所监控的递归服务器的请求数据包,经过流量统计分析判断,从中选取请求量或查询率排名靠前的部分域名;第二,自定义重点域名列表;第三,分析DNS日志,从中选取请求量或查询率排名靠前的部分域名。在实际应用中,可以结合以上方法用以确定重点域名列表。不仅如此,而且域名资源记录类型也多达几十种,所以可以针对性地选取域名的部分资源记录类型进行监控。
[0039]2)预判
[0040]预判系统预判的首个重要工作就是同步递归服务器缓存里的重点域名数据〈域名,设定的类型 >。这样就能保证预判系统里的域名数据跟递归服务器中的数据是一致的。同步的方法有--第一,通过端口镜像技术,监控递归服务器返回给用户的应答数据流,并从中获取域名的资源记录集的信息(通过对交换机或路由器设置端口镜像的方式,获取权威服务器返回给递归服务器的DNS应答或递归服务器返回给客户端的DNS应答,从而截获新资源记录集);第二,向递归服务器做递归查询或非递归查询(必要时需要预判系统访问递归服务器的权限);第三,通过递归服务器控制命令(如unbound的unbound-control命令)获取缓存数据。这三种方式可以任选其一,或者组合使用。
[0041]在每个域名的资源记录在其过期前时间T时,对这些资源记录(集)进行监控,获取此域名设定类型的同类型资源记录集。如果发现域名的该类型记录发生变化,预判系统从递归服务器缓存中获取其他类型(如A记录、NS记录、PTR记录、MX记录等)的资源记录集。除此之外,预判系统还探测它到权威服务器、域名应用服务器等的网络延迟数据,从whois数据库查询域名信息。预判系统要对这些数据进行统计分析,再从中摘取出一些特征,如域名长度、域名注册时长、TTL变化大小、网络延迟变化度、域名过期剩余时长等等,进而形成一个实例或元组〈域名长度、域名注册时长、TTL变化大小、网络延迟变化度、域名过期剩余时长〉。最后,通过机器学习算法获得的分类器(通过对一些数据进行标记,标记为安全变化还是危险变化,得到样本数据,然后利用样本数据和决策树算法、贝叶斯分类器算法或支持向量机等可获得分类器)预测该实例的类别标签(也就是检测该资源记录变化是危险变化,还是安全变化),并最终得出结论。如果是危险变化,就要进行干预;否则,不对递归服务器进行干预。
[0042]3)干预
[0043]根据机器学习算法判断的结果,针对不同的危险干预方法如下(如图1所示):
[0044](I)权威服务器发生变化(即域名劫持)的干预方法是:预判系统向资源记录发生危险变化的域名的原权威服务器请求NS记录和Glue记录,并将其写入递归服务器缓存中,帮助保卫这些递归服务器。
[0045](2)权威服务器未发生变化的干预方法是:预判系统延长该域名在递归服务器的缓存中的原资源记录集、NS记录和Glue记录的生存时间(如设置TTL为其初始值)。
[0046](3)普通否定异常或区不可达的干预方法是:预判系统延长递归服务器缓存里该域名资源记录集的生存时间(如设置TTL为其初始值)。为了及时发现域名状态恢复,预判系统对域名状态进行不间断地监控,当发现该域名恢复时,就将递归服务器缓存内的资源记录集更新为预判系统从恢复的该域名所在权威服务器获取的新记录集或者直接删掉它们(记录从递归服务器缓存中删除之后,如果递归服务器收到该记录的请求时,它会查找缓存并且没有发现时,就会向已经回复服务的权威服务器发出查询请求,并最终获得了新资源记录集)。
[0047](4)部分权威服务器不响应。干预方法:从递归服务器缓存中删除掉这个(些)不响应服务器的资源记录(集),并接下来对该服务器进行不间断地监控,当发现它恢复应答了,就将与其相关的NS记录重新添加到缓存中。
[0048]系统架构和工作原理
[0049]根据上面所讲述的方法,本发明还设计了一个预判系统,下面讲解其系统架构和其工作原理。
[0050]系统架构
[0051]预判系统的系统架构如图2所示。如图所示,系统分为两部分,采集统计子系统和预判核心子系统。其中,采集统计子系统是可选的,当重点域名的选取方式是自定义,预判子系统获取新资源记录集不通过采集统计子系统获取的时候,不需要采集统计子系统。正如预判核心子系统名字,它是预判系统的核心子系统。注意,采集统计子系统可以和预判核心子系统在一个系统中实现,使预判系统成为一个具有采集统计功能的单系统。
[0052]采集统计子系统负责获取重点域名和重点域名的应答信息。预判系统和递归服务器共用同一交换机,且位于交换机的后面。对交换机设置端口镜像,将递归服务器收到的DNS流量和返回的DNS应答信息复制给采集统计子系统。采集统计子系统从该流量中不断地获取域名及每秒查询率(queries per second,QPS)和域名的应答信息。按照查询率对域名进行排名,把排名靠前的域名归为重点域名。
[0053]预判核心子系统通过预判的方法判断递归服务器的状态。当发现递归服务器因为某个域名而处于危险中时,就向递归服务器发送更新命令,更新缓存中与该域名相关的数据。适时地,子系统可以同步重点域名在递归服务器缓存中的数据。实际上,预判系统需要一个数据库,该数据库可以放在此两个子系统的任一个当中,也可以放置于其他服务器中。注意,可以将统计系统具有的功能添加到预判系统里,使其成为具有采集统计功能的预判系统。
[0054]系统工作原理
[0055]本小节将分别详细地讲解两个子系统的各个模块的功能。采集统计子系统包括采集模块、统计模块和包存模块;预判核心子系统包括验证模块、同步模块和控制模块。预判系统的功能模块图如图3所示。从图中可见,系统具有采集统计功能的预判系统包括采集模块、统计模块、保存模块和验证模块。正如上节所说,采集统计子系统是可选的。预判系统的模块功能介绍如下:
[0056](I)采集模块
[0057]通过交换机的端口镜像发向采集统计子系统的数据流分为两种,一是用户发向递归服务器的DNS请求数据,二是递归服务器返回给用户的DNS应答数据。采集模块捕获经过网卡的DNS数据包,将DNS请求包交给统计模块处理,将DNS应答数据包给保存模块处理。可见,采集模块是给统计模块和保存模块提供数据支持的,当统计模块和保存模块不启动的时候,采集模块是也不需要启动的。具体地,可以通过Iibpcap库来实现。
[0058](2)统计模块
[0059]统计模块接收到来自采集模块的DNS请求数据,统计域名的每秒查询率,存入到数据库中,并对所有域名按照查询率的大小从高到低进行排序,排名在前面的域名有可能成为重点域名。假如指定前N个域名为重点域名,那么统计模块就会把排名表中前N个域名存入到重点域名信息表中。但由于排名是动态变化的,统计模块还是实时的维护重点域名表中的域名,把排名不再在前N的域名用新加入的域名代替。当重点域名的选择方式是自定义时,统计模块是不需要启动的。具体地,可以通过Idns库抽取DNS数据包中的字段来实现。
[0060](3)保存模块
[0061]保存模块检查接收到的采集模块发来的DNS应答数据,如果发现是重点域名的应答数据,就将其保存到数据库当中。保存模块完成了递归服务器和预判系统之间缓存数据的同步工作,而同步方式不只一种,只有在指定同步方式为使用保存模块时,保存模块才工作。
[0062](4)同步模块
[0063]同步模块可以要求保存模块保存重点域名的应答数据流到数据库当中,或向递归服务器做递归查询或非递归查询或发送控制命令获取缓存数据并保存到数据库。保存的数据提供给验证模块以验证域名的状态。在保存时,把每个资源记录集的到期时间计算并保存到表中,如果因为无法获知域名的资源记录集而无法知道TTL时,将TTL设置为某一个固定值T。同步模块只有两个情况才同步,一是启动的时候,获取所有重点域名在递归服务器中的缓存数据;二是周期性地同步递归服务器与预判系统的数据,使它们之间保持数据一致。
[0064](5)验证模块
[0065]验证模块按照重点域名的到期时间由近到远的顺序依次循环对它们进行预判,预判时按照一定的时机选择方式确定预判的时机,如果发现危险,那么通知控制模块;否则,将域名的新资源记录集和其他信息处理之后保存到表中。[0066]有时候,当临到此域名预判的时候,很可能会发现已经错过检测时机,也就是说如果域名不但出现危险变化,而且递归服务器如果缓冲了有危险的数据并返回给用户,那么用户和服务器已经处于危险当中一段时间,所以应该极力避免这种情况的发生,提高预判系统快速检测的能力。有的资源记录集的TTL可能因为两个原因时间会很短,这两个原因是:一,域名本身设置的TTL就很小;二,它在递归服务器里面已经呆过较长的时间而导致同步的TTL值较小,不能及时检测的概率会比较大,所以说这个问题是很难避免的。针对这个问题,本文建议把域名的到期时间设成当前时间加上时间t,而t的大小可以根据经验来设置,并根据实际情况进行合理调整。
[0067](6)控制模块
[0068]如果接到验证模块的更新某域名资源记录集的命令,那么将按照之前提到的解决方法,更新递归服务器的缓存数据。同时,还要更新域名的相关资源记录,以保持递归服务器和预判系统数据的一致性。
[0069]重点域名的获取方式需要人为指定,可以从外部导入域名列表到重点域名列表中;也可以开启统计模块,指定查询率排名多少的域名为重点域名,这样统计模块就可以把相应数量的域名存入到数据库中并实时进行维护。同样地,同步方式也需要人为指定,可以指定为同步方式中的任何一种。从模块介绍中可以看出,数据库保存可能有两种数据(以表的形式存在):域名查询率表和重点域名信息表。域名查询率表的每个实例是一个域名和QPS对,当采集模块传送来一个域名的查询记录时,重新计算并更新该域名的QPS值。重点域名信息表记录了上一章中预判需要的域名信息,如Whois信息、权威服务器列表、Glue记录等,这些记录是验证模块下一次预判的基础。
【权利要求】
1.一种域名递归服务的预判干预方法,其步骤为: 1)选取待监控的域名,预判系统将递归服务器中待监控域名及其设定类型的资源记录同步到本地; 2)预判系统对每个域名的资源记录从T1-T时刻开始进行监控直至该域名的资源记录到期;其中,Ti为第i个域名的资源记录到期时刻,T为设定时间长度; 3)如果发现域名的设定类型记录发生变化,预判系统则获取该域名的设定特征数据,然后利用所训练的分类器对该域名的特征数据进行识别,判断该域名的资源记录变化是否为危险变化; 31)如果发生危险变化,且权威服务器发生变化,则预判系统向该域名的原权威服务器请求NS记录和Glue记录,并将其写入递归服务器缓存中; 32)如果发生危险变化,但权威服务器未发生变化,则预判系统延长该域名在递归服务器缓存中的原资源记录集、NS记录和Glue记录的生存时间; 33)如果发生危险变化为否定异常或区不可达,则预判系统延长递归服务器缓存里该域名资源记录集的生存时间;并对该域名状态进行监控,当发现恢复时,将递归服务器缓存内的该域名资源记录集更新为从该域名所在权威服务器获取的记录集或者删除; 34)如果发生危险变化为权威服务器不响应,则从递归服务器缓存中删除掉该权威服务器的资源记录,并对该权威服务器进行监控,该权威服务器状态恢复后将与其相关的NS记录重新添加到递归服务器的缓存中。
2.如权利要求1所述的方法,其特征在于所述特征数据包括:域名长度、域名注册时长、TTL变化大小、网络延迟变化度、域名过期剩余时长。
3.如权利要求2所述的方法,其特征在于所述设定类型的资源记录为A记录或NS记录;所述预判系统从递归服务器获取该域名的A记录、NS记录、PTR记录和MX记录的资源记录集,获取该域名到权威服务器、域名应用服务器的网络延迟数据,从whois数据库查询获取该域名的域名信息;然后从所获取数据中提取该域名的所述特征数据。
4.如权利要求1或2或3所述的方法,其特征在于所述预判系统通过对域名的资源记录进行标记,标记为安全变化还是危险变化,得到一组样本数据;然后利用该样本数据和决策树算法、贝叶斯分类器算法或支持向量机获得所述分类器。
5.如权利要求1或2或3所述的方法,其特征在于所述预判系统将递归服务器中待监控域名及其设定类型的资源记录同步到本地的方法为:所述预判系统通过端口镜像监控递归服务器返回给用户的应答数据流,并从中获取待监控域名的资源记录;或者所述预判系统向递归服务器做递归查询或非递归查询,获取待监控域名的资源记录;或者所述预判系统向递归服务器发送控制命令获取待监控域名的资源记录。
6.如权利要求5所述的方法,其特征在于确定所述待监控域名的方法为:所述预判系统通过端口镜像获取流向设定递归服务器的请求数据包,经过流量统计分析判断,从中选取请求量或查询率排名靠前的若干域名作为所述待监控域名;或者从DNS日志中选取请求量或查询率排名靠前的若干域名作为所述待监控域名;或者自定义所述待监控域名。
7.如权利要求1所述的方法,其特征在于所述资源记录到期时刻Ti设置为当前时间加上一设定时间长度t。
【文档编号】H04L12/26GK103685599SQ201310659756
【公开日】2014年3月26日 申请日期:2013年12月9日 优先权日:2013年12月9日
【发明者】刘明星, 金键, 李晓东 申请人:中国科学院计算机网络信息中心
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1