DNS - 当互联网的电话簿崩溃时
DNS(域名系统)是将"example.com"等域名转换为 IP 地址的系统。每次你在浏览器中输入 URL 时,后台都会发生 DNS 查询。如果这个转换失败,除非你直接知道 IP 地址,否则无法访问任何网站。
DNS 常被比作互联网的"电话簿",但这本电话簿出人意料地脆弱。设计缺陷、人为失误、蓄意攻击,DNS 故障的原因多种多样,其影响波及整个互联网。
DNS 崩溃的真实事件
Dyn 遭受 DDoS 攻击(2016 年 10 月)
2016 年 10 月 21 日,DNS 提供商 Dyn 遭受大规模 DDoS 攻击,导致 Twitter、Netflix、GitHub、Spotify 和 Reddit 等数百个主要服务数小时无法访问。
攻击使用了 Mirai 僵尸网络,数十万台感染恶意软件的 IoT 设备(网络摄像头、路由器、DVR)同时向 Dyn 的 DNS 服务器发送大量查询。据报道,攻击流量峰值达到 1.2 Tbps。
这一事件暴露了许多主要服务依赖单一 DNS 提供商的问题。如果"电话簿"只有一份,一旦那份不可用,一切都会停止。
Cloudflare BGP 泄漏(2020 年)
2020 年 7 月,由于某 ISP 的 BGP 配置错误,Cloudflare DNS 服务(1.1.1.1)的路由被错误发布,导致全球用户无法访问 Cloudflare 的 DNS。即使 DNS 本身正常运行,如果通往 DNS 服务器的"道路"断了,结果也是一样的。
.com 区域文件损坏(2021 年)
2021 年 4 月,Verisign 管理的 .com 区域文件出现临时问题,导致部分 .com 域名的解析失败。由于 .com 是全球使用最广泛的顶级域名,其管理系统的问题影响深远。
DNS 的结构性漏洞
1. 未加密的明文通信
传统 DNS 查询通过 UDP 53 端口以未加密方式发送。ISP、Wi-Fi 接入点运营商和网络窃听者可以轻松截获你正在尝试访问的域名。DNS over HTTPS (DoH) 和 DNS over TLS (DoT) 解决了这个问题,但普及仍在进行中。
2. DNS 缓存投毒
攻击者向 DNS 解析器的缓存注入虚假响应,将用户重定向到假冒网站的攻击。Dan Kaminsky 于 2008 年发现的漏洞利用了 DNS 的一个基本设计缺陷,是影响整个互联网的严重问题。DNSSEC(DNS 安全扩展)是对策,但普及率仍然较低。
3. 单点故障的集中
DNS 根服务器由 13 个运营商运营,但实际上通过 Anycast 技术在全球分布了数百个实例。然而,故障集中在特定 TLD(顶级域名)权威服务器或特定 DNS 提供商上的风险仍然存在。
保护 DNS 的技术
- DNSSEC:为 DNS 响应添加数字签名以检测篡改。但不加密查询内容
- DNS over HTTPS (DoH):通过 HTTPS 加密 DNS 查询,防止窃听和篡改
- DNS over TLS (DoT):通过 TLS 加密 DNS 查询。与 DoH 目的相同但使用专用端口(853)
- 冗余:使用多个 DNS 提供商,当一个故障时可以通过其他提供商继续解析
检查你的 DNS 设置
在 IP 确认酱上查看你的连接信息,并运行 DNS 泄漏测试,看看你的 DNS 查询被发送到了哪些服务器。如果你使用的是 ISP 的默认 DNS,值得考虑切换到以下公共 DNS 服务。
- Cloudflare (1.1.1.1):注重隐私。24 小时后删除查询日志
- Google (8.8.8.8):快速可靠。但查询数据会发送到 Google
- Quad9 (9.9.9.9):包含恶意域名拦截功能
总结
DNS 是互联网最基础的基础设施组件之一,同时也是最脆弱的环节之一。未加密的明文通信、缓存投毒漏洞、对单一提供商的依赖,这些问题正在通过 DoH/DoT 的普及、DNSSEC 的部署和 DNS 提供商的冗余化逐步得到解决。