课题研究 DNS解析安全专题 子课题01 · 第4页 / 共8页
01六大核心研究子课题 · 检测体系

检测技术体系

单一检测手段都有盲区(见第1页KQ-2:未签名域DNSSEC失效、多CDN导致"差异≠异常")。本页构建"交叉验证 + 密码学验证 + 历史基线 + 透明度监控"的分层检测体系:以多解析器交叉发现"差异",以DNSSEC判定"真伪",以被动DNS与证书透明度识别"异常变更",以RPZ与流量日志实现"阻断与狩猎"。各手段按能覆盖的攻击类别组合使用。

多路径比对DNSSEC被动DNS证书透明度RPZdig/delv研究状态:研究中
所属阶段检测与防护 · 方法
目标受众安全运营、SOC、解析器运维
全文结构本页:6类手段 + 工具清单 + 判定阈值

01 · 体系总览

检测体系遵循"纵深防御"原则,按"发现差异 → 验证真伪 → 识别异常 → 阻断狩猎"四步组织。下图给出六类手段各自能覆盖的攻击类别(H-1~H-6),可见没有任何单一手段全覆盖,必须组合:

各检测手段对六类劫持的覆盖示意
"覆盖度"为本课题基于机理的定性评估(高/中/低),非标准度量;DNSSEC对H-4仅当NS未被盗改时有效
说明:数值为"可覆盖的攻击类别数(0—6)"的定性排序,用于说明互补关系,非精确度量。

判定逻辑闭环:检测到"解析差异"只是起点,不是结论。差异须经过"DNSSEC验证 / 权威回源 / 历史基线 / 证书透明度"四道中的至少一道"真伪判定",方可升级为事件——这正是第1页KQ-1(差异与恶意判别)的工程落地。

02 · 多解析器交叉验证

2.1 方法

对同一域名,从多个相互独立的递归解析器并发查询,比较返回的IP集合。若某解析器系统性地返回与"可信基线"不同的结果,且排除CDN/Anycast/智能解析等合理差异,则提示该解析器或其所处链路被劫持(覆盖H-3/H-5/H-6)。建议至少包含:①本机/运营商默认解析器;②≥2个公共DNS(如 Google 8.8.8.8、Cloudflare 1.1.1.1、Quad9 9.9.9.9);③必要时从若干地理分布的探针查询。

2.2 判定阈值(缓解KQ-1误报)

现象可能解释处置
仅1个解析器返回不同IPCDN/智能解析(合理)或该解析器被劫持(可疑)查该IP归属 + 权威回源比对,再定级
全部公共DNS一致、仅本机运营商异常本地递归被污染/注入(H-3/H-6)或本机网关被改(H-2)优先核查本机hosts/网关DNS
多地探针结果分布离散且无规律策略性污染(按地域返回不同结果)按"最小一致集"判定,升级监测
返回IP为明显无效/保留地址主动阻断/污染(如127.0.0.1、0.0.0.0)直接判异常并取证
# 多解析器并发比对(示例)
for r in 8.8.8.8 1.1.1.1 9.9.9.9; do
  printf "%s -> " "$r"; dig +short A www.example.com "@$r"
done

03 · DNSSEC验证

对已签名的域,DNSSEC提供密码学级真伪判定:解析器用信任锚(根/DS)逐级验证RRSIG,伪造应答通不过验证即被拒。这是检测H-3/H-5/H-6对签名域最可靠的手段。

3.1 实操命令

# 查看签名记录(RRSIG 应随答案返回)
$ dig +dnssec www.example.com

# 专用验证工具 delv:成功则末尾显示 "; fully validated"
$ delv www.example.com
$ delv +vtrace www.example.com      # 显示逐级验证轨迹

# DNSViz 在线可视化(dnsviz.net):输入域名即可看签名链是否完整

结果判读:① delv 末尾"fully validated"= 通过;②解析器报告"BOGUS"= 签名验证失败,判定篡改;③"insecure"(无签名)= 该域未部署DNSSEC,须退回多解析器/被动DNS等降级手段。注意:DNSSEC只保"域已签名且未被改NS",不保证"注册商账户没被盗"(见第2页§5.3)。

04 · 被动DNS(Passive DNS)

被动DNS通过长期观测解析行为,积累"域名↔IP"的历史映射库。当某域名突然出现历史未见、且无法用正常变更解释的IP时,即触发异常。常用数据源:Farsight DNSDB、SecurityTrails、VirusTotal Passive DNS、RiskIQ等(多为商业/需授权)。其在检测H-4(权威被改)、H-3(递归被控)上尤其有效——因为这些手法最终都会体现为"权威/长期稳定的IP发生异常变更"。

与多解析器互补:多解析器是"实时快照比对",被动DNS是"历史趋势比对"。前者发现"此刻异常",后者发现"偏离长期基线",二者结合可区分"临时投毒"(TTL到期即恢复)与"权威被持久篡改"(长期异常)。

05 · 证书透明度(CT)监控

攻击者若要对被劫持的域名呈现"合法证书"(尤其H-4注册劫持、H-2路由器钓鱼配合非法证书),证书会被写入证书透明度日志。监控CT日志可在用户被骗前发现针对目标域名的非法/异常证书。常用:crt.sh、Google Certificate Transparency、certificate.transparency.dev。这与"多解析器比对"形成"解析层 + 证书层"双锚点——即便解析被改,证书一旦出现异常也能独立告警。

局限:CT监控能发现"证书异常",但不能直接证明"解析被劫持";且部分私有CA/日志未强制纳入。应作为独立信号与解析检测交叉印证,而非唯一依据。

06 · TTL/一致性分析

投毒/篡改记录常带异常TTL:攻击者可能设定较短TTL以"快速翻面",或设定特殊值。将实时TTL与"该域名历史TTL分布"比对,偏离即辅助识别(尤适H-5缓存投毒)。一致性分析还包括:同一权威在不同时间返回的NS/SOA是否突变、CNAME链是否指向异常目标。

# 观察TTL与权威记录
$ dig +noall +answer www.example.com
$ dig NS example.com @a.gtld-servers.net      # 核对NS是否被改
$ dig SOA example.com @ns1.example.com        # 核对序列号/主机的合理性

07 · RPZ与流量日志

7.1 RPZ(响应策略区)

DNS防火墙(如ISC BIND的Response Policy Zone)可根据策略对特定应答做阻断、重定向或改写。将已知的恶意解析结果(来自威胁情报/被动DNS异常)写入RPZ,解析器即可在"答案返回用户前"拦截,是检测后的处置闭环手段(覆盖H-3/H-5/H-6)。

7.2 流量与日志监测

在出口/解析器侧采集DNS流量,监测:①某域名解析IP的突变频率;②异常高的NXDOMAIN率(可能投毒探测);③指向已知恶意IP段的解析占比。结合SIEM/日志平台实现威胁狩猎(关联ATT&CK T1071.004 DNS信道)。端点侧则核查hosts、网卡DNS、网关DNS配置(覆盖H-1/H-2)。

08 · 补充检测维度

8.1 EDNS Client Subnet(ECS)与智能解析差异

RFC 7871 定义的 ECS 会把客户端子网(/24 或 /56)随查询携带给权威,使CDN可按地理/运营商"就近"返回IP。这把"多解析器交叉"的判定复杂度进一步推高:同一解析器、不同ECS前缀可能得到不同结果。检测对策:①交叉比对时固定发送一致的ECS前缀,或显式+noedns排除ECS影响;②把ECS前缀作为比对维度之一(同一前缀下结果应稳定);③权威侧若发现异常来源的子网前缀被用于探测,应纳入观测。ECS还带来隐私外溢(客户端网段暴露给权威与递归),企业可考虑在出口递归处剥离ECS。

8.2 DNS Rebinding(域名重绑定)——劫持的"近亲"

Rebinding 不是解析被改,而是攻击者控制合法域名,先返回攻击者IP、后返回受害者内网IP,绕过浏览器同源策略攻击内网设备。虽不属于本课题H-1~H-6,但检测手段高度相关:①内网递归应拒绝把外网域名解析到私网/保留地址(BIND response-policy 或 dnsmasq stop-dns-rebind);②对 TTL 极短(<5秒)且IP频繁变化的域名告警;③内网服务强制鉴权、浏览器启用 DNS rebinding 防护。

8.3 加密DNS(DoH)绕行与降级检测

攻击者也可能利用 DoH 作为隐蔽信道:恶意软件使用硬编码的公共DoH端点(如 malware 直连 dns.google)绕过企业内网DNS监控(RPZ失效),或伪造"需要升级证书/降级为明文"的提示诱使用户接受降级。检测对策:①在企业出口对 dns.google / cloudflare-dns.com / mozilla.cloudflare-dns.com 等公共DoH端点做白名单管控,未授权的一律阻断并触发告警;②对"本应走DoT/DoH却被明文53端口接管"的客户端告警(降级特征);③将DoH流量特征(TLS SNI、证书指纹)纳入NDR/日志分析,与已知C2的DoH端点情报比对(见第7页企业加密DNS管控)。

边界说明:上述三类并非新的劫持类别,而是第4页六类手段在"ECS环境、内网环境、加密DNS环境"下的具体化——补齐它们,检测体系才覆盖现代生产环境的真实形态。

09 · 工具清单

类别工具用途
命令行dig / delv / kdig / drill查询、DNSSEC验证(delv为专用验证器;kdig支持DoH/DoT)
可视化DNSViz (dnsviz.net)、Verisign DNSSEC DebuggerDNSSEC签名链完整性与错误定位
被动DNSFarsight DNSDB、SecurityTrails、VirusTotal历史解析基线比对
证书透明度crt.sh、certificate.transparency.dev针对域名的非法证书早发现
测量OONI Probe、RIPE Atlas、dnsdiag多地域解析测量、resolver性能/路径(dnsping/dnsroute)
DNS防火墙ISC BIND RPZ、商业威胁情报网关基于策略的应答阻断/改写
抓包Wireshark / tcpdump链路层DNS报文取证(H-6 on-path分析)
枚举/测绘dnsrecon、dnsenum、Amass区域传送检查、子域枚举(授权范围内,支撑资产与暴露面核查)
Rebinding防护dnsmasq stop-dns-rebind、BIND RPZ 私网地址策略阻断外网域名解析到RFC1918/保留地址(§8.2)

本节参考来源(第4页)

[1]

RFC 4033/4034/4035(DNSSEC 验证原理):datatracker.ietf.org/doc/html/rfc4033

[2]

ISC, BIND 文档与 RPZ(Response Policy Zone)说明:bind9.readthedocs.io(ISC官方文档)

[3]

DNSViz(DNSSEC可视化与验证):dnsviz.net

[4]

证书透明度:crt.sh(crt.sh)、Google Certificate Transparency(certificate.transparency.dev)

[5]

OONI, DNS注入测量方法:ooni.org/nettest/dns-injection;RIPE Atlas:atlas.ripe.net

[6]

dnsdiag(dnsping/dnsroute/dnstraceroute):github.com/farrokhi/dnsdiag