互联网上每一台设备都会有一个 IP 地址,我们在访问网站或发送信息时,其实都是通过 IP 地址达成准确请求的。但是这个 IP 地址由很长一串数字组成,记忆起来相当困难,所以我们创造了更实用的域名来代替 IP 地址。而如何将域名和 IP 地址联系起来,就是域名系统(DNS)发挥作用的地方。它由各种名称服务器(即 DNS 服务器)组成,负责域名解析,帮助客户端建立联系,是网络中最重要的服务之一。
名称服务器和客户端之间的通信存在一定的安全风险,部分心怀不轨的人可以通过很多方法篡改 Internet 上的名称解析。本文要讲的 DNS 欺骗,就是通过虚假的 IP 地址发起欺骗攻击。
DNS 欺骗是指 DNS 名称解析被篡改,特别容易出现的 DNS 欺骗是伪造域名的 IP 地址。这是因为 DNS 解析主要在内部系统进行,而浏览器中显示的是正确的域名,所以用户通常不会注意到被篡改。具体操作为,恶意者让 DNS 请求会返回一个虚假的 IP 地址,当客户端与假 IP 地址建立连接时,用户就会被重定向到假的服务器。简单举个例子:
下图是客户端在连接到网站 example.com 过程中被欺骗的案例示意图:
(图片来源于互联网,如有侵权请联系我们删除)
d1:客户端首先从 DNS 服务器请求主机名 example.com 的 IP 地址。
d2:客户端收到了请求的响应,但它返回了一个虚假的 IP 地址。未与 example.com 真正的服务器建立连接。
h1:客户端将请求发送到伪造 IP 地址后面的恶意主机。
h2:恶意主机将看似合法的网站页面返回给客户端。但是,恶意主机上缺少该域名的安全证书。
A、B、C:这些是 DNS 欺骗的不同攻击点:在客户端或本地路由器上、在网络连接上以及在 DNS 服务器上。
攻击者使用 DNS 欺骗进行网络钓鱼和域名欺骗攻击,目的是拦截互联网上的用户数据。因为 DNS 欺骗会影响客户端建立的每一个连接。无论是访问网站还是发送电子邮件,若相关服务器的 IP 地址被篡改,目的都是让受害者相信他们最终访问了一个合法的地址,并利用受害者的信任引诱下载恶意软件并感染系统,进而窃取敏感的用户数据。
DNS 欺骗会带来以下风险:
机密数据盗窃:网络钓鱼用于窃取密码等敏感数据。这些方法通常用于入侵计算机系统或进行各种诈骗。
系统恶意软件感染:受害者被诱骗在自己的系统上安装恶意软件,为进一步的攻击打开了大门。
收集用户资料:在此过程中收集个人数据,进行出售或用于其他有针对性的网络钓鱼攻击。
可构成持续威胁:遭遇 DNS 欺骗,被篡改的 DNS 响应信息可能会保留在缓存中,在较长时间内进行欺骗。
在 2020 年春季 COVID-19 流行期间,国外就发生过 DNS 欺骗攻击。攻击者劫持了路由器的 DNS,篡改成了恶意的 IP 地址。受害者的浏览器会自行打开并显示一条消息,提示他们下载据称来自世界卫生组织 (WHO) 的“COVID-19 通知应用程序”。但其实,该软件是木马软件。如果受害者安装了木马软件,它会搜索本地系统并尝试访问敏感数据,用于针对受害者的网络钓鱼攻击。
△ 宣传虚假 COVID-19 信息应用程序的 Msftconnecttest 页面
不过 DNS 欺骗并不都是恶意攻击,一些互联网服务提供商(ISP)偶尔也会通过 DNS 欺骗的手段来审查或投放广告。例如,ISP 可以故意操纵其 DNS 表以实施国家审查的要求。这样做可以禁止用户访问违规网站,当用户访问被禁止的域名时,将会被重定向到警告页面。DNS 欺骗也可以帮助收集用户数据,或通过重定向的方式来投放广告。比如用户进入不存在或拼写错误的域名时,ISP 使用 DNS 欺骗将用户重定向到特定页面,此页面可能会播放广告或创建用户配置文件。
DNS 作为影响信息安全的一类威胁,我们需要对 DNS 欺骗保持戒心。我们可以采取加密措施的手段有效地防止 DNS 欺骗。加密方法通常具有两个关键优势:
保护数据免受第三方未经授权的访问
保证了通信双方的真实性
针对网站管理员的方式来说,可用的加密方式有网站域名开启强制 HTTPS,电子邮件客户端中配置的连接(例如 IMAP、POP3 和 SMTP)使用安全协议 TLS 和 SSL。这类加密可以保护请求中的数据传输,如果攻击者试图冒充正常的主机,客户端就会出现证书错误的提示,减少受到 DNS 欺骗的可能。
DNS 服务器间的连接还可以通过 DNSCrypt、DNS over HTTPS(DoH)和 DNS over TLS(DoT)这些技术,减少危险的中间人攻击。但需要注意的是,这三种解决方案的应用不是很普遍,DNS 服务器必须支持相应的安全技术,才能使用这三种方式进行加密工作。
上面提到的是管理员可以做的加密方式,对于用户来说,我们可以使用公共 DNS 来避免 DNS 欺骗。设置非常简单,直接在系统的“网络设置”中更改 DNS 地址即可。公用的 DNS 除了可以应对 DNS 欺骗,还可以加快解析响应速度。同时大型的公共 DNS 通常会使用先进的安全技术,例如 DNSSEC(DNS 安全扩展)、DoH、DoT 和 DNSCrypt。常见的公共 DNS 有 114DNS 的 114.114.114.114,纯净无劫持;Google 的 8.8.8.8、Quad9 的 9.9.9.9,均支持 DNSSEC。
关于 DNS 欺骗相关的暂时就讲到这了,看完这篇文章希望能帮助大家更好地保护自己的信息安全。