dns 欺骗攻击过程原理,DNS 欺骗攻击原理与防御措施

DNS欺骗简单来讲,就是有人伪装成DNS服务器,给用户返回错误的解析地址。假设你准备访问bank.com,正常的DNS查询会返回这个域名对应的真实IP,攻击者却抢先推送伪造IP,你打开的页面实际是对方搭建的钓鱼网站。整个过程不容易被察觉,浏览器地址栏依旧显示原来的域名,页面样式也可以复刻得几乎一模一样,但你提交的所有数据都会被攻击者获取。

想要看懂这个攻击原理,先要明白DNS查询本身对响应来源缺乏校验机制。早期DNS协议没有加密设计,身份校验机制也很薄弱。客户端或者递归解析器发起查询请求时,数据包会附带事务ID和源端口,服务器回包只要这两项信息匹配,发起查询的一方就默认这份响应合法。UDP协议本身属于无连接通信,多个响应包谁先抵达,系统就采信谁的结果。攻击者的目标就是猜出事务ID和源端口,在真实DNS服务器返回结果之前,把伪造的响应包先发出去。一旦抢占成功,查询设备就会缓存这条虚假IP记录,后续所有人查询同一个域名,都会拿到错误地址。

dns 欺骗攻击过程原理,DNS 欺骗攻击原理与防御措施

缓存投毒是这类攻击里最常见的形式。攻击者不会直接篡改个人电脑的解析记录,而是瞄准大家正在使用的递归DNS服务器,比如运营商DNS或者企业内网DNS。递归服务器一旦被植入虚假记录,就会把这条错误信息存入缓存,缓存有效期内,所有向这台服务器查询该域名的用户,都会被引导至虚假IP。2008年爆出的Kaminsky漏洞就是典型的缓存投毒攻击,攻击者借助DNS协议本身的缺陷,批量发起大量随机子域名查询,暴力猜测事务ID,只要一次猜测成功,就能写入伪造的权威解析记录,受影响的用户规模非常大。之后各类DNS软件紧急推送补丁,新增源端口随机化机制,大幅提高了这种攻击的实施难度。

中间人攻击是另一种实现方式。攻击者需要处在用户的网络传输链路当中,比如接入存在安全隐患的公共Wi-Fi,借助ARP欺骗等手段接管网关,直接拦截用户发出的DNS查询请求,替换返回结果。这种方式不需要猜测事务ID,攻击者可以直接读取你的查询内容,甚至把请求转发给真实DNS服务器,只在返回结果的时候篡改信息。浏览器地址栏域名不变,但页面内容已经被替换。

还有一类手段,直接修改设备本身的DNS配置。路由器被入侵之后,攻击者修改DHCP下发的DNS地址,全部指向自己控制的服务器;或是恶意程序篡改电脑网络设置,让本机所有DNS请求都转发到恶意解析器。这种方法技术门槛不高,但效果明显,家用路由器固件老旧、管理员默认密码没有修改的场景最容易中招。

DNS欺骗带来的危害轻重差别很大,轻则被跳转至广告页面,重则账号密码被盗取、软件更新包被替换成木马程序、邮件数据被劫持到攻击者服务器。很多安全机制都建立在域名解析结果可信这个前提上,一旦解析结果被篡改,虽然HTTPS和证书校验能够拦截一部分攻击,但攻击者如果拿到合法证书,或是目标网站没有启用HTTPS防护,用户信息就会完全暴露。

防范DNS欺骗需要多层面同时部署防护手段。DNSSEC属于底层方案,依靠数字签名核验DNS响应数据的真实性与完整性,递归解析器收到数据包之后校验签名,签名异常就直接丢弃。DNSSEC无法阻止网络窃听,但能有效防止数据篡改和伪造。这项技术的落地普及程度不算理想,大量域名没有配置签名,不少解析器也没有开启签名校验,实际防护效果会打折扣。

加密DNS是另外一条防护路线,DNS over HTTPS和DNS over TLS会对整个查询流程加密,中间人无法读取查询域名,也很难篡改返回结果。Firefox、Chrome以及多款操作系统现在都原生支持DoH,选用可信的DoH服务器之后,局域网内的攻击者很难干预解析过程。但DoH会把信任集中交给DoH服务商,选择服务商的时候需要谨慎评估。

对于运维DNS服务器的人员,加固工作包含多项操作:关闭开放递归功能,仅允许内网用户发起查询;开启源端口和事务ID随机化;启用0x20编码,查询请求里随机变更域名大小写,增加攻击者猜测难度;权威服务器与递归服务器分开部署;及时更新安全补丁,BIND、Unbound、Knot这类解析软件的漏洞修复版本要跟进升级。监控工作同样不能忽略,解析结果大范围异常、TTL数值异常波动、单个域名查询流量突然暴涨,都有可能是缓存投毒的预警信号。

客户端可操作的防护手段相对有限,但几项措施实用性很强。不要随意连接来源不明的公共Wi-Fi,就算连接这类网络,也不要登录重要业务账号。手动配置可信公共DNS解析地址,或是开启系统自带的DoH功能。保持操作系统与浏览器版本更新,HTTPS和HSTS可以阻挡一部分跳转至虚假站点的攻击。企业环境中,防火墙应当限制只有内部DNS服务器可以对外发起查询,禁止终端设备直接访问外部53端口,降低中间人攻击的风险面。

DNS欺骗能够持续存在,根源在于协议最初设计留下的信任缺陷。相关安全补丁不断迭代更新,攻击手段也随之演变。不存在单一方案可以彻底杜绝这类攻击,把DNSSEC、加密DNS、服务器加固、终端安全习惯组合起来,就能显著压低被攻击风险。真正棘手的是那些没有加密、没有校验机制的老旧网络环境,只要任意一个环节存在漏洞,攻击者就可以从这个缺口切入发起攻击。

免责声明:本文提供的方法与建议仅供技术参考,实际部署效果受机房环境、运营商线路、系统配置等多重因素影响。请在专业人员指导下操作,因自行操作导致的业务损失本站不承担责任。

相关推荐

ddos 攻击科普,ddos 是什么意思啊攻击原理

日常新闻中经常能看到网站遭遇DDoS攻击瘫痪的报道,多数人只知道是网络被攻击,但并不清楚具体原理。简单来说,DDoS攻击就是攻击者操控海量傀儡设备,同时向目标服务器发送访问请求,占满服务器带