《DNS攻击防范科普系列5》--聊一聊DNS劫持那些事

简介: 作为《DNS攻击防范科普系列》的最后一篇,今天我们来好好聊聊DNS劫持。先回顾一下DNS劫持的概念?DNS劫持即通过某种技术手段,篡改正确域名和IP地址的映射关系,使得域名映射到了错误的IP地址,因此可以认为DNS劫持是一种DNS重定向攻击。

作为《DNS攻击防范科普系列》的最后一篇,今天我们来好好聊聊DNS劫持。先回顾一下DNS劫持的概念?DNS劫持即通过某种技术手段,篡改正确域名和IP地址的映射关系,使得域名映射到了错误的IP地址,因此可以认为DNS劫持是一种DNS重定向攻击。DNS劫持通常可被用作域名欺诈,如在用户访问网页时显示额外的信息来赚取收入等;也可被用作网络钓鱼,如显示用户访问的虚假网站版本并非法窃取用户的个人信息。
那DNS劫持到底有多大的危害呢?我们来看两个真实的大事件:

DNS劫持大事记

事件1、《AWS route53 BGP路由泄漏事件》

 事件危害:据不完全统计,DNS劫持导致两个小时内有多个用户的以太坊钱包被转账清空,共计至少13000美元的资产被黑客盗取。
 事件还原: 事件发生在2018年4月24日。黑客针对四段分配给AWS,本应作为AWS route53 DNS服务器服务地址的IP空间(205.251.192.0/23, 205.251.194.0/23, 205.251.196.0/23, 205.251.198.0/23)发布了虚假的BGP路由,导致在BGP泄漏的两个小时期间,本应该AWS route53 DNS服务器的DNS查询都被重定向到了黑客的恶意DNS服务器。且黑客DNS劫持的目标十分明确,恶意DNS服务器只响应对myetherwallet.com的查询,其他域名的查询均返回SERVFAIL。一旦用户没有注意“网站不安全”的提示而访问myetherwallet.com登录自己的以太坊钱包,黑客就可以轻易获取用户的私钥进而窃取用户的数字货币资产。正常情况的DNS,和劫持后的DNS的情况,请参考如下攻击示意图(来自cloudflare博客):
正常情况:
_1

BGP泄漏后:
_2

事件2、《巴西银行钓鱼事件》

 事件危害:黑客诱导原本想访问正常银行网站的受害者访问到钓鱼网站,并恶意窃取受害者的银行账目密码信息。
 事件还原:事件发生在2018年。黑客利用D-Link路由器的漏洞,入侵了至少500个家用路由器。黑客入侵后更改受害者路由器上的DNS配置,将受害者的DNS请求重定向到黑客自己搭建的恶意DNS服务器上。黑客入侵后更改受害者路由器上的DNS配置,将受害者的DNS请求重定向到黑客自己搭建的恶意DNS服务器上,最终诱导原本想访问正常银行网站的受害者访问到钓鱼网站,并恶意窃取受害者的银行账目密码信息。
_3

图片参考:bankinfosecurity

上面两个案例都是触目惊心啊。接下来我们来介绍一下黑客们是怎么做到DNS劫持的?

DNS解析原理

介绍劫持原理前,你需要先了解典型的DNS解析流程。
_

客户端发起递归DNS请求,本地递归DNS(大多数情况下为运营商DNS)或者公共DNS通过迭代查询请求多级的DNS权威服务器,并最终将查询结果返回给客户端。可以看到,一次完整的DNS查询:
• 链路长。查询过程包含多次,多级的网络通信。
• 参与角色多。查询过程涉及客户端,DNS递归服务器,权威服务器等角色。 在一次完整DNS查询链路的各个环节,其实都有可能被DNS劫持,下面的章节会逐一分析各种类型的DNS劫持。

DNS劫持分类

我们按照客户端侧--递归DNS服务器--权威DNS服务器的路径,将DNS劫持做如下分类:

【一、本地DNS劫持】

客户端侧发生的DNS劫持统称为本地DNS劫持。本地DNS劫持可能是:

  1. 黑客通过木马病毒或者恶意程序入侵PC,篡改DNS配置(hosts文件,DNS服务器地址,DNS缓存等)。
  2. 黑客利用路由器漏洞或者破击路由器管理账号入侵路由器并且篡改DNS配置。
  3. 一些企业代理设备(如Cisco Umbrella intelligent proxy)针对企业内部场景对一些特定的域名做DNS劫持解析为指定的结果。

【二、DNS解析路径劫持】

DNS解析过程中发生在客户端和DNS服务器网络通信时的DNS劫持统一归类为DNS解析路径劫持。通过对DNS解析报文在查询阶段的劫持路径进行划分,又可以将DNS解析路径劫持划分为如下三类:

• DNS请求转发

通过技术手段(中间盒子,软件等)将DNS流量重定向到其他DNS服务器。
案例:
_5
图片来自《巫俊峰, 沈瀚. 基于旁路抢答机制的异网DNS管控实践. 电信技术[J]》

• DNS请求复制

利用分光等设备将DNS查询复制到网络设备,并先于正常应答返回DNS劫持的结果。
案例:一个DNS查询抓包返回两个不同的应答。
_6

• DNS请求代答

网络设备或者软件直接代替DNS服务器对DNS查询进行应答。
案例:一些DNS服务器实现了SERVFAIL重写和NXDOMAIN重写的功能。
_9

【三、篡改DNS权威记录】

