DNS重绑定攻击原理与防御
字数 1245 2025-11-18 17:08:48
DNS重绑定攻击原理与防御
1. 攻击背景与基本概念
DNS重绑定攻击是一种利用DNS解析机制绕过同源策略(SOP)的攻击技术。同源策略要求网页脚本只能访问与当前页面相同协议、域名和端口的资源,但DNS重绑定通过动态改变域名对应的IP地址,使恶意脚本在用户浏览器中访问内部网络资源(如路由器、IoT设备等)。
2. 攻击原理分步解析
步骤1:攻击者控制恶意域名
攻击者注册一个域名(如evil.com),并配置其DNS记录,使得该域名的TTL(生存时间)极短(例如设为0或几秒)。同时,攻击者搭建一个恶意网站,其中包含用于攻击的JavaScript代码。
步骤2:用户访问恶意网站
用户被诱导访问http://evil.com,浏览器会解析该域名并获取初始IP(例如一个公网IP,指向攻击者控制的服务器)。此时,恶意页面中的JavaScript代码开始执行。
步骤3:DNS重绑定触发
由于TTL极短,浏览器在短时间内会重新查询evil.com的IP地址。攻击者通过DNS服务器将域名解析为一个内部IP地址(如192.168.1.1,指向用户本地路由器)。此时,浏览器认为恶意脚本与内部IP属于“同源”(因为同源策略仅校验域名,不校验IP变化)。
步骤4:绕过同源策略访问内部资源
恶意JavaScript通过Ajax或WebSocket等方式直接访问内部设备的管理界面(如http://192.168.1.1/admin),窃取数据或执行未授权操作。
3. 攻击的关键条件
- 短TTL DNS记录:确保浏览器快速重新解析域名。
- 用户浏览器保持连接:页面需在DNS重绑定后仍保持活跃(如使用长轮询或WebSocket)。
- 内部服务无认证或弱认证:许多IoT设备或路由器默认无需密码即可访问管理界面。
4. 防御措施
4.1 浏览器端防护
- DNS固定(DNS Pinning):现代浏览器在会话期间会缓存域名的初始IP,忽略TTL过期后的重新解析(但部分浏览器允许通过非标准端口或协议绕过)。
- 增强同源策略检查:某些浏览器会验证IP是否与域名初始解析一致。
4.2 网络层防护
- 防火墙规则:禁止内部设备响应来自公网的请求,或限制内部服务仅允许特定IP段访问。
- DNS过滤:使用安全DNS服务(如Cloudflare 1.1.1.1)拦截恶意域名。
4.3 服务端防护
- 强制认证:为内部服务设置强密码或多因素认证。
- 检查Host头:服务端验证请求的Host头是否属于合法域名。
4.4 应用开发建议
- 避免在客户端使用内部IP或域名直接访问资源。
- 对敏感操作增加CSRF令牌或二次确认机制。
5. 实际案例
例如,攻击者通过DNS重绑定访问家庭路由器的管理界面,修改DNS设置或将用户流量劫持到恶意服务器。此类攻击曾用于大规模IoT僵尸网络的构建(如Mirai变种)。
通过理解DNS重绑定的链式操作,可以更有效地部署防御策略,保护内网资源免受跨域攻击。