DNS也能被投毒?

BG81

Posted by Blue Geek on April 7, 2020

DNS也能被投毒?

DNS(Domain Name System),顾名思义可以知道这是一个跟域名解析相关的网络服务系统。要搞清楚DNS的作用,我们必须先要知道我们访问网络的过程。稍有网络知识的朋友都知道,每一台计算机在网络中是以IP地址来识别的。现在通用的IPv4是由四个字节表示,每个字节可以表示0~255。但是,在现实使用中大多数人并没有记住想要访问的那些服务器的IP地址——毕竟我们实在是不擅长记忆这种数字串——而是 通过一个字符串来访问的,比如“baidu.com”。这个字符串就是“域名”,我们对域名的记忆能力就强得多,毕竟跟日常的自然语言是一样的。

那么,网络是如何通过域名来访问目标服务器的呢?这时就需要DNS登场了。我们的PC或者手机在访问一个目标网络时分成两步:(1) 从DNS服务器中查询域名对应的IP地址,(2)使用查询到的IP地址对目标服务器发起访问。除了不需记忆繁多的IP地址,这种做法还有一个好处,那就是 更换服务器后只需修改DNS映射即可,而不需要用户关心这种操作。或许还有一个好处,那就是 一个域名可以对应多个IP,在一定程度上可以起到负载均衡的作用,也就是避免单台服务器压力过大。正是因为有这么多的好处,DNS服务已经成为了互联网的基本服务。

正常网络访问流程图

很多人都知道互联网有13个根DNS服务器集群,此外还有1000多个镜像的DNS服务器集群,正是这些服务器扛住了全球互联网这么大的访问压力。在一些具有行业约束的地区,这些DNS服务器是可以被信任的,即可以根据域名查询到正确的服务器IP地址。相反,从逻辑上来说,也就存在了篡改DNS服务器中域名与IP地址的映射关系的可能。

篡改DNS网络访问流程图

篡改DNS服务器中的映射,使得域名对应到错误的IP地址这种情况就被称作“DNS投毒”,也称“DNS污染”,英文名是“DNS Poisoning”。

做这件事情毕竟还需要费些力气,消耗一些成本的,所以一般都不会白干。如果黑客通过入侵的方式修改了DNS的映射关系,通常是 将某一个著名域名的流量引导至一些不正确但是可以正常访问的IP地址上,这也称DNS劫持。其目的有两种,一是帮助一些网络服务器获取流量,二是发动DDOS(Distributed Denial of Service)攻击,也就是通过让目标服务器过载导致服务器拒绝正常的流量。此外,这种修改 还可能将域名映射到一个不存在的服务器IP地址上,这就会出现众所周知的“404”页面。一个黑客要入侵DNS服务器并不是一件容易的事情,所以也不需要过分担心黑客会带来的损失。

以上提到了网络访问存在两个步骤,“DNS投毒”是发生在第一步的时候,按照逻辑,第二步是不是也可能出问题呢?是的。逻辑上成立的事情,就有可能发生;有可能发生的事情,随着时间增长,其发生的可能性越大。这是每一个在网络中享受信息传输便利的同时,不得不防范的副作用。

【青衣极客】公众号



COMMENT

博客评论区功能由Github Issue提供,提交Issue时请以本文标题为话题

"BG81-DNS也能被投毒?"