DNS(域名系统)是互联网的"电话簿",把域名翻译成IP地址。正因为DNS这么重要,它成了网络攻击的重点目标。恶意DNS攻击就是通过篡改DNS解析结果,把用户引导到错误的网站,从而窃取信息或传播恶意软件。今天聊聊常见的恶意DNS攻击手法和怎么防。
最常见的恶意DNS攻击是DNS劫持。DNS劫持就是攻击者篡改了DNS解析记录,让用户访问某个域名时,得到的是攻击者控制的IP地址。比如用户输入bank.com,正常应该解析到银行的服务器IP,但被劫持后解析到了一个钓鱼网站的IP,用户输入账号密码就被盗了。DNS劫持可以发生在多个环节:本机hosts文件被篡改、路由器DNS被改、运营商DNS被污染、权威DNS服务器被入侵。
另一种是DNS缓存投毒。DNS服务器会缓存解析结果来提高效率,缓存投毒就是攻击者伪造DNS响应包,让DNS服务器缓存错误的解析记录。当用户查询这个域名时,DNS服务器就把错误的记录返回给用户。DNS缓存投毒比较难防御,因为它利用了DNS协议本身的设计缺陷。不过现在DNS服务器用了源端口随机化、事务ID随机化等手段,大大提高了投毒的难度。
DNS污染是另一种常见手法,跟DNS劫持有点像但不完全一样。DNS污染通常是运营商或防火墙在DNS查询返回的途中插入伪造的响应,让用户得到错误的IP。被污染的域名通常是特定的,比如某些被封锁的网站。DNS污染跟用户用什么DNS服务器没关系,只要查询经过了污染设备,就会被干扰。翻墙软件的DNS防污染功能就是为了应对这个。
怎么发现自己遭遇了DNS攻击?一个简单的方法是用nslookup或dig命令查询域名,看返回的IP是不是正确的。如果返回的IP跟网站实际IP不符,可能被劫持了。也可以换一个DNS服务器试试,比如把本机DNS改成8.8.8.8(Google)或114.114.114.114(国内),如果换了就正常了,说明原来的DNS有问题。浏览器访问网站时如果证书报错,也可能是DNS劫持把你导向了错误的服务器。
防御DNS攻击,个人用户可以做几件事。第一,路由器的DNS不要用默认的,改成可信的公共DNS(比如119.29.29.29、223.5.5.5),并修改路由器管理密码,防止被入侵。第二,本机hosts文件定期检查,看看有没有被篡改的记录。第三,重要网站用HTTPS访问,HTTPS有证书验证,即使DNS被劫持到假网站,浏览器也会提示证书错误。第四,安装可信的安全软件,能拦截已知的钓鱼网站。
企业级防御还要复杂一些,包括部署DNS防火墙、使用DNS over HTTPS(DoH)或DNS over TLS(DoT)加密DNS查询、建立内部DNS服务器、定期审计DNS日志。DoH和DoT是近年推广的新协议,把DNS查询加密,防止被窃听和篡改。现在Chrome、Firefox等浏览器都支持DoH了,开启后DNS安全性大大提升。
上一篇:无线路由器AP隔离功能详解:什么时候该开,什么时候该关
下一篇:没有了