一种实现DNS服务防御的检测系统和方法与流程

文档序号:18702697发布日期:2019-09-17 23:09阅读:252来源:国知局
一种实现DNS服务防御的检测系统和方法与流程

本发明属于计算机领域,尤其是一种实现dns服务防御的检测系统和方法。



背景技术:

随着我国基础通信的不断发展,dns做为互联网核心基础服务软件,其业务量也增长迅猛。域名服务系统用于实现网络域名到ip地址的翻译转换,是用户进入互联网的门户,具有协议开放,部署分散,数据庞大,使用广泛的特点,一直是互联网上被攻击的主要目标之一。近些年来针对dns协议安全漏洞产生的网络攻击频繁,导致的损失巨大,严重影响到国家网络发展的安全和稳定。

互联网上除了常见的dnsdos攻击,域名数据的劫持和篡改也是重要的攻击类型。一种是通过域名的冒名顶替,使用钓鱼网站大量侵犯公民隐私,成为犯罪分子实施经济诈骗和违法宣传等活动的重要手段;另一种是利用域名系统实施中间人攻击,可以截获任意政府网站、电子邮件和商务社交等的通信信息,能够篡改控制调度、金融交易和物流运输等敏感行业的数据和软件,形成危害巨大的网络空间安全隐患。

现有dns递归解析系统的缺陷和面临的问题:

(1)dns协议本身存在安全漏洞,主流的dns解析软件多为开源,其代码中存在的缺陷较易暴露;

(2)由于部署分散,任何一台dns服务器产生域名安全问题,都会有用户直接受到影响;

(3)dns安全拓展协议因其管理的复杂性和对网络带宽的较高要求,在实际部署过程中存在一定困难,并且容易引入放大式攻击等问题;

(4)常规的域名监控手段可以进行域名解析结果变化前后的对比分析,但多用于重点域名,难以在全域名范围内动态实施。



技术实现要素:

本发明所要解决的技术问题是提供一种实现dns服务防御的检测系统和方法,用于解决现有技术存在的上述缺陷。

本发明解决上述技术问题所采取的技术方案如下:

一种实现dns服务防御的检测系统,包括:

多台异构的dns递归解析服务器,上述dns递归解析服务器一起构成一个等价的异构执行体的服务器池;

上述执行体可以作为递归服务器也可以作为授权服务器,用于提供本地或公网的域名解析;

dns分发裁决服务器,用于接收从解析加速服务器传递过来的解析请求并分发到各个执行体;

将动态选中的异构执行体的解析结果进行收集,并通过预置的算法选取一个最正确的结果返回给解析加速服务器;

解析加速服务器,用于传递解析请求以及接收dns分发裁决服务器传递的结果。

优选的是,各个dns递归解析服务器中分别安装不同的操作系统、dns解析软件或者不同版本。

优选的是,所述异构执行体的服务器池中的服务器可以全部在线,也可以保留一部分作为后备,在提供业务的服务器出现异常的情况下,进行自动替换。

优选的是,所述解析加速服务器位于整套系统的前端,起到高速缓存的作用,其具有二层工作模式,可以快速响应用户请求,减小解析时延,提升用户感知;

同时可以减小分发裁决服务器的工作负担,在生命周期内通过缓存数据进行应答。

优选的是,所述检测系统基于三层交换机配合实现资源隔离,并将来自外部的用户业务流量与内部仲裁的分发裁决流量分别限制在不同vlan中;

其中,所述解析加速服务器和dns分发裁决服务器之间采用双链接方式,所述dns分发裁决服务器和异构执行体的服务器池之间采用私网或者可信任的连接方式。

一种实现dns服务防御的检测方法,包括:

构建由多台异构的dns递归解析服务器构成异构执行体的服务器池;

上述执行体可以作为递归服务器也可以作为授权服务器,用于提供本地或公网的域名解析;

接收从解析加速服务器传递过来的域名解析请求;

根据当前异构执行体的服务器池的服务器在线情况,动态从n台执行体中选择m台的执行体,并将请求分别分发给它们,其中,m<=n;

获取上述异构执行体在本地解析或者向外递归所查询的结果;

根据得到的来自m个执行体的返回结果,利用相应的算法进行仲裁,生成一个最终结果,并返回解析加速服务器。

优选的是,还包括:

解析加速服务器将分发裁决返回的结果回复给用户端,同时将结果保留在缓存中。

优选的是,还包括:周期性对各个异构执行体进行状态检测,不断调整每台执行体的分发优先级,其基本原则包括:

当其服务不可达时将完全从可用执行体列表中剔除;当某个检测周期发现其服务可用时,再将其放置回可用列表中。

当其解析结果被仲裁后未被选中,将降低其使用权重;

一台状态正常的执行体由于较低的权重在持续一定时间的休眠之后,将被唤醒参与调度;

长期被使用的执行体在有效时间后也会被降低权重,以减少该执行体的暴露时间,减小其业务负荷,保障执行体池的均衡使用。

