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
- Microsoft
- Amazon
- Oracle
- Cloudflare
0x05 修复建议
临时修补建议:
在流量设备侧对DNS响应包中对满足如下条件的包进行拦截
- 含有大量的NS转发查询请求
- 复数指向同一服务器的二级/多级子域名请求
不响应非信任服务器的 DNS 查询结果
- 同传统的防护策略采用流量黑白名单进行
0x06 时间线
2020-05-21 国外研究团队发布NXNSAttack研究论文
2020-05-28 360CERT发布预警