WSEC DNS Protecting Recursive DNS Resolvers from Poisoning Attacks读后报告
WSEC DNS: Protecting Recursive DNS Resolvers fromPoisoning Attacks读后报告工硕班:贺俊铭 学号:2013220458一、
WSEC DNS: Protecting Recursive DNS Resolvers from
Poisoning Attacks读后报告
工硕班:贺俊铭 学号:2013220458
一、 这篇文章描述的攻击模型
投毒者向目标DNS 服务器发送一个域名解析请求,目标DNS 服务器在本机中没有缓存此信息,向上一级权威服务器发送递归解析请求,此时投毒者伪造大量应答数据包。在投毒者伪造的应答报文中, 应答资源记录部分与权威应答一样, 但是权威资源记录部分增加了一个伪造的NS 记录, 并且在额外资源记录部分含有相应的伪造IP 地址。若该报文能在权威应答之前到达目标服务器,并能成功匹配原查询报文的发送IP 地址、端口号和查询ID ,则投毒成功。一旦投毒成功, 该资源记录将被写入目标服务器的缓存中。在该记录有效期内, 对名字服务器管辖的所有域名的查询都将被发送到投毒者控制的IP 中。
二、 论文的主要贡献、方法和效果
贡献:现在已经提出的DNSSEC ,DNSCurve 等在技术上能够对DNS
进行很好的防御,但都面临社会和政治因素,需要对整个DNS 架构进行调整,在部署上一直面临着巨大的困难。而我们提出的WSEC DNS,不需要对整个DNS 架构进行巨大调整,只需要进行DNS 服务器的简单配置,对管理员来说是可以选择安装或不安装,只需要改变一下DNS 域文件上的配置文件,在可扩展性和部署性上很容易,能够达到很高的安全性。
方法:1. DNS解析服务器参数配置为支持WSEC DNS
2. 主机向DNS 解析服务器查询域名,DNS 解析服务器在缓存中
没有发现对应的IP 。
,3. DNS解析服务器向询问权威服务器询问是否支持WSEC
DNS ,在询问包中增加了长度为N 的通配符,称为一次握手。
4. 如果权威服务器返回不支持WSEC DNS,则DNS 解析服务
器向权威服务器发送正常的递归解析包,解析域名。
5. 如果权威服务器返回支持WSEC DNS,则DNS 解析服务器
向权威服务器发送带长度为N 的通配符的递归解析包,解析域名。
6. 主机获得解析到的IP 地址包后,减去长度为N 的通配符字段,
就是最后的域名解析结果。
此外,为了增加效率,设置了积极和消极的WSEC 缓存,防止顶级域名服务器对域名解析服务器的随意重写。
WSEC 积极缓存:权威服务器对自己下面的某个解析服务器域设置了 WSEC 积极缓存后,此域中的解析服务器向权威服务器进行了一次握手后,在一定时限内就不需要在进行握手确认,直接用带通配符的数据包进行询问查询,降低了数据包流量,提高了效率。
WSEC 消极缓存:权威服务器对自己下面的某个解析服务器域设置了WSEC 消极缓存后,此域中的解析服务器与权威服务器在一定时限内不用进行握手,直接使用正常DNS 请求与应答包交流。
防止顶级域名服务器对域名解析服务器的随意重写:当顶级域名服务器对域名解析服务器的缓存进行更新时,为确保合法性,域名解析服务器向根域名服务器发送WSEC 的DNS 报文,确
,认域名与IP 是否正确对应,确保缓存更新的合法性。
效果:设攻击者一次性猜中应答报文的概率为P1, 则:P1=1/N*I*P
N 为一个域名的权威服务器数量;I 为DNS 报文中的ID 域范围;P 为UDP 报文中的源端口号范围;相比于正常报文,WSEC 的DNS 报文要多5位通配符L ,其变量范围为365,
则:P1=1/N*I*P*L。根据文章的数据,在报文大小80bit, 带宽10M ,的情况下,猜对WSEC 的DNS 报文需要5.58年;而其它的非WSEC 的DNS 报文猜对时间最长8.82天。可以看到WSEC 的DNS 报文的强度还是能满足防御要求的。
三、 哪些不清楚的地方,或者你觉得论文的哪些地方值得怀疑
一是关于积极缓存和消极缓存,是由管理员手动配置还是服务器自动更新,其是否会成为攻击者的攻击对象,比如设置被攻击服务器域为消极缓存,便于攻击者攻击。
二是关于带宽限制,分布式攻击向被攻击发送大量DNS 猜测报文,可以不受本地网络带宽限制,例如在10M 带宽需要5.58年,100M 带宽需要0.56年,那么在10G 的分布式流量下是否就是0.0056年,约2天?
三是通配符产生机制,是随机产生(通过某一函数)是否存在规律可找,文中没有提到如何产生通配符
四、 部署这种防范措施有哪些困难?
此措施通过增加随机数编码,增加攻击者猜测的难度,并没有从根本上解决DNS 服务器之间的信任问题,如果DNS 解析服务器对话的权威域名服务器本身就不是安全的,这种措施无法生效,所以在面
,对更多DNS 服务器之间的体系结构安全问题时,此种措施只能起到部分作用,长远来看还是需要建立DNS 服务器之间的信任体系。
通过设置报警机制应该能防御此种攻击,短时间内对某查询的应答报文回复量出正常情况,服务器完全可以采取丢弃或者屏蔽等方法来防止这种猜测攻击,达到同样的防御效果。
五、 近年发表的与DNS 安全论文中,列出一篇给出你认为比较有意
思的文章
《Kaminsky 域名系统缓存投毒防御策略研究》作者许成喜, 胡荣贵, 施凡, 张岩庆
讲述了Kaminsky 域名系统缓存投毒的攻击方法:
(1)投毒者向目标服务器发送一个DNS 查询请求, 该查询请求中的域名使用目标域名和随机序列的组合。WWW. 13481984 domain.com 为目标域名,13481984 是随机生成的序列。显然, 这个查询域名所对应的主机是不存在的, 正常返回的应答报文中应答资源记录部分应为NX DOMAIN ,表示该域名主机不存在。
(2)目标服务器会按DNS 解析过程进行解析。投毒者在发送查询请求后立即伪造大量应答报文并发送至目标服务器。在投毒者伪造的应答报文中, 应答资源记录部分与权威应答一样, 但是权威资源记录部分增加了一个伪造的NS 记录, 并且在额外资源记录部分含有相应的伪造IP 地址。
(3)若该报文能在权威应答之前到达目标服务器并能成功匹配原查询报文的发送IP 地址、端口号和查询ID, 则投毒成功。一旦投毒成功, 该资源记录将被写入目标服务器的缓存中。在该记录有效期内, 对名字服务器ns1.domain.com 管辖的所有域名的查询都将被发送到投毒者控制的IP 中。
(4)当权威DNS 服务器的应答报文到达缓存服务器时, 将会被忽略, 直
,接丢弃。
通过分析分析投毒成功概率与投毒时间的内在联系将缓存服务器向权威服务器发送查询请求与缓存服务器收到权威服务器应答之间的时间间隔定义为一个投毒机会窗口。投毒者伪造的应答报文必须在投毒窗口内, 即先于权威应答报文到达缓存服务器, 才有可能被缓存DNS 服务器所接受。定义P 。为一个投毒机会窗口内投毒成功的概率, 则有:P=B*W/N*I*P*D,B为占用的网络带宽;W 为投毒机会窗口的大小;N 为一个域名的权威服务器数量;, 为DNS 报文中的I D域范围;P 为UDP 报文中的源端口号范围;D 为攻击者发送报文的平均大小。
针对此攻击提出了一定的策略进行防御,应答报文的端口检查,源IP 检查,ID 域检查,超时检查等等,并对攻击成功耗时进行了模拟计算。