优选的是,利用相应的算法进行仲裁,生成一个最终结果,上述算法包括:

当执行体返回的结果不一致的时候,仲裁单元选取出现最多的结果。通常m值会被设置为奇数,以保证在此环节可以有结果胜出;

进行单一结果比较的过程中,服从于较高权重服务器的结果;

当权重相同的执行体返回的多个结果出现次数一致的情况下,采取随机方式选择一个结果返回。

优选的是,各个dns递归解析服务器中分别安装不同的操作系统、dns解析软件或者不同版本。

本发明采取了上述方案以后,能够应对域名系统面临的几种威胁,包括消失性风险(例如根域名服务器删除.cn域名记录)、致盲性风险(例如根域名服务器不解析来自中国的域名解析请求)和数据篡改风险(例如由于未知漏洞和后门造成的缓存中毒和域名劫持),该发明具有电信级域名服务能力和安全性保障。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

附图说明

下面结合附图对本发明进行详细的描述,以使得本发明的上述优点更加明确。其中,

图1是本发明实现dns服务防御的检测系统的实施例的结构示意图。

图2是本发明实现dns服务防御的检测方法的实施例的流程示意图;

具体实施方式

以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本发明中的各个实施例以及各实施案例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。

另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

如图1所示,本发明旨在建立一套结构简单,易于部署,具有主动防御能力和容错能力的dns系统,提高系统的健壮性,规避单点故障的风险,降低递归数据被篡改带来的影响,增加域名攻击的实施难度和攻击成本,抵御未知漏洞和软件后门。

其中,该发明通过部署多台异构的dns递归解析服务器(或授权服务器),dns分发裁决服务器,解析加速服务器,建立一套具有安全性,冗余性,异构性主动防御功能的域名动态裁决系统。

如图1所示,一种实现dns服务防御的检测系统,包括:

多台异构的dns递归解析服务器,上述dns递归解析服务器一起构成一个等价的异构执行体的服务器池;

上述执行体可以作为递归服务器也可以作为授权服务器,用于提供本地或公网的域名解析;

dns分发裁决服务器,用于接收从解析加速服务器传递过来的解析请求并分发到各个执行体;

将动态选中的异构执行体的解析结果进行收集,并通过预置的算法选取一个最正确的结果返回给解析加速服务器;

解析加速服务器,用于传递解析请求以及接收dns分发裁决服务器传递的结果。

其中,所述异构的dns递归解析服务器,其可以采用不同的操作系统,dns解析软件或不同版本,形成一个等价的异构执行体服务器池。

其中,上述异构执行体可以作为递归服务器也可以作为授权服务器。

池中的服务器可以全部在线,也可以保留一部分作为后备,在提供业务的服务器出现异常的情况下,进行自动替换。异构执行体的主要作用是提供本地或公网的域名解析,是整套系统中的数据来源。

所述dns分发裁决服务器,是本系统的核心组件,位于异构执行体和解析加速服务器的中间,一方面接收从加速器传递过来的解析请求再分发到各个执行体,另一方面将动态选中的异构执行体解析结果进行收集,并通过预置的算法选取一个最正确的结果返回给加速器。它的主要作用是进行动态调度和结果仲裁。

所述解析加速服务器,位于整套系统的前端,起到高速缓存的作用,二层工作模式可以快速响应用户请求,减小解析时延,提升用户感知。同时可以减小分发裁决服务器的工作负担,在生命周期内通过缓存数据进行应答。此外,其超强的处理能力和有效的抗攻击模式也可以保护后端的组件不被网络攻击所侵害。

此外,在优选的实施例中,本发明使用三层交换机配合实现资源隔离。将来自外部的用户业务流量与内部仲裁的分发裁决流量分别限制在不同vlan中。加速器和分发裁决之间采用双链接方式提高业务能力,分发裁决和执行体池之间采用私网或者可信任的连接方式。

其中,如图2所示,上述系统的工作流程如图2,具体来说,一种实现dns服务防御的检测方法,包括:

构建由多台异构的dns递归解析服务器构成异构执行体的服务器池;

上述执行体可以作为递归服务器也可以作为授权服务器,用于提供本地或公网的域名解析;

接收从解析加速服务器传递过来的域名解析请求;

根据当前异构执行体的服务器池的服务器在线情况,动态从n台执行体中选择m台的执行体,并将请求分别分发给它们,其中,m<=n;

获取上述异构执行体在本地解析或者向外递归所查询的结果;

根据得到的来自m个执行体的返回结果,利用相应的算法进行仲裁,生成一个最终结果,并返回解析加速服务器。

例如在一个实施例中,其详细的过程如下:

用户pc通过浏览器访问百度的网页,在浏览器url位置输入请求域名:www.baidu.com,如果用户的pc是一个ipv4协议栈的系统,并且系统配置了一个dnsip地址:8.8.8.8。这时候请求就会被系统自动发送到8.8.8.8的dns上,即本系统中提到的解析加速服务器。请求要求获得www.baidu.com对应的ipv4地址,这种请求类型被称为a类型,请求数据包中会有下面的信息:

