一种筛选DNS请求的方法转让专利

申请号 : CN201010615072.9

文献号 : CN102075592B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 吕晓雯刘怡梅杜玲

申请人 : 吕晓雯刘怡梅杜玲

摘要 :

本发明公开了一种适用于通信技术领域的筛选域名请求的方法,此方法可抛弃伪造的域名请求、减小域名系统的负载,提高域名系统的安全可靠性。本发明按照事先预设的时间规则筛选域名请求,选取符合时间规则的域名请求,抛弃不符合时间规则的域名请求。本发明可广泛应用于各种通信网络系统。

权利要求 :

1.一种筛选DNS请求的方法,其特征在于:按照事先预设的时间规则筛选DNS请求,包括以下步骤:(1)预设时间规则:在时间轴上以相对时间零为起点,按需要预设若干个相对的时间片段,在这些时间片段内出现称为符合时间规则,否则称为不符合时间规则;

(2)筛选DNS请求:当两次或多次收到来源于同一个IP地址的相同的DNS请求时,以第一次收到的时间为相对零点,如果后续的DNS请求符合时间规则,那么就选取,否则就抛弃。

说明书 :

一种筛选DNS请求的方法

技术领域

[0001] 本发明涉及一种通信领域的筛选DNS请求的方法。

背景技术

[0002] 域名系统(DNS)的主要作用是把易于记忆的域名转换成不易记忆、但技术上真正使用的网络地址(IP地址),便于用户或网络应用访问网络资源。DNS作为互联网的基础服务系统,一旦出现故障,将导致互联网上大量应用无法正常运行,对于普通用户而言,DNS故障基本等同于网络中断,因而DNS常被比喻为互联网的中枢神经系统。目前DNS服务系统的保护工作主要依赖于传统的网络安全设备,它们基本上都靠检查源IP地址的合法性,或检查IP头Identification字段是否有规律、Fragment offset、TTL字段是否合理,或检查UDP的源端口号是否有规律,或检查DNS的Transaction ID是否有规律等方法拦截伪造的DNS攻击,攻击者可以采用随机算法或取常规值轻易地越过传统网络安全设备的检查,部分网络安全设备采用UDP或ICMP探测的方法,也因为绝大部分用户端设备安装了防火墙而失去实用意义,总之,传统的网络安全设备对DNS服务系统实质上起不到保护作用。
[0003] DNS数据可用数据报协议(UDP)或传输控制协议(TCP)承载,在实际的互联网环境下,DNS数据主要以UDP承载,一般只有在DNS响应包含的数据量比较大的时候,才使用TCP。当使用UDP的时候,DNS客户端仅需发出一个以UDP承载的DNS请求,DNS服务端就应该应答一个以UDP承载的DNS响应,这一简单的DNS请求应答机制,给DNS系统的安全留下了巨大的隐患:攻击者可用较小的CPU开销发出大量的DNS请求,而DNS服务系统响应这些DNS请求所需的CPU开销却比较大,特别是当攻击者发出的DNS请求所解析的域名不在DNS服务系统的缓存之内时,DNS服务系统将按DNS协议通过逐级解析的方法进行递归解析,其CPU开销将远远大于攻击者,因而攻击者采用四两拨千斤的方法可以很容易地将DNS服务系统攻瘫。由于很难从单个DNS请求的IP头、UDP头及其请求的内容中识别其真伪,如何筛选出真实的DNS请求、抛弃攻击者的DNS请求成为困扰全世界DNS服务系统的一个技术难题。

发明内容

[0004] 发明目的:本发明的目的是提供一种筛选DNS请求的方法,筛选出真实的DNS请求、抛弃伪造的DNS请求,以减小DNS服务系统的负载,从而提高DNS服务系统的安全可靠性。
[0005] 技术方案:实现本发明是通过以下技术方案实现的,首先,预设时间规则:在时间轴上以相对时间零为起点,按需要预设若干个相对的时间片段,在这些时间片段内出现称为符合时间规则,否则称为不符合时间规则;然后选取和抛弃:当两次或多次收到来源于同一个IP地址的相同的DNS请求时,以第一次收到的时间为相对零点,如果后续的DNS请求符合时间规则,那么就选取,否则就抛弃。
[0006] 有益效果:是正常的设备发出DNS请求后,如果等待短暂的时间之后没有收到响应,就会按一定的时间规律重发相同的DNS请求,例如Windows操作系统发出的第2个DNS请求与第1个DNS请求的时间间隔为1秒,第3个DNS请求与第1个DNS请求的时间间隔为2秒,第4个DNS请求与第1个DNS请求的时间间隔为4秒,这些DNS请求经过网络最终到达DNS服务系统的时候,由于网络延时或抖动,DNS服务系统看到的时间间隔会发生变化,不再是比较准确的1、2、4秒间隔,例如是0.95、2.01、4.07秒。如果事先预设3个相对的时间片段,例如0.9~1.1、1.9~2.1、3.9~4.1,如附图一所示的阴影部分,凡是来源于同一个IP地址的相同的DNS请求,只要在上述时间片内重复出现的都选取,不在上述时间片内重复出现的都抛弃,那么Windows操作系统重复发出的DNS请求,第2个将被选取,假设第2个在网络途中由于其他原因丢失了则第3个将被选取,假设第2、第3个在网络途中由于其他原因都丢失了则第4个将被选取(如果考虑第1个请求被丢失的情况,上例中还应该增加1个时间片段例如2.9~3.1)。攻击者发出的随机DNS请求一般都不符合上述时间规则,因而将被抛弃。本发明能简单而有效地筛选出真实的DNS请求、抛弃伪造的DNS请求,对保护DNS服务系统有较高的实用价值。

附图说明

[0007] 图1是预设时间规则示例图;
[0008] 图2是域名筛选方法应用逻辑连接示例图。

具体实施方式

[0009] 下面对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
[0010] 如图1所示,例如Windows操作系统发出的第2个DNS请求与第1个DNS请求的时间间隔为1秒,第3个DNS请求与第1个DNS请求的时间间隔为2秒,第4个DNS请求与第1个DNS请求的时间间隔为4秒,这些DNS请求经过网络最终到达DNS服务系统的时候,由于网络延时或抖动,DNS服务系统看到的时间间隔会发生变化,不再是比较准确的1、2、4秒间隔,例如是0.95、2.01、4.07秒。如果事先预设3个相对的时间片段,例如0.9~1.1、
1.9~2.1、3.9~4.1,如图所示的阴影部分,凡是来源于同一个IP地址的相同的DNS请求,只要在上述时间片内重复出现的都选取,不在上述时间片内重复出现的都抛弃,那么Windows操作系统重复发出的DNS请求,第2个将被选取,假设第2个在网络途中由于其他原因丢失了则第3个将被选取,假设第2、第3个在网络途中由于其他原因都丢失了则第4个将被选取。
[0011] 如图2所示,域名筛选系统透明地串接在DNS服务系统与互联网之间(无需IP地址),可利用计算机作为域名筛选系统的硬件实现平台,域名筛选计算机通过A接口接收来自于互联网的DNS请求后进行判断及处理。 当域名筛选计算机在A接口重复接收到来源于同一个IP地址的DNS请求时,判断是否为相同DNS请求的条件,可粗略地仅看DNS请求所解析的域名是否相同,也可按需要增加源端口号是否相同、DNS的Transaction ID是否相同、DNS的请求类型是否相同等更多的条件。预设的时间规则可以按需要调整,例如除了满足Windows操作系统重发DNS请求的时间规则外,还可增加满足Unix类操作系统重发DNS请求的时间规则。域名筛选计算机将符合时间规则的DNS请求通过B接口转发给DNS服务系统,不符合时间规则的DNS请求直接被抛弃。