DNS 这东西平时感觉不到它的存在,但一旦出问题影响就大了——上不了网、被跳转到乱七八糟的页面、被钓鱼后掉线,全都可能跟它有关。今天聊聊恶意 DNS 那些事,以及日常怎么防护。
先说 DNS 是什么。DNS(Domain Name System,域名系统)是负责把 www.baidu.com 这种人类能看懂的域名翻译成 IP 地址(比如 220.181.38.148)的"翻译官",是所有网络访问的起点。数字越离谱越要谨慎。
恶意 DNS 攻击简单分几种。第一种是 DNS 劫持——本地 DNS 服务器被黑,你访问 www.taobao.com 但解析出来的是攻击者的 IP,跳转到钓鱼网站。第二种是 DNS 污染(DNS spoofing)——本地网络设备被攻击,DNS 查询应答包被篡改,返回错误的 IP。第三种是 DNS 隧道——通过 DNS 查询和响应数据,把值传出去或者拉进来(攻击或者控制命令传输)。第四种是 DDoS 攻击——攻击权威 DNS 服务器,让它不能服务正常的解析请求。
识别自己是否被 DNS 劫持的方法。第一个:观察访问行为。如果你访问知名网站(比如 www.baidu.com)但跳转到不相关的页面(赌博网站、虚假购物网站),八成是基本被劫持了。第二个:nslookup 或者 ping 命令查询一下。在 cmd 里输入 nslookup www.baidu.com,看返回的 IP 是不是正常的。第三个:检查本机 DNS 配置。Windows 系统可以在网络设置里查看,Linux 系统可以看 /etc/resolv.conf 文件,看有没有被改成陌生的 DNS 服务器。
怎么识别。第一个,响应结果异常。DNS 响应里返回的 IP 是黑名单 IP、不在预期服务器段、是私人地址段(192.168.x.x、10.x.x.x、172.16-31.x.x)等情况都是可疑的。第二个,响应包里含可疑字符。正常 DNS 响应只包含 IP 地址,如果包含字符不在预期服务器段、是可疑数据。要验证可以比对多个公开 DNS 服务器的响应(8.8.8.8、114.114.114.114、223.5.5.5),如果差异是明显的可疑数据。
基础:操作系统的定期更新,安装杀毒软件并保持更新,开启防火墙。第一个,更换可信的 DNS 服务器。把默认的运营商 DNS 换成公共可信的,比如 Google 的 8.8.8.8 和 8.8.4.4、Cloudflare 的 1.1.1.1、阿里云的 223.5.5.5 和 223.6.6.5。第二个,启用 DNSSEC(DNS Security Extensions)。DNSSEC 能验证 DNS 响应的真实性,防止篡改,但需要权威 DNS 和本地 DNS 都启用才能生效。第三个,使用 DNS over HTTPS(DoH)或者 DNS over TLS(DoT)。这是新趋势——把 DNS 查询加密传输,防止中途篡改。Chrome、Firefox 浏览器都支持 DoH。
企业层面的防护:部署专业的 DNS 防火墙设备、部署内部 DNS 解析日志分析系统、定期做 DNS 审计、使用 Anycast 网络分散 DDoS 攻击、关键业务配置多个 DNS 服务器做冗余。个人用户的简单防护:养成访问重要网站时检查 URL 和 HTTPS 证书的习惯、敏感操作不用公共 WiFi、安装浏览器安全插件过滤钓鱼网站、遇到可疑 DNS 行为及时反馈给运营商。
常见误区:第一个,依赖单一 DNS 服务器。一旦这个 DNS 服务器挂了或者被攻击,所有用户都会出问题。重要的系统建议配置多个 DNS 服务器做冗余。第二个,只信任默认 DNS。但后续的用户不一定信任。第三个,忽视 DNS 日志。DNS 日志是重要的安全审计数据,里面能看出很多攻击痕迹。
总的来说,DNS 是网络安全里容易被忽视但很重要的一个部分。掌握基本的识别和防护方法,能避免很多麻烦。简单的事情只要能做好,就能解决大部分问题。安全防护是个持续过程,不是一劳永逸的工程。
下一篇:没有了