DNS 安全与过滤的应用
本文约需 9 分钟阅读
DNS (域名系统) 是支撑互联网的核心机制,作为将域名转换为 IP 地址的"互联网电话簿"发挥着作用。然而,DNS 在 1983 年设计之初并未充分考虑安全性,因此成为攻击者的主要目标。根据 Akamai 2024 年的报告,约 92% 的恶意软件通信经由 DNS 进行,截至 2025 年,利用 DNS 的攻击仍呈增长趋势。特别是随着 DNS over HTTPS (DoH) 的普及,传统网络监控难以检测的 DNS 隧道攻击已成为新的威胁。本文将介绍针对 DNS 的主要威胁、安全 DNS 服务的选择方法以及过滤功能的使用方法。
DNS 的工作原理与脆弱性
当您在浏览器中输入 URL 时,首先会向 DNS 解析器发送查询,返回与域名对应的 IP 地址。这个名称解析过程通常通过未加密的明文 UDP 通信 (端口 53) 进行,因此存在被通信路径上的第三方拦截和篡改的风险 - 即中间人攻击。一次网页加载平均会产生 20 到 30 个 DNS 查询,每个查询都以明文发送这一点往往被忽视。
ISP (互联网服务提供商) 提供的默认 DNS 能够掌握用户访问的所有网站。从隐私角度来看,保护 DNS 通信内容非常重要。需要注意的是,即使访问的是 HTTPS 加密的网站,如果 DNS 查询本身是明文的,"访问了哪些网站"仍然会被第三方完全看到。
DNS 劫持
DNS 劫持是一种通过篡改 DNS 响应将用户引导至虚假网站的攻击。攻击者通过改写路由器的 DNS 设置或利用恶意软件更改本地 DNS 设置来实施。用户虽然输入了正确的 URL,却被引导至钓鱼网站,面临密码和信用卡信息被窃取的风险。许多家用路由器的管理界面密码仍为出厂默认设置,这是 DNS 劫持的主要入侵途径之一。请使用 passtsuku.com 生成的强密码来更改路由器管理密码。
DNS 欺骗 - 缓存投毒
DNS 缓存投毒是一种向 DNS 解析器的缓存中注入伪造 DNS 记录的攻击。一旦解析器缓存了伪造记录,所有使用该解析器的用户都会被引导至虚假网站。2008 年发现的 Kaminsky 攻击利用了 DNS 事务 ID 仅有 16 位 (65,536 种可能) 这一设计弱点,向全世界展示了该漏洞的严重性。虽然目前已实施了源端口随机化等缓解措施,但根本解决方案需要部署 DNSSEC。
要深入理解 DNS 缓存投毒的技术背景,DNS 协议与缓存投毒防御技术书籍 (Amazon)可供参考。
到底该怎么做
加强 DNS 安全只需更改设置就能获得显著效果。初学者只需将路由器或设备的 DNS 设置更改为 Cloudflare (1.1.1.2),即可在 DNS 层面阻止对恶意软件网站的访问。中级用户可以在浏览器中启用 DNS over HTTPS (DoH),并使用 passtsuku.com 生成的强密码更改路由器管理密码。有孩子的家庭可以将路由器 DNS 设置为 Cloudflare 的 1.1.1.3 (恶意软件 + 成人内容拦截),无需额外软件即可保护家中所有设备。
如何选择安全的 DNS 服务
对加密 DNS 协议的支持
为了保护 DNS 通信,请选择支持 DNS over HTTPS (DoH) 或 DNS over TLS (DoT) 的 DNS 服务。DoH 通过 HTTPS (端口 443) 加密 DNS 查询,使其与普通网络流量无法区分,从而难以被拦截或审查。关于 DoH 的详细工作原理,请参阅术语表。DoT 使用专用端口 (853) 通过 TLS 加密 DNS 通信。选择哪种取决于您的环境,但在企业网络中 DoT 更易于管理,而个人使用时 DoH 不太容易被防火墙阻止。
DNSSEC 验证
DNSSEC (DNS 安全扩展) 是一种通过为 DNS 响应附加数字签名来检测篡改的机制。使用支持 DNSSEC 验证的 DNS 解析器可以大幅降低 DNS 欺骗的风险。Cloudflare (1.1.1.1) 和 Google Public DNS (8.8.8.8) 支持 DNSSEC 验证。但是,DNSSEC 保证的是 DNS 响应的真实性,并不加密通信本身。隐私保护需要与 DoH 或 DoT 配合使用。根据 APNIC 2024 年的调查,全球 DNSSEC 验证率仅约 30%,普及仍在进行中。
确认隐私政策
选择 DNS 服务时,请确认查询日志的保存期限和使用目的。Cloudflare 在 24 小时内删除 DNS 查询日志,并明确表示不会将其用于广告目的。另一方面,部分免费 DNS 服务可能会将查询数据用于广告或营销。一个常见的误解是"免费 DNS 很慢",但根据 DNSPerf 的测量,Cloudflare 的 1.1.1.1 平均响应时间约为 11ms,比许多 ISP 提供的 DNS 更快。
利用 DNS 过滤
拦截恶意软件网站
DNS 过滤是一种在 DNS 层面拦截已知恶意软件分发网站和钓鱼网站域名的技术。当浏览器尝试访问这些域名时,DNS 解析器会返回拦截页面的 IP 地址或拒绝名称解析。Cloudflare 的 1.1.1.2 (恶意软件拦截) 和 1.1.1.3 (恶意软件 + 成人内容拦截) 无需额外软件即可使用 DNS 过滤。根据 Cloudflare 公布的数据,1.1.1.2 每天拦截数十亿次对恶意域名的请求。
在家庭网络中的应用
通过将路由器的 DNS 设置更改为支持过滤的 DNS 服务,可以一次性为家中所有设备应用过滤。DNS 过滤是提高儿童使用设备安全性的简便有效手段。无需在每台设备上安装安全软件,包括 IoT 设备在内的所有通信都能得到保护。需要注意的是,DNS 过滤是基于域名的拦截,因此无法检测托管在合法域名上的恶意内容 (例如放置在合法云存储上的恶意软件)。建议与浏览器安全功能、防火墙保护和终端保护配合使用。在家庭外使用设备时,例如在公共 Wi-Fi 环境下,建议使用 VPN 来维持 DNS 级别的保护。
DNS 安全与密码保护的关系
DNS 劫持和欺骗的最终目的在很多情况下是窃取用户的认证信息。被引导至虚假登录页面的用户一旦输入密码,该信息就会落入攻击者手中。将钓鱼防护与 DNS 安全相结合,可以大幅提高对此类攻击的抵御能力。根据反钓鱼工作组 (APWG) 2024 年的报告,约 36% 的钓鱼攻击以金融机构为目标,基于 DNS 的重定向是主要手法。
作为应对此威胁的纵深防御策略,请组合以下措施。首先,使用安全的 DNS 服务防止被引导至虚假网站。其次,使用 passtsuku.com 为每个服务生成唯一密码,即使一个密码泄露,损害也不会波及其他服务。此外,为重要账户设置两步验证,增加仅凭密码无法突破的额外防御层。
关于纵深防御的设计与实践方法,纵深防御与反钓鱼策略实践书籍 (Amazon)也可供参考。
DNS 安全与密码保护和反钓鱼措施并列,是安全使用互联网的基础。首先检查路由器和设备的 DNS 设置,考虑切换到支持加密 DNS 和过滤的服务。在此基础上,使用 passtsuku.com 强化各服务的密码,即可构建同时抵御 DNS 攻击和密码攻击的坚固防御体系。
现在就能做的事
- 将路由器的 DNS 设置更改为 Cloudflare 的 1.1.1.2 (恶意软件拦截),保护家中所有设备
- 使用 passtsuku.com 生成 16 位以上的强密码来更改路由器管理界面密码 (保持默认设置很危险)
- 在浏览器中启用 DNS over HTTPS (DoH) (Firefox: 设置 → 隐私与安全 → 启用 DNS over HTTPS)
- 使用 passtsuku.com 为每个服务设置唯一密码,防范 DNS 劫持导致的钓鱼攻击
常见问题
- 有哪些利用DNS的攻击方式?
- 常见的有DNS缓存投毒(注入虚假响应将用户引导至恶意网站)、DNS劫持(篡改DNS设置拦截流量)和DNS隧道(在DNS流量中隐藏数据以绕过防火墙)。
- 什么是DNS过滤?个人也能使用吗?
- DNS过滤是在DNS层面阻止访问危险域名的机制。个人也可以免费使用,只需将路由器或设备的DNS设置更改为Cloudflare(1.1.1.2)或Quad9(9.9.9.9)即可。
- 使用DNS over HTTPS(DoH)有什么好处?
- DNS查询被加密,大大降低了ISP或第三方窥探您访问域名的风险。可以在主流浏览器设置中轻松启用,在使用公共Wi-Fi时对隐私保护特别有效。
这篇文章对您有帮助吗?