浅析 DNS 反射放大攻击


DNS 反射放大攻击分析

前阵子业务上碰到了 DDOS 攻击,正好是 DNS 反射型的,之前只是听过,没自己处理过,仔细学习了一番之后做点记录。

简介

DNS 反射放大攻击主要是利用 DNS 回复包比请求包大的特点,放大流量,伪造请求包的源 IP 地址为受害者 IP,将应答包的流量引入受害的服务器。

简单对比下正常的 DNS 查询和攻击者的攻击方式:

正常 DNS 查询: 源 IP 地址 -----DNS 查询----> DNS 服务器 -----DNS 回复包----> 源 IP 地址

DNS 攻击: 伪造 IP 地址 -----DNS 查询----> DNS 服务器 -----DNS 回复包----> 伪造的 IP 地址(攻击目标)

分析

从服务器上抓了一些攻击包,根据这些数据包可以来看看这种攻击都是什么特点。

全部是大量的 DNS 响应请求( Response 请求)



通常里面包含一些不存在或者生僻的域名,经过循环查询从而放大 DNS 流量



会将将 OPT RR 字段中的 UDP 报文大小设置为很大的值(如 4096)



通过这样放大了攻击流量。发送的 DNS 查询请求数据包大小一般为 60 字节左右,而查询返回结果的数据包大小通常为 3000 字节以上,因此,使用该方式进行放大攻击能够达到 50 倍以上的放大效果。

大量的流量都来自正常的 DNS 服务器

攻击者通过伪造 IP 向正常的 DNS 服务器发送这些恶意的查询请求,将流量引入受害者的服务器,受害者查不到攻击者的真实 IP。

解决方案

如果没有必要可以关闭 DNS 服务(这完全是废话,哈哈)如果有 DNS 服务,做好响应限制,DNS 服务不应对互联网上的域名解析服务,而只响公司内部网络 DNS 解析请求。限制 DNS 响应数据包大小的阈值,直接丢弃超大的响应数据包。