DNS 是网络连接的重要组成部分,与路由系统一起构成互联网上的寻址系统。如果DNS出现故障并且“导航系统”出现故障,网络连接将变得无法访问或到达错误的地址。 DNS 的关键作用和固有的漏洞使其自诞生以来就成为网络攻击的主要目标。 DNS劫持是最常见、危害性最大的攻击方式。接下来,本文将简单介绍一下DNS劫持的原理以及如何应对。
什么是DNS劫持?
DNS劫持是通过各种技术手段获得域名解析控制权,改变域名解析记录,将域名指向的服务器IP改为受控IP地址的行为。访问虚假网站或窃取破坏服务正常目的的信息。
DNS劫持的危害
DNS劫持的危害是双向的、多方面的。用户被重定向到与原网站极为相似的网站,并被要求输入账号、密码、身份证等敏感信息,面临个人信息泄露和财产损失的风险。对于商业组织来说,意味着失去对域名的控制,使网站无法访问,失去正常的流量,妨碍正常的业务运营,影响公司形象和经济利益。
DNS劫持图
DNS劫持案例
(1) 2009年,巴西最大的银行Bandesco遭遇DNS劫持,导致1%的用户被钓鱼。受影响的用户被重定向到另一个虚假银行网站,该网站试图窃取用户密码并安装恶意软件。
(2)2010年1月12日,著名的“百度域名劫持”事件发生,不少网友发现无法登录百度主页的异常情况。根据百度域名的Whois查询结果,发现该网站的域名被雅虎旗下的两台域名服务器劫持,有网友反映该网站的页面显示为黑色背景和伊朗国旗。发现它被篡改了。这对百度的安全形象和业务运营产生了重大负面影响。
(3)2012年,发生了三井住友银行、三菱东京UFJ银行、邮政储蓄银行提供的网上银行服务在用户登录时被钓鱼网站劫持的事件。在官方网站上,您会看到一个弹出窗口,需要输入您的帐户和密码,您还会看到银行的徽标。如果不小心的话,很难辨别真假。
(4)2013年5月发生历史上最大的DNS钓鱼攻击,感染800名用户。
(5)2014年1月21日,全国DNS发生重大故障,导致国内顶级域名根服务器出现故障,大部分网站受到影响。
上述例子表明,DNS劫持是一种广泛存在的网络攻击技术,不仅对用户信息资产的安全构成严重威胁,而且还会影响企业的品牌形象和网络流量。由于涉及的损失巨大,了解DNS劫持的原理并制定有针对性的对策非常重要。
DNS劫持原理
要介绍DNS劫持的原理,首先要了解一下一般的DNS解析流程。当客户端发起域名请求时,本地递归服务器(大多数情况是运营商DNS)或公共DNS逐级查询根域名服务器、顶级域名服务器和权威域名服务器。将最终的查询结果返回给客户端。
除了这个一般的解析过程之外,DNS缓存的存在意味着当客户端发起请求时,浏览器缓存、hosts文件和本地递归服务器DNS缓存首先直接通知客户端本地存储的解析记录要做。这消除了全局递归查询步骤的需要。
从上面的DNS解析过程可以看出,一次完整的DNS查询有两个特点:
链路长,查询过程涉及多个多级网络通信。
涉及的角色很多,查询过程涉及客户端(浏览器缓存、主机文件)、递归解析服务器、权威解析服务器等角色。
全DNS查询环节中的所有环节都可以利用技术手段篡改域名解析记录,将域名接管到错误的IP地址上。下面,我们将分别介绍每种类型的DNS劫持。
DNS解析流程图
DNS劫持类型
1.本地DNS劫持
本地DNS劫持是指发生在客户端的各类DNS劫持,包括:
(1)通过木马或恶意程序渗透客户端,修改DNS缓存、hosts文件、DNS服务器地址等DNS相关设置。
(2)利用路由器的漏洞渗透路由器,篡改路由器内部的DNS缓存。
2、劫持DNS解析路径
DNS解析路径劫持是指发生在客户端和DNS服务器网络通信之间的DNS劫持技术。通过在查询阶段拆分DNS劫持消息的路径,可以将DNS劫持分为四类:
(1) DNS请求转发
通过中间盒、软件等技术手段,用户发出的DNS请求被重定向到攻击者控制的流氓DNS服务器,进而重定向到恶意站点。
(2)复制DNS请求
当用户发起请求时,将DNS 查询复制到网络设备并在正常响应之前返回DNS 劫持结果。此方法表示为返回两个不同响应的DNS 查询数据包捕获。
(3) DNS请求代理
利用网络设备或软件代替DNS 服务器来响应DNS 查询。
(4) DNS缓存感染
DNS缓存感染是指攻击者将错误的缓存信息输入到递归解析服务器中,当访问者发起解析请求时,递归服务器从DNS缓存中返回错误的解析记录,导致用户访问错误的网页。意味着引导人们访问您的网站。
DNS缓存污染示意图
3. 篡改DNS权限记录
DNS权威记录篡改是指攻击者未经授权访问DNS权威记录管理平台账户,控制DNS解析配置权限,直接修改DNS解析记录的行为。这样就可以引导恶意服务器去解析权威服务器下的特定域名,从而达到DNS劫持的目的。
DNS劫持应对方案
(1)安装能有效防范木马病毒和恶意软件的杀毒软件,定期更改路由器管理帐户密码,更新固件。
(2)企业可以设置较低的TTL值来实现短期的DNS缓存更新,用户可以定期更新他们的DNS缓存,让用户在创建他们的DNS缓存时尽可能具有权威性,可以用.请求并减少DNS 缓存污染的机会。
(3)提高域名账户的安全级别,使用更强的密码,并定期更改密码。
(4)我们会定期检查域名账户信息、域名Whois信息、域名解析有效性状态,如发现异常,我们将及时联系域名服务商。
(5)选择安全技术较强的域名注册商,锁定您域名的可信数据,防止其被篡改。
(6) 在客户端与递归DNS 服务器之间通信的最后阶段,使用DNS 加密技术,例如DNS-over-TLS 和DNS-over-HTTPS。
原创文章,作者:小条,如若转载,请注明出处:https://www.sudun.com/ask/82168.html