域名是什么?

定义:域名系统(DNS)是定位互联网域名并将其转换为互联网协议地址的方式。

当试图解释DNS名称解析的概念时,我认为查找某个人的电话号码是一个很好的类比。有几种方法可以找到一个人的电话号码,同样也可以解析属于域名的IP地址。同样的道理也适用于拨打错误的号码,你可能会到达错误的服务器。这是怎么发生的?我们需要了解更多关于DNS如何工作的细节。

以下订单

以下系统尝试解析IP地址的顺序对于理解几种攻击(我们将在后面讨论)的工作方式非常重要。我将坚持电话号码的类比来澄清一些问题。下面是针对Windows电脑的。

  • Windows首先查看DNS缓存,您可以将其与您最近调用的号码列表进行比较。
  • 然后它检查请求的地址是否不在您自己的计算机上。任何解析为127.0.0.1或其他别名的内容。
  • 然后查找一个名为主机在你的系统上,它是一种个人电话簿,也可以用来屏蔽不良网站,或被滥用来重新引导你的流量。
  • 您的计算机向DNS服务器发送请求,您可以将其与在线电话簿进行比较。联系哪个DNS服务器是一个重要的细节,我们将在稍后进一步讨论。
  • 如果所有这些都失败了,您的系统将求助于NetBIOS名称解析,这超出了我们今天的范围。

connectionsettings连接配置为使用OpenDNS服务器

DNS服务器

重要的是,并不是所有的DNS服务器都是相同的。换句话说,网上电话簿是有区别的。这可能是由于还没有被记录的变化或条目已经被设计改编。但是你的电脑是如何决定使用哪一个的呢?通常DNS服务器设置在你的互联网连接的属性或在处理你的互联网连接的路由器上。在这两种情况下,你会发现它们都是由你的ISP提供的,除非在某个时候你更改了它们,或者有人为你更改了它们。

routersettings

路由器上的设置通常由ISP提供

攻击向量

现在我们知道了这个过程是如何工作的,我们可以讨论一下恶意软件作者改变DNS结果的可能性。

在本地他们可以改变我们的主机文件。QHost木马在过去曾经这样做过,用来阻止反恶意软件公司网站的更新、下载和访问。或者Vundo变体,通过隐藏新主机文件,将流量从流行的社交网络重定向到它们的服务器。或者如何看待最近的事情Shopperz广告软件这改变了dnsapi.dll指向他们自己创建的不同文件,而不是指向实际的hosts文件。

另一个本地攻击向量是更改您的连接的DNS服务器,例如DNS破解所做的事。

在路由器层面,我们已经看到了恶意软件,比如驼鹿试图暴力破解设备以改变它们的设置,其中DNS服务器。你有没有修改路由器的默认密码?!?

在服务器级别上,家庭用户对DNS劫持几乎或什么也做不了,除了手动更改他们的DNS服务器到他们信任的东西。除了ISP或(例如政府)审查故意强加的虚假条目外,DNS服务器发送错误信息的另一种方式是DNS欺骗,也就是DNS缓存中毒。DNS服务器缓存从其他DNS服务器接收的信息,以节省时间。

如果你曾经把你的网站转移到一个不同的服务器,你会注意到在每个人实际登陆新IP地址之前需要花费多长时间。这是因为服务器一直在使用缓存的(旧的)信息。

从一个服务器更新到另一个服务器需要一段时间。这种现象称为DNS传播。以或多或少相同的方式,虚假信息可能被放置在一个受损的DNS服务器上,而该信息可能会传播到其他服务器。

缓存中毒可以在所有级别进行,本地、路由器和上面描述的服务器级别。

总结

DNS名称解析是一个复杂的过程,可能在许多层次上受到干扰。了解这些基本原理是有好处的,因为这些知识为我们提供了一定程度的控制。

资源:

DNS (Domain name system)定义

域名服务器如何工作

Microsoft TCP/IP主机名解析顺序

停止域名劫持

中国的防火长城向海外蔓延

Pieter Arntz