解读DNS缓存投毒与欺骗

译文
安全 网站安全
DNS服务器是把双刃剑,它既是加速上网体验的利器,却又容易受到投毒与欺骗,甚至会造成严重的后果。本文通过原理上的分析与建议,希望能够让您远离DNS缓存欺骗的伤害。

【51CTO.com快译】随着公众对于网络威胁意识的不断增强,那些恶意软件制作者不得不花更多的精力在如何欺骗人们在无意中透露自己的隐私数据。域名系统(DNS)缓存投毒,或称DNS欺骗,就是一种通过劫持用户的浏览请求,然后神不知鬼不觉地转发到某个恶意站点的威胁手段。

[[259925]]

下面,让我们一起来看看DNS缓存投毒的工作原理,以及我们该如何避免中招。

一、什么是DNS缓存?

1. URL和IP地址的工作原理

首先,我们来看看DNS缓存的概念。如果要访问某个网站,您通常需要输入其相应的URL。例如,您在浏览器中输入网站地址:www.mybanksaddress.com,以查询自己的银行账户。

不过,您的计算机可并不识别URL。作为机器,它只认识那些作为互联网设备“家庭地址”的数字串,也就是它们的公网IP地址。相反,我们人类则更容易记得含有网站名称的URL,而不是IP地址。

2. DNS服务器的工作原理

因此,为了向您呈现目标网站的内容,您的计算机必须将您输入的URL转换为它可以识别和采用的IP地址。为此,它会将收到的URL传递给所谓的DNS服务器。

DNS服务器就像一个巨大的网站电话簿。当它接到由用户计算机发送过来的URL请求时,就会在其数据库中查找、并匹配相应的IP地址。然后再回复给查询计算机该IP地址。

籍此,您的计算机就能够通过与www.mybanksaddress.com相对应IP地址,来访问到其网站的具体内容了。

3. DNS缓存的工作原理

一般而言,各个网站所持有的IP地址不会轻易发生变化(当然也不排除按需变化的可能性),因此您的计算机可以将此类映射关系的信息存储起来,以供日后使用。即,在DNS的缓存中记录下URL:www.mybanksaddress.com与其IP地址的映射关系。

此后,当您要再次访问该银行的网站时,您的计算机就不必再去“麻烦”DNS服务器了。它直接查看自己的缓存,并找到上次接收到的IP地址即可。可以说,DNS缓存在某种程度上,充当了您之前访问过的所有站点的一个微型电话簿。

二、DNS缓存如何被“投毒”的?

1. 黑客如何植入病毒

在计算机使用DNS缓存时,它不会去主动关注:自上次使用过以来,IP地址是否发生了变更。从某种程度上说,DNS缓存相当于计算机的内存,就算缓存中的值被修改了,计算机仍然会机械地去读取既有的映射信息。

2. 缓存欺骗的工作原理

在虚假网站上线之后,他们就需要去威胁用户的DNS缓存了。他们既可以通过恶意软件来实现,也可以通过直接访问目标用户的计算机来达到目的。无论采用哪种方式,他们的目标都是:访问DNS缓存,并找到www.mybanksaddress.com的存储位置。一旦得手,他们就能够将银行的真实IP地址替换成他们设置好的那个虚假网站的地址。

可想而知,在遭受到缓存欺骗之后,如果您在自己的计算机上输入URL:www.mybanksaddress.com时,您的计算机通过缓存所查找到的就是黑客植入的恶意IP地址,而且它会直接将您的浏览器重定向到那个虚假的网站上。

如果上述过程进展“顺利”,您又没有仔细地观察自己所到达该虚假网站的话,那么您输入的所有真实且详细信息就会被该网站一览无余,它甚至可以籍此来更改您的现有账户。

三、DNS服务器是否也易遭受威胁?

既然各种计算机都能够通过与DNS服务器通信来获取IP地址,那么黑客是否也会去给服务器投毒呢?答案是肯定的,而且后果可能很严重!

实际上,DNS服务器有着与用户计算机类似的运作方式。如果它接到用户请求有关IP地址的查询,却又不知道如何回复和引导用户的话,它就会向另一个DNS服务器询问答案。此时被询问的服务器就会从自己的缓存中搜寻已存储的信息。

因此,如果黑客能够攻破某台DNS服务器,那么他们就可以通过修改数据库的记录,将用户重定向到任何虚假的网站上。显然,一旦有另一台DNS服务器来查询并获取IP地址,那么请求该服务的每一台计算机都会悉数中招。

而且更糟糕的是:当那些未持有某个虚假网站IP地址的服务器,向已中毒的服务器查询映射记录时,显然它们收到的是一些“有毒”的答案。这会进而导致含有各种虚假信息的感染链,在各种DNS服务器之间持续传播,一发不可收拾。