;;questionsection:

;www.baidu.com.ina

解析加速服务器中具有该域名的解析结果则直接应答。

例如:解析加速服务器的缓存中已经保存了很多域名信息,此时系统在缓存中发现了www.baidu.com域名的a记录结为61.135.169.125和61.135.169.121,则给用户返回:www.baidu.com的ipv4地址是这两个ip。

请求中包含如下的信息:

解析加速服务器中不具有该域名的结果,将请求透传到分发裁决服务器。

例如:解析加速服务器在缓存中没有找到www.baidu.com对应的ipv4地址信息,则会继续问分法裁决服务器:www.baidu.com的ipv4地址是多少。

请求与客户端发起的查询类似,包含下面的信息:

;;questionsection:

;www.baidu.com.ina

分发裁决服务器根据当时的异构执行体服务状态,动态从n台执行体中选择一定数量(m台)的执行体,并将请求分别分发给它们。

例如,如果系统资源池中包含8台执行体,分发裁决从中选择3台,分别向他们请求www.baidu.com的ipv4地址。

请求与客户端发起的查询类似,包含下面的信息;

;;questionsection:

;www.baidu.com.ina

异构执行体分别在本地解析(授权)或者向外递归,得到解析结果后返回分发裁决服务器。

例如:异构执行体收到查询请求后,会向互联网进行查询,根据dns工作机制,最终会去baidu.com的授权服务器,即由百度公司自己维护数据的dns请求wwww.baidu.com的ipv4地址,baidu.com对应的某个服务器回复执行体1和执行体2该地址为61.135.169.125和61.135.169.121,异构执行体1和2把结果结果返回分发裁决:www.baidu.com的ipv4地址是61.135.169.125和61.135.169.121。执行体3由于某种原因,比如可能被劫持也可以是配置错误的一台baidu服务器返回,他得到的结果为1.2.3.4,并告诉分法裁决:www.baidu.com的ipv4地址是1.2.3.4.

执行体1,执行体2回复的信息:

执行体3回复的信息:

分发裁决服务器根据得到的来自m个执行体的返回结果,利用相应的算法进行仲裁,生成一个最终结果,并返回解析加速服务器。

例如::分法裁决得到两个61.135.169.125和61.135.169.121,一个1.2.3.4,根据择多原则,选择正确结果为61.135.169.125和61.135.169.121,返回加速器。

加速器收到回复;

解析加速服务器将分发裁决返回的结果回复给用户端,同时将结果保留在缓存中。

例如:解析加速服务器将www.baidu.com对应ipv4地址61.135.169.125和61.135.169.121的结果返回用户pc,用户pc得到ip地址以后,会从两个地址中选取一个,与之进行http的连接。

用户收到的回复:

其中,所述dns分发裁决中,在每一次查询过程中,分发裁决模块将动态从异构执行体池中选取预设的m台服务器进行业务转发。系统周期性对各个异构执行体进行状态检测,不断调整每台执行体的分发优先级,其基本原则包括:

当其服务不可达时将完全从可用执行体列表中剔除;当某个检测周期发现其服务可用时,再将其放置回可用列表中。

当其解析结果被仲裁后未被选中,将降低其使用权重;

一台状态正常的执行体由于较低的权重在持续一定时间的休眠之后,将被唤醒参与调度。

长期被使用的执行体在有效时间后也会被降低权重,以减少该执行体的暴露时间,减小其业务负荷,保障执行体池的均衡使用。

执行体的使用权重越高被调度的可能性越大,相同权重的执行体将被系统随机选择。

其中,结果仲裁负责收集从m个执行体返回的结果中进行优选,最后确定一个可信度最高的结果返回加速器。分发裁决采用不同的算法应对不同的结果返回状态:

择多:

当执行体返回的结果不一致的时候,仲裁单元选取出现最多的结果。通常m值会被设置为奇数,以保证在此环节可以有结果胜出。

权重:

执行体在动态调度单元的监控过程中,会被不断修改其使用权重,该权重在结果仲裁中也会影响其被选中的概率。在择多算法中,解析结果被淘汰的服务器存在着被攻击的更大可能性,因此在进行单一结果比较的过程中,会服从于较高权重服务器的结果。

随机:

当权重相同的执行体返回的多个结果出现次数一致的情况下,采取随机方式选择一个结果返回。例如m台服务器返回m个解析结果,这种情况通常适用于cdn的环境,业务服务器存在于一个负载分担的集群中,其授权服务器会随机返回可用服务器来均衡业务。仲裁单元的随机选择保护了cdn的使用初衷。

本发明采取了上述方案以后,能够应对域名系统面临的几种威胁,包括消失性风险(例如根域名服务器删除.cn域名记录)、致盲性风险(例如根域名服务器不解析来自中国的域名解析请求)和数据篡改风险(例如由于未知漏洞和后门造成的缓存中毒和域名劫持),该发明具有电信级域名服务能力和安全性保障。

需要说明的是,对于上述方法实施例而言,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。

而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1