一种识别dns欺骗攻击包及检测dns欺骗攻击的方法
【技术领域】
[0001]本发明属于通信技术、DNS技术领域,具体涉及一种识别DNS欺骗攻击包的方法,以及利用该方法检测DNS欺骗攻击的方法。
【背景技术】
[0002]DNS是一个用于管理主机名字和地址信息映射的分布式数据库系统,它将便于记忆和理解的名称同枯燥的IP地址联系起来,大大方便了人们的使用。DNS是大部分网络应用的基础,但是由于协议本身的设计缺陷,没有提供适当的信息保护和认证机制,使得DNS很容易受到攻击。
[0003]DNS欺骗(DNS Spoofing)正是利用设计上的缺陷--仅使用一个序列号(事务标识符)作为鉴别DNS应答报文有效性的依据,致使攻击者监听到查询请求后,伪造大量的DNS应答包发送给客户端,这些应答包将一些合法域名重定向至恶意IP地址,从而达到欺骗用户的目的。DNS欺骗攻击可能存在于客户端和DNS服务器间,也可能存在于各DNS服务器之间,被攻击的对象除了 DNS Server或某台主机,也有可能是某个用户应用程序,例如浏览器,域名查询软件(NS lookup)等。
[0004]目前已有一些学者给出了防御域名系统欺骗攻击的解决方案,例如A.谢里斯特使用加密哈希函数生成事务标识符(Transact1n ID),构造新的DNS查询,以提高请求的抗攻击性;马勺布则将请求包中的查询域名字段的字母按照预定的规则进行大小写转换,以防范DNS欺骗攻击。但是这些防范策略并没有得到很好的推广以及应用。
[0005]同时,欺骗攻击的检测也是DNS安全领域研宄的热点问题。依据DNS欺骗攻击的原理可知如果受到攻击,那么客户端会至少接收到两个应答包,一个欺骗包,一个合法的响应包。因此若在一段时间内,一个DNS请求接收到两个或者更多的应答包,则其可能受到了DNS欺骗攻击,若应答包中存在欺骗包,表明一定受到了欺骗攻击。
【发明内容】
[0006]本发明针对上述问题,提供一种识别DNS欺骗攻击包的方法,以及利用该方法进一步检测DNS欺骗攻击的方法。
[0007]具体来说,本发明采用的技术方案如下:
[0008]一种识别DNS欺骗攻击包的方法,五元组(事务标识符、源IP地址、目的IP地址、源端口号、目的端口号)相同的若干个DNS应答包,同时符合以下四个特征的即为DNS欺骗包:
[0009]仅有一个应答域,应答域中是一个IP地址;
[0010]应答域中不包含Cname类型的记录;
[0011]应答包中A类记录对应的TTL值不合理;
[0012]应答包中不包含授权域和附加域。
[0013]一种检测DNS欺骗攻击的方法,其步骤包括:
[0014]I)通过旁路监听的方式捕获客户端和域名服务器之间的所有DNS数据包;
[0015]2)挑选在一定时间间隔内到达的应答包,并依据事务标识符建立请求应答映射表;
[0016]3)提取每个应答报文中的应答域个数、授权域个数、附加域个数、应答域的资源记录类型和对应的TTL值;
[0017]4)依据上述四个特征判断每个应答包是否为DNS欺骗攻击包,若是DNS欺骗攻击包则将其丢弃,否则即为合法的DNS应答包,将其转发给客户端。
[0018]本发明能够简单有效地识别DNS欺骗攻击包,及时检测出DNS欺骗攻击,对提高DNS系统的抗攻击性、保护DNS服务系统有很高的实用价值。
【附图说明】
[0019]图1是本发明检测欺骗攻击的方法的步骤流程图。
【具体实施方式】
[0020]为使本发明的上述目的、特征和优点能够更加明显易懂,下面通过具体实施例和附图,对本发明做进一步说明。
[0021]通常情况下,本地DNS服务器接收到上一级DNS服务器返回的响应报文后会对报文做如下处理:
[0022]检查响应报文的目的端口,是否与DNS请求报文的源端口相等,若不相等,说明不是对该请求的响应,协议栈则会丢弃该数据报文;
[0023]检查响应报文问题域,即确定应答包中的请求域名与请求包中的域名一致;
[0024]检查响应报文的事务ID (TID),在DNS服务器发出的查询请求中会包含一个TID,用来标识某个查询,在收到的DNS回复包中同样会包含TID,表示是对某个查询请求的应答。DNS服务器则根据TID来判断请求应答对,如果两个TID不相等,则丢弃该数据报文;
[0025]检查授权域和附加域,授权域和附加域中的域名必须和问题域中的域名同属于某个域名下的子域名;
[0026]如果上述所有条件都满足了,域名服务器就会接受该响应数据包作为其查询请求的应答,并缓存结果。综上所述,如果攻击者成功对DNS服务器进行欺骗攻击,必须要满足上面4个条件,缺一不可。
[0027]另一方面,对于一个DNS请求,域名服务器不会给出结果不同的多个应答包,即使目标域名对应多个IP地址,DNS服务器也会在一个DNS应答包中返回,只是有多个应答域而已。因此,若一个请求对应两个或两个以上五元组(事务标识符、源IP地址、目的IP地址、源端口号、目的端口号)相同,应答域不同的应答包,则怀疑其可能受到了欺骗攻击。
[0028]目前所有DNS客户端处理DNS应答包的方法都是简单地信任首先到达的数据包,丢弃所有后到达的,而不会对数据包的合法性作任何的分析。所以,攻击者为了攻击成功,必须保证其发出的欺骗包先于合法的应答包到达客户端。这就决定了欺骗包的简单化,具体体现在:只有一个应答域,没有授权域和附加域。相比之下,合法应答包的信息则比较丰富,除了可能有多个应答域之外,通常还有授权域,附加域等。
[0029]Tom Callahan 等人(Tom Callahan, Mark Allman, Michael Rabinovich.0nModern DNS Behav1r and Properties.SIGCOMM ACM Special Interest Group onData communicat1n.2013)在2013年6月发表的论文中指出:40 %的域名其TTL值小于一分钟,50 %的均小于350秒,80 %小于一小时,仅有约I %的域名的TTL值超过一天;同时 Rajab 等人(Rajab M A, Monrose F,Terzis A, et al.Peeking through thecloud:DNS-based estimat1n and its applicat1ns[C].Applied Cryptography andNetwork Security, 2008:21-38.)测量了 Alexa网站上全球排名前100的网站域名的授权TTL值,表明:大约85%的域名的TTL值小于I个小时。DNS欺骗攻击的最终目的是诱导用户访问一个恶意网址,进行诈骗、数据偷窃等恶意行为,攻击者希望此DNS记录在域名服务器中被缓存尽量长的时间,以扩大攻击范围,因此欺骗应答包中TTL值通常很大、不合理,具体体现在A类记录(将域名映射为对应的IPv4地址)的TTL值大于一小时,甚至超过一天。
[0030]Cname类型的记录标记了别名对应的正则名称。为了尽快将欺骗数据包返回给客户端,需要尽可能节约数据包的构造时间。因此,即使请求的域名为别名,欺骗应答包中也不包含Cname类型的记录。
[0031]以上阐述了 DNS欺骗攻击包四大特征的形成缘由,接下来对检测攻击系统作详细说明。
[0032]图1是本发明提供的检测欺骗攻击的方法的流程图,具体步骤包括:
[0033]101、通过旁路监听的方式捕获所有DNS请求包、应答包;
[0034]102、获取DNS请求包的发送时间T,挑选出在时间T+Δ T之前到达的所有应答包,依据事务ID建立映射表;Δ T是比请求响应延迟(客户端发出请求至收到第一个应答包的时间间隔)较大的一个时间间隔,实验测量表明请求响应延迟均小于I秒,所以ΔΤ可以取值为2?5秒;
[0035]103、基于网络数据包捕获开发包Libpcap,编程实现对捕获到的DNS数据包进行协议解析,提取每个应答报文中的应答域个数、授权域个数、附加域个数、应答域的资源记录类型、对应的TTL值等信息;
[0036]104、依据本发明提出的四个特征依次判断每个应答包是否为欺骗攻击包,是,则执行步骤105,否,则执行步骤106 ;
[0037]105、丢弃DNS欺骗攻击包;
[0038]106、此包为合法的DNS应答包,转发给目标域名系统客户端。
[0039]以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求书所述为准。
【主权项】
1.一种识别DNS欺骗攻击包的方法,其特征在于,对于事务标识符、源IP地址、目的IP地址、源端口号和目的端口号相同的若干个DNS应答包,同时符合以下四个特征的即为DNS欺骗包: a)仅有一个应答域,应答域中是一个IP地址; b)应答域中不包含Cname类型的记录; c)应答包中A类记录对应的TTL值不合理; d)应答包中不包含授权域和附加域。
2.如权利要求1所述的方法,其特征在于:所述A类记录对应的TTL值不合理,是指该TTL值超过I小时。
3.一种检测DNS欺骗攻击的方法,其特征在于,包括如下步骤: 1)通过旁路监听的方式捕获客户端和域名服务器之间的所有DNS数据包; 2)挑选在一定时间间隔内到达的应答包,并依据事务标识符建立请求应答映射表; 3)提取每个应答报文中的应答域个数、授权域个数、附加域个数、应答域的资源记录类型和对应的TTL值; 4)采用权利要求1所述方法中的四个特征判断每个应答包是否为DNS欺骗攻击包,若是DNS欺骗攻击包则将其丢弃,否则即为合法的DNS应答包,将其转发给客户端。
4.如权利要求3所述的方法,其特征在于:步骤2)首先获取DNS请求包的发送时间T,然后挑选出在时间T+Λ T之前到达的所有应答包,并依据事务标识符建立映射表,所述AT是比客户端发出请求至收到第一个应答包的时间间隔较大的一个时间间隔。
5.如权利要求4所述的方法,其特征在于:所述ΛT为2?5秒。
6.如权利要求3所述的方法,其特征在于:步骤3)通过编程实现对捕获到的DNS数据包进行协议解析,然后提取每个应答报文中的信息。
【专利摘要】本发明涉及一种识别DNS欺骗攻击包及检测DNS欺骗攻击的方法。对于五元组(事务标识符、源IP地址、目的IP地址、源端口号、目的端口号)相同的若干个DNS应答包,同时符合以下四个特征的即为DNS欺骗包:仅有一个应答域,应答域中是一个IP地址;应答域中不包含Cname类型的记录;应答包中A类记录对应的TTL值不合理;应答包中不包含授权域和附加域。检测DNS欺骗攻击时,首先捕获客户端和域名服务器之间的所有DNS数据包,然后依据上述方法判断每个应答包是否为DNS欺骗攻击包。本发明能够有效地识别DNS欺骗攻击包并及时检测出DNS欺骗攻击,对提高DNS系统的抗攻击性、保护DNS服务系统有很高的实用价值。
【IPC分类】H04L29-06, H04L29-12
【公开号】CN104618351
【申请号】CN201510020628
【发明人】郑超, 赵静芬, 孙永, 刘庆云, 郭莉, 杨嵘, 杨威
【申请人】中国科学院信息工程研究所
【公开日】2015年5月13日
【申请日】2015年1月15日