四、如何避免DNS中毒

DNS欺骗看似可怕,其实我们仍有办法予以应对。下面让我们来看一些在上网时保持高度警惕的方法:

1. 保持您的防病毒软件处于激活且更新的状态

在充满危机的互联网上,我们要学会保护好自己。通常情况下,一款好的防病毒软件足以阻止普通的DNS缓存投毒。当然,如果您需要下载并安装那些备受好评的防病毒软件的话,对于自身系统的安全可谓是有百利而无一弊。

2. 不要下载可疑的文件

为了保护您的DNS缓存,请养成良好的上网浏览习惯。请勿随便点击网页上任何可疑的文件、链接或横幅广告,它们往往正是威胁者通过文件包含(File Inclusion)或是命令注入(Command injection)等方式,安插进去的修改DNS缓存的一些恶意软件脚本。

3. 使用可信的ISP或DNS服务器

上述保护好自己的方法只是安全防护的一个方面,那么我们该如何远离已受到感染的DNS服务器呢?

一台设置全面的DNS服务器不会轻易“相信”它从另一台服务器收到的任何信息。它会去验证每一条信息,直至确认安全无毒,方才接受。因此,通过使用此类服务器,您可以确定自己的计算机所获得的查询结果始终是合法的。

由于用户的计算机通常会直接使用ISP所提供的DNS服务器。因此,使用信誉良好、且配备了全面安全措施的ISP,会让人倍感放心。

当然,如果您不放心ISP提供的默认DNS服务器的话,也可以自行改用其他可信的DNS服务器,以减少受威胁侵入的可能性。您可以通过链接:https://www.makeuseof.com/tag/switch-dns-servers-windows/,来了解如何在Windows中进行多个DNS服务器的切换。

4. 刷新DNS缓存

如果您怀疑自己的DNS缓存已经中毒了的话,请毫不犹豫地通过刷新的方式,清除任何损坏的条目,并重新启动服务。然后,请遵循上面第3点的建议,使用可信的DNS服务器,来重新填充缓存,以免让自己二次中毒。

针对不同的操作系统,刷新DNS缓存的方式会有所不同。如果您正在使用Windows系统的话,请参见:https://www.makeuseof.com/tag/15-cmd-commands-every-windows-user-know/中所提及的刷新DNS缓存的命令。

5. 请复查访问过的所有网站

虽然您的计算机会机械地认为:只要您输入的网站URL没错的话,它访问到的就是真实的IP地址。但是作为人类,我们应该多一个心眼才是。

请您仔细检查网页的地址栏上是否有HTTPS加密,以及它的界面是否看起来可疑。一旦您发现自己可能访问的是虚假网站,那么请不要输入任何与登录相关的信息,立即退出该网站,并执行病毒扫描和DNS缓存刷新。

6. 重新启动路由器以清除其DNS缓存

我们常用的路由器也可能带有自己的DNS缓存功能。可是不幸的是,它们和上面提到的用户计算机、以及DNS服务器一样,容易受到DNS投毒。因此,请定期重启您的路由器,此举将有利于清除它已有的DNS缓存,并重新获取新的映射记录。

五、总结

综上所述,DNS服务器是一把双刃剑。它既是加速上网体验的利器,却又容易受到投毒与欺骗,甚至会造成严重的后果。希望本文的上述分析与建议,能够让您远离DNS缓存欺骗的伤害。如果您有兴趣了解如何设置安全的DNS服务器,请参考链接:https://www.makeuseof.com/tag/best-dns-providers-security/

原文标题:What Is DNS Cache Poisoning? How DNS Spoofing Can Hijack You,作者:Simon Batt

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

责任编辑:赵宁宁 来源: 51CTO
相关推荐

2019-02-21 09:00:40

2010-11-09 17:19:41

2015-10-30 15:18:24

2010-03-03 14:47:41

2013-05-13 17:49:26

2010-09-07 12:46:08

2009-12-31 15:36:52

2019-04-17 09:01:17

2015-11-11 14:54:35

网络·安全技术周刊

2018-07-12 06:12:58

2022-01-26 10:09:25

安全漏洞扫描工具缓存投毒漏洞

2019-02-01 09:10:01

2011-07-12 14:04:58

2020-04-07 11:22:47

DNS缓存中毒网络攻击网络安全

2012-02-03 11:31:33

HibernateJava

2009-10-12 14:21:44

2013-03-21 17:02:14

2010-09-07 10:44:14

2022-12-08 15:23:04

语言DNS缓存

2017-10-12 11:25:01

ChromeDNS缓存
点赞
收藏

51CTO技术栈公众号