0x01 漏洞背景

2020年05月28日, 360CERT监测发现 国外研究团队 发布了 DNS协议中实现的逻辑错误导致拒绝服务漏洞的风险通告,漏洞等级:高危。

域名系统(服务)协议(DNS)是一种分布式网络目录服务,主要用于域名与 IP 地址的相互转换,进而简化记忆IP地址的互联网连接方式。

DNS协议 存在 实现上的逻辑错误,攻击者 通过 发起指向恶意name-server 的DNS查询请求,可以造成 递归服务器/特定域名服务器拒绝服务影响。

对此,360CERT建议广大用户及时安装最新补丁,做好资产自查以及预防工作,以免遭受黑客攻击。

 

0x02 风险等级

360CERT对该漏洞的评定结果如下

评定方式
等级

威胁等级
高危

影响面
广泛

 

0x03 漏洞详情

以下内容部分引用 NXNSAttack Paper

下面做出如下定义

描述
简称

用户所在网络的上层DNS服务器
服务器A

attacker.com nameserver服务器
服务器B

victim.com 被攻击的服务器
服务器C

以 sd1.attacker.com 的 DNS 解析过程为例

在攻击者触发向 恶意的 name-server 服务器 进行对应域名解析的时候。

首先会由当前网络环境中的上层DNS服务器(服务器A)去检索 attacker.com 的 name-server 服务(服务器B)。
攻击者控制该 nameserver 服务器(服务器B)返回特制的响应包(该包的主要目的:通知接收服务器做NS转发查询)。

响应包中含有复数条记录。
每天记录都表述 sd1.attacker.com 需要转发到 {fake-n}.victim.com 的 dns name-server 服务器(服务器C)去做查询。
其中不含对应的IP地址。(确保查询的成立)

(服务器A)接收到该特制的响应包后会逐一对响应包中的NS记录进行 dns 查询。
导致(服务器A)发送大量的请求包/(服务器C)接收大量的请求包导致拒绝服务。

根据研究报告显示,NXNSAttack 攻击比 NXDomain 更加高效,放大倍数达到了递归解析器交换的包数的1620倍。

 

0x04 影响版本

目前已知受到影响的组件和服务有

组件

UNIX bind 组件
Windows DNS

服务商

PowerDNS
Google
Microsoft
Amazon
Oracle
Cloudflare

 

0x05 修复建议

临时修补建议:

在流量设备侧对DNS响应包中对满足如下条件的包进行拦截

含有大量的NS转发查询请求
复数指向同一服务器的二级/多级子域名请求

不响应非信任服务器的 DNS 查询结果

同传统的防护策略采用流量黑白名单进行

 

0x06 时间线

2020-05-21 国外研究团队发布NXNSAttack研究论文

2020-05-28 360CERT发布预警

 

0x07 参考链接

NXNSAttack
Debian — Security Information — DSA-4689-1 bind9
ADV200009 | Windows DNS Server Denial of Service Vulnerability

文章原文链接:https://www.anquanke.com/post/id/207004