DNS污染:
DNS污染又称域名服务缓存投毒,是指通过制作域名服务数据包,将域名指向不正确的IP地址。在正常的DNS解析过程中,下一级域名服务器会将从上游域名服务器获得的解析记录保存一段时间。
当在TTL值失效之前,有相同域名的解析请求时,就会直接将解析记录告知客户端,而无需进行全球范围的递归查询,这样既加快了查询时间,同时也降低了服务器工作压力。
但在这个过程中,如果局域域名服务器的缓存受到污染,就会告知客户端错误的解析记录,从而将用户指向错误的网站。这种攻击方式,被称为DNS污染。
使用场景:
许多国内被禁止的网站都是通过DNS污染实现的,如google、YouTube等网站无法直接访问都是通过DNS污染方式实现的。
因为http://google.com的服务器在国外,所以在访问时DNS解析必须转到国际带宽的输出,然后会被GFW捕获。由于DNS使用UDP协议,而UDP没有验证机制,只需发送即可。因此,此时GFW伪装成一个相应的DNS服务器,就会返回错误的地址信息。
应对方式:
1. 使用多组DNS服务器,降低DNS污染的损失。
-
2.
使用第三方
DNS
解析服务,以及使用
CDN
服务,
CDN
服务商会提供他们的
DNS
服务器解析服务和
CDN
的网络
IP
地址
。
CDN的全称是Content Delivery Network,即内容分发网络。 CDN的基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中,在用户访问网站时,利用全局负载技术将用户的访问指向距离最近的工作正常的缓存服务器上,由缓存服务器直接响应用户请求。
常见的几种DNS攻击类型:
1.DNS劫持
DNS劫持又称域名劫持,这类攻击一般是通过恶意软件、修改缓存、控制域名管理系统等方式取得DNS解析控制权,然后通过修改DNS解析记录或更改解析服务器方式,将用户引导至不可达的站点或受攻击者控制的非法网站,以达到非法获取用户数据,谋取非法利益的目的。
2.缓存投毒
攻击者将非法网络域名地址传送给DNS服务器,一旦服务器接收该非法地址,其缓存就会被攻击。其实现方式有多种,比如可以通过利用客户ISP端的DNS缓存服务器的漏洞进行攻击或控制,从而改变该ISP内的用户访问域名的响应结果;
或者,黑客通过利用用户权威域名服务器上的漏洞,如当用户权威域名服务器同时可以被当作缓存服务器使用,黑客可以实现缓存投毒,将错误的域名纪录存入缓存中,从而使所有使用该缓存服务器的用户得到错误的DNS解析结果。
与钓鱼攻击采用非法URL不同,DNS缓存中毒使用的是合法的URL地址,用户往往会以为登陆的是自己熟悉的网站,其实却是其他的网站。
3.DDoS攻击
攻击者通过控制多台计算机并伪造大量的源IP向攻击目标持续不断地发起海量DNS查询请求,使得DNS服务器频繁地进行全球迭代查询,从而导致网络带宽耗尽而无法进行正常DNS查询请求。
攻击者还会利用DNS协议中存在的漏洞,恶意创造一个载荷过大的请求,导致目标DNS服务器崩溃。
4.DNS反射放大攻击
DNS反射放大攻击主要是利用DNS回复包比请求包大的特点,放大流量,伪造请求包的源IP地址为受害者IP,将应答包的流量引入受害的服务器。
我们发出的解析请求长度很小,但是收到的结果却非常大,尤其是查询某一域名所有类型的DNS记录时,返回的数据量就更大,于是可以利用这些解析服务器来攻击某个目标地址的服务器,而且是利用被控制的机器发起伪造的解析请求,然后解析结果返回给被攻击目标。
由于DNS解析一般是UDP请求,不需要握手,源地址属性易于伪造,而且部分“肉鸡”在平时本来就是合法的IP地址,我们很难验证请求的真实性和合法性。
常见的DNS记录:
1. A 记录 - 保存域的 IP 地址的记录。
2. AAAA 记录 包含域的 IPv6 地址的记录(与 A 记录相反,A 记录列出的是 IPv4 地址)。
3. CNAME 记录 将一个域或子域转发到另一个域,不提供 IP 地址。
4. MX 记录 -将邮件定向到电子邮件服务器。
5. TXT 记录 - 可让管理员在记录中存储文本注释。这些记录通常用于电子邮件安全。
6. NS 记录 - 存储 DNS 条目的名称服务器。
7. SOA 记录- 存储域的管理信息。
8. SRV 记录 - 指定用于特定服务的端口。
9. PTR 记录 - 在反向查询中提供域名。
参考链接:
https://www.cloudflare.com/zh-cn/learning/dns/dns-records/
https://zhuanlan.zhihu.com/p/413192884