昨天上午百度(Baidu.com)受到攻击的事情在网上闹得沸沸扬扬,Baidu.com 域名被 DNS 解析到了一个错误 IP,导致访问者实际打开了另一个网站。一般来说,黑客是如何做到通过 DNS 来攻击一个网站呢?
首先我们简单了解一下互联网上顶级域名(如 .com)的 DNS 工作方式:
对于每一台客户端而言,我们都知道网卡上需要设置“DNS 服务器(DNS Server)”,这个 “DNS 服务器”通常是指定 ISP(Internet Service Provider,因特网服务提供商)的 DNS 服务器。ISP 的 DNS 服务器上肯定不会有全球所有域名的DNS条目,当它接收到客户端的查询不在它的本地缓存中,无法作解析时,它会向它的 “权威 DNS 服务器(Authoritative Name Server)” 查询。通过这种由下向上的递归式查询,全球所有的请求最终将由13台 “根 DNS 服务器(Root Name Server)” 作出解答。
这13 台根服务器由 VeriSign、ICANN(Internet Corporation for Assigned Names and Numbers)等组织维护。它们授权给全球各国的域名服务提供商,让他们出售域名。任何单位或个人网站运营者向域名服务商购买域名之后,会得到一个账号,通过这个账号就有权修改 DNS 服务器中的自己域名的条目,指定其解析到特定的 IP 地址。
通过以上的描述,我们不难发现,只要能够想办法篡改 DNS 服务器中的资料或是冒充 DNS 服务器,都会导致网站域名被导向到错误的IP。而这两种状况正好对应了两类 DNS 的攻击方式:DNS 篡改和 DNS 欺骗。