如何为安全目的分析 DNS 记录
一份从安全角度解读 DNS 记录的实用指南:理解 A/AAAA/MX/NS/TXT/CNAME,检查 TXT 记录中的 SPF 与 DMARC,并发现常见错误配置。
快速解答
DNS 安全分析意味着审查域名的记录——A/AAAA/MX/NS/TXT/CNAME——并检查 TXT 记录中的 SPF 与 DMARC,因为缺失 SPF 或 DMARC 是邮件伪造的常见促成因素。
定义
DNS 安全分析是对公开 DNS 记录的审查,以识别邮件安全配置(SPF、DMARC、DKIM 选择器)、委派问题与其他暴露指标。
先给答案
先关注 TXT 记录:SPF 与 DMARC 的存在性是对邮件伪造的快速健康检查。然后审查 A/AAAA/MX/NS 中的委派问题。
重要的记录类型
| 记录 | 用途 | 安全相关性 |
|---|---|---|
A | 主机的 IPv4 地址 | 将解析出的 IP 对照已知托管/滥用数据 |
AAAA | 主机的 IPv6 地址 | 与 A 相同的检查 |
MX | 邮件路由服务器 | 遗留/意外的邮件服务器是伪造面 |
TXT | 自由文本;承载 SPF、DKIM 选择器、域名验证 | SPF/DMARC 的存在性与正确性 |
NS | 权威名称服务器 | 委派给意外或未被认领的提供商 |
CNAME | 指向另一主机名的别名 | 悬空 CNAME 使子域名接管成为可能 |
PTR | 反向映射(IP → 名称) | 很少被验证;用于上下文,而非证明 |
TTL | 每条记录的缓存生命周期 | 极短 TTL 常见于攻击者控制的基础设施 |
1. 主机记录(A / AAAA / CNAME)
确认预期主机按预期解析,且没有意外的 CNAME 链造成接管风险(指向未认领服务的悬空 CNAME 是真实存在的劫持向量)。将解析出的 IP 与组织实际发布的内容比对。
2. 邮件路由(MX)
检查 MX 记录是否指向你预期的邮件提供商,且没有遗留服务器。意外的 MX 目标意味着该域名的邮件可能被域名所有者不控制的基础设施接收。
3. TXT:SPF
查找 v=spf1 ...——它声明哪些服务器可为该域名发送邮件。缺失 SPF 意味着来自该域名的伪造邮件是可能的。有效的 SPF 应足够短以容纳在单个 DNS 响应中(10 次查询限制),并尽可能以 -all(硬失败)而非 ~all(软失败)结尾。
4. TXT:DMARC
检查 _dmarc.<域名> 中的 v=DMARC1。策略(p=none|quarantine|reject)告诉接收方如何处理未对齐的邮件。没有 DMARC,接收方缺乏策略指引,伪造将不被察觉。查找 rua=/ruf= 报告地址,使失败实际可见。
5. 委派与异常模式
- NS:名称服务器应属于域名所有者或预期的 DNS 提供商——而非无关服务。
- PTR:与域名不匹配的反向记录常见于僵尸网络与 C2 托管。
- 无 SPF/DMARC 的 TXT:仅为域名验证字符串的 TXT 条目(例如
google-site-verification)并不能防御伪造。 - 极短 TTL(数秒到数分钟)贯穿整个基础设施是攻击者控制域名的标志,不过合法 CDN 也会使用它。
6. 在上下文中验证
DNS 结果会变化;与你的权威提供商核对。使用只读查询,并将结果视为一个信号。将 DNS 发现与头部分析配对——在头部中 SPF/DMARC 失败且 DNS 中无 DMARC 记录的域名几乎可以肯定是伪造的。
调查路径
域名
↓
DNS 查询
↓
A / AAAA / MX / TXT / NS / CNAME / PTR
↓
SPF · DMARC 判定
↓
相关域名 · 解析出的 IP
↓
IOC 查询
↓
与头部证据关联
↓
钓鱼防御清单