篡改DNS权威记录 我们这里指的黑客非法入侵DNS权威记录管理账号,直接修改DNS记录的行为。
案例:
黑客黑入域名的管理账户,篡改DNS权威记录指向自己的恶意服务器以实现DNS劫持。
_7

黑客黑入域名的上级注册局管理账户,篡改域名的NS授权记录,将域名授权给黑客自己搭建的恶意DNS服务器以实现DNS劫持。
_8

黑客黑入域名的上级注册局管理账户,篡改域名的NS授权记录,将域名授权给黑客自己搭建的恶意DNS服务器以实现DNS劫持。(以上参考fireeye博客

DNS劫持应对策略

DNS劫持在互联网中似乎已经变成了家常便饭,那么该如何应对各种层出不穷的DNS劫持呢?如果怀疑自己遇到了DNS劫持,首先要做的事情就是要确认问题。

如何确认DNS劫持

查看路由器DNS配置是否被篡改。
可以使用一些全网拨测的工具确认DNS劫持和其影响范围。在此隆重介绍一下,阿里的DNS域名检测工具于国庆后已经正式上线,地址是:https://zijian.aliyun.com/#/domainDetect
_

通过工具查看回复DNS应答的DNS服务器,确认DNS解析是否被重定向。
• whatismydnsresolver http://whatismydnsresolver.com/
移动端可以安装一些DNS相关的测试工具进行排查:
• 安卓 ping & dns
• IOS IOS iNetTools

DNS劫持防范

• 安装杀毒软件,防御木马病毒和恶意软件;定期修改路由器管理账号密码和更新固件。
• 选择安全技术实力过硬的域名注册商,并且给自己的域名权威数据上锁,防止域名权威数据被篡改。
• 选择支持DNSSEC的域名解析服务商,并且给自己的域名实施DNSSEC。DNSSEC能够保证递归DNS服务器和权威DNS服务器之间的通信不被篡改。阿里云DNS作为一家专业的DNS解析服务厂商,一直在不断完善打磨产品功能,DNSSEC功能已经在开发中,不日就会上线发布。
• 在客户端和递归DNS服务器通信的最后一英里使用DNS加密技术,如DNS-over-TLS,DNS-over-HTTPS等。
在此《DNS攻击防范科普系列》已经完结,欢迎大家给我们留意反馈自己对DNS攻击防范对看法。本系列其他的文章地址奉上:
系列1—《你的DNS服务器真的安全么》
系列2 --《DNS服务器怎么防DDoS攻击》
系列3 --《如何保障 DNS 操作安全》
系列4--《遭遇DNS缓存投毒该怎么办》

相关文章
|
4月前
|
存储 缓存 网络协议
DNS攻击基础
DNS攻击基础
|
4月前
|
缓存 网络协议 安全
常见的DNS记录类型有哪些,常见的DNS攻击方式有哪些,以及怎么防护介绍
常见的DNS记录类型有哪些,常见的DNS攻击方式有哪些,以及怎么防护介绍
|
2月前
|
域名解析 缓存 网络协议
DNS问题之服务器流量被攻击如何解决
DNS服务器是负责将域名转换为IP地址的服务,它是互联网上实现域名解析的关键基础设施;本合集将探讨DNS服务器的工作原理、配置方法和常见问题处理,帮助用户理解和优化DNS服务的使用。
42 3
|
3月前
|
JSON 安全 JavaScript
深入解析XXS攻击
深入解析XXS攻击
111 2
|
4月前
|
监控 安全 网络安全
深度解析:DDoS攻击与先进防御策略
DDoS 介绍 DDoS(分布式拒绝服务)攻击是一种恶意网络活动,旨在通过同时向目标系统发送大量请求或流量,使其无法正常运行或提供服务。攻击者通常利用网络上的多个计算机和设备,形成一个"僵尸网络"或"僵尸军团",并协调这些设备以集中地向目标发动攻击。 DDoS 攻击理论 目标系统(Target System):DDoS攻击的目标是一个网络服务、网站、服务器或应用程序,攻击旨在使其无法正常运行,从而造成服务中断。 攻击者(Attackers):攻击者是发起DDoS攻击的个人、组织或恶意软件的开发者。他们试图通过制造大量的流量来超过目标系统的处理能力。
104 0
|
10月前
|
SQL 存储 监控
解析汽车APP面临的18种攻击风险
一文解析汽车APP面临的攻击风险
92 0
|
缓存 网络协议 安全
DNS攻击和DNS污染是什么意思?底层原理是什么?
DNS攻击和DNS污染是什么意思?底层原理是什么?
487 0
|
网络协议
|
网络协议 网络安全 Python
Python 实现DNS查询放大攻击
查询放大攻击的原理是,通过网络中存在的DNS服务器资源,对目标主机发起的拒绝服务攻击,其原理是伪造源地址为被攻击目标的地址,向DNS递归服务器发起查询请求,此时由于源IP是伪造的,固在DNS服务器回包的时候,会默认回给伪造的IP地址,从而使DNS服务成为了流量放大和攻击的实施者,通过查询大量的DNS服务器,从而实现反弹大量的查询流量,导致目标主机查询带宽被塞满,实现DDOS的目的。
356 0
Python 实现DNS查询放大攻击
|
缓存 网络协议 安全
Linux:设置/修改linux主机名+hosts映射+主机名解析机制分析+DNS域名劫持
Linux:设置/修改linux主机名+hosts映射+主机名解析机制分析+DNS域名劫持
494 0
Linux:设置/修改linux主机名+hosts映射+主机名解析机制分析+DNS域名劫持

相关产品

  • 云解析DNS
  • 推荐镜像

    更多