注意:阅读本笔记需要有 D N S DNS DNS域名解析的基本知识,了解其详细的解析过程(可查看我的另一篇博客:最全 D N S DNS DNS域名解析流程及域名注册(细节!))。
攻击名称: C a c h e P o i s o n i n g A t t a c k T a r g e t i n g D N S F o r w a r d i n g D e v i c e s Cache~Poisoning~Attack~Targeting~DNS~Forwarding~Devices Cache Poisoning Attack Targeting DNS Forwarding Devices
攻击可行性:即 D N S DNS DNS转发器的缺陷。相当数量的 D N S DNS DNS转发器无法对 D N S DNS DNS响应进行验证,像 D N S DNS DNS交易 I D ID ID、源 I P IP IP地址和目的端口号,并且容易受到 c a c h e p o i s o n i n g a t t a c k cache~poisoning~attack cache poisoning attack或 D O S DOS DOS。
攻击方法:敌手使用一个受控域名和权威域名服务器来注入任意域名的记录。该攻击还绕过了广泛部署的防御措施,包括随机临时端口号和 0 x 20 0x20 0x20编码。
攻击实验:家庭路由器和 D N S DNS DNS软件
结论: D N S DNS DNS转发器可以成为 D N S DNS DNS基础设施中的一个软肋。
启发:本研究的发现要求部署缓存中毒防御,如随机端口号, 0 x 20 0x20 0x20编码和 D N S S E C DNSSEC DNSSEC。
针对本攻击的防御措施:响应验证、按照响应进行 D N S DNS DNS缓存、在 D N S DNS DNS记录上进行 0 x 20 0x20 0x20编码、随机化 I P I D IPID IPID值。
事实上,DNS标准没有详细说明哪个缓存行为(按记录缓存或按响应缓存)应该被采用,但是,通过我们的测试发现,大多数实现按记录进行缓存。
关键词解析
D N S F o r w a r d e r DNS~Forwarder DNS Forwarder: D N S DNS DNS转发器。
D N S DNS DNS转发器出现的时间比名称服务器和解析器都要晚。随着生态系统的发展,它现在包含多层服务器,包括转发设备。虽然目前使用的 D N S DNS DNS转发器很普遍,但在标准文件中仍然缺乏关于其实施细节的具体指导方针。
经整理分析,有两种对转发器的定义:
**一、充当递归解析器的上游服务器。**这些设备用于访问权威服务器,通常具有更好的互联网连接能力或更大的缓存能力,它指的是一个权威的区域从服务器向其主服务器转发更新消息。( R F C 2136 RFC~2136 RFC 2136、 R F C 2308 RFC~2308 RFC 2308、 R F C 7626 RFC~7626 RFC 7626文件均有提到)
**二、位于客户端和递归解析器之间。**这些设备从客户端获取查询消息,将查询消息转发给其他的服务器,而不是进行解析。( R F C 3597 RFC~3597 RFC 3597、 R F C 7871 RFC~7871 RFC 7871、 R F C 5625 RFC~5625 RFC 5625文件均有提到)
最新的文件( R F C 8499 RFC~8499 RFC 8499)对转发器的定义是:位于存根解析器与递归解析器之间
所处位置:见下图 1 1 1:
主要工作:当 D N S DNS DNS转发器收到查询时,它不是递归地执行解析,而是简单地将查询转发给上游递归解析器。
其与递归解析器的区别:
递归解析器就是“以递归形式进行解析”的解析器,递归解析器应该处理给其他服务器的引用,以及其他名称的别名,并将资源记录聚合成一个最终答案。它还应执行完整性检查,像 B a i l i w i c k Bailiwick Bailiwick检查和 D N S S E C DNSSEC DNSSEC验证。
D N S DNS DNS转发器不递归的解析查询,它不处理引用,并且通常不能够验证响应**(致命弱点)**,完全依赖于上游服务器去执行响应验证,正是由于这个致命弱点,攻击者可以注入包含有其他域名的欺骗碎片并欺骗转发器将它缓存下来。例如,我们测试的家庭路由器都没有验证响应中的 C N A M E CNAME CNAME链。结果,易受攻击的 D N S DNS DNS转发器无法区分恶意响应,这些响应在被上游解析器检查后被篡改。但是,如果 D N S DNS DNS转发器执行响应认证来使攻击无效(例如,通过“ r e − q u e r y re-query re−query”或完全 D N S S E C DNSSEC DNSSEC验证),它将以递归模式运行,由于性能开销,这是不需要的。
- 对于本地网络中的 c l i e n t s clients clients,使用 D N S DNS DNS转发器可降低安全风险,因为它不会直接暴露给互联网攻击者。
- 实际上超过 95 95 95%的开放 D N S DNS DNS解析器都是 D N S DNS DNS转发器,它们中的大多数运行在家用网络设备中。
- 但是目前对 D N S DNS DNS转发器的理解和安全状况的研究很少。
先前的 D N S C a c h e P o i s o n i n g A t t a c k DNS~Cache~Poisoning~Attack DNS Cache Poisoning Attack
D N S DNS DNS缓存中毒攻击由来已久,对互联网用户产生了严重的威胁。以下是两种主要的攻击方法,但是都有其局限性。
∙ \bullet ∙ F o r g i n g A t t a c k s Forging~Attacks Forging Attacks(伪造攻击)
攻击目标:精心制作一个恶意 D N S DNS DNS响应,欺骗解析器接受它。
攻击成功标志:在经过身份验证的响应到达之前,如果攻击者伪造了带有正确元数据的 D N S DNS DNS响应,解析器可以接受恶意响应,攻击就会成功。
元数据:此处指的是 q u e s t i o n s e c t i o n question~section question section、 D N S t r a n s a c t i o n I D DNS~transaction~ID DNS transaction ID、 s o u r c e / d e s t i n a t i o n a d d r e s s source/destination~address source/destination address和 p o r t n u m b e r s port~numbers port numbers。
正确元数据的意思就是,响应中的这4个元数据与查询消息中的元数据相匹配。
具体实例: K a m i n s k y A t t a c k Kaminsky~Attack Kaminsky At