DNS Vulnerability: Dangling Domain Records
DNS 漏洞:悬空域名记录 (Dangling Domain Records)
描述
当 DNS 记录指向不再活跃或不再受组织控制的资源时,就会出现悬空域名 (dangling domains)。这些错误配置可能导致域名劫持、数据泄露和声誉受损。以下领域是管理悬空域名时的关键关注点:
1. 云资源引用
指向已取消配置的云资源的 DNS 记录会带来重大风险。常见的错误配置包括: * 孤立的 CNAME 记录指向已终止的云服务 * A 记录指向已释放的 IP 地址
# 危险的悬空记录
app.example.com. IN CNAME terminated-app.cloudservice.com.
api.example.com. IN A 203.0.113.0 # Released IP
# 妥善停用
# 1. 释放资源前移除 DNS 记录
# 2. 或替换为受控占位符
app.example.com. IN CNAME service-offline.example.com.
2. 第三方服务集成
指向已停止使用的第三方服务的记录会产生安全漏洞: * 废弃的子域名委派 * 过期的服务端点
# 危险配置
analytics.example.com. IN CNAME client-xyz.analytics-service.com. # Service discontinued
track.example.com. IN CNAME example.abandoned-tracker.com. # Company defunct
# 安全配置
# 始终维护内部服务依赖项清单
analytics.example.com. IN CNAME active-client.current-service.com.
3. 子域名管理
子域名清理不当会导致潜在的接管 (takeover) 场景: * 被遗忘的开发/预发布 (staging) 环境 * 传统应用程序子域名 * 不活跃的项目环境
# 存在漏洞的子域名
dev.example.com. IN CNAME old-project.github.io. # Repository deleted
stage.example.com. IN CNAME staging.heroku.com. # App removed
beta.example.com. IN A 198.51.100.1 # Server decommissioned
# 妥善的记录管理
# 定期审计并移除不活跃的子域名
dev.example.com. IN A 203.0.113.10 # Internal development server
staging.example.com. IN CNAME current-stage.example.com. # Active staging environment
4. 邮件服务器记录
废弃的与邮件相关的记录可能导致电子邮件欺骗 (spoofing) 和网络钓鱼 (phishing): * 过期的 MX 记录 * 弃用的邮件服务器引用
# 危险的邮件配置
example.com. IN MX 10 legacy-mail.example.com. # Server decommissioned
mail.example.com. IN A 203.0.113.50 # Released IP
# 安全配置
example.com. IN MX 10 primary-mail.example.com.
example.com. IN MX 20 backup-mail.example.com.
5. 证书验证记录
废弃的域名验证记录会带来安全风险: * 过期的 ACME 挑战记录 * 被遗忘的域名验证 CNAME 记录
# 存在风险的验证记录
_acme-challenge.example.com. IN TXT "abandoned-validation-token"
validate.example.com. IN CNAME validate.oldcertprovider.com.
# 干净的配置
# 签发证书后移除验证记录
# 使用自动证书管理
6. 服务发现记录
过时的服务发现条目可能会暴露内部基础架构: * 针对已停止服务的 SRV 记录 * 传统服务端点引用
# 暴露的服务记录
_ldap._tcp.example.com. IN SRV 0 0 389 old-dc.example.com.
_xmpp._tcp.example.com. IN SRV 0 0 5222 chat.example.com.
# 适当清理
# 停用时移除或更新服务记录
_ldap._tcp.example.com. IN SRV 0 0 389 current-dc.example.com.
这些悬空域名的错误配置可能导致严重的安全事件,包括: * 域名接管攻击 (domain takeover attacks) * 通过被劫持端点进行的数据外泄 * 使用合法域名进行的网络钓鱼活动 * 品牌声誉受损 * 内部基础架构细节暴露
组织应实施定期的 DNS 审计,维护服务清单,并遵循适当的停用程序,以防止出现悬空域名漏洞。
建议
为了降低与悬空域名相关的风险,请考虑以下建议:
-
从域名清单开始: 开始对所有域名和子域名进行全面审计:
# 示例域名清单格式 domain: example.com subdomains: - app.example.com -> AWS CloudFront - api.example.com -> Azure App Service - mail.example.com -> Google Workspace owner: DevOps Team -
实施渐进式监控级别: 根据域名的关键性扩展监控规模: | 域名类型 | 检查频率 | 原因 | |-------------------|----------------|----------------------------------| | 生产环境关键 | 每 5 分钟 | 业务关键型服务 | | 面向客户 | 每 15 分钟 | 客户体验影响 | | 内部工具 | 每小时 | 内部运营支持 | | 开发环境 | 每 6 小时 | 非关键环境 |
-
定期域名审计:
- 验证所有云资源连接
- 检查第三方服务依赖项
- 验证 DNS 记录的准确性
-
监控子域名证书
-
安全最佳实践:
- 为 DNS 管理使用专用的云凭据
- 对 DNS 更改实施严格的 RBAC
- 启用对所有 DNS 修改的审计日志记录
-
维护 DNS 更改审批工作流
-
操作程序:
- 记录所有域名所有权细节
- 创建服务停用检查表
- 维护云资源映射
-
测试域名接管预防措施
-
计划中的停用策略:
- 从资源识别开始
- 记录所有依赖项
- 监控活跃连接
- 删除 DNS 记录
- 归档配置细节
这些建议有助于确保适当的域名管理,并在保持运营效率的同时防止悬空域名漏洞。
链接
- Dangling Domains: Security Threats, Detection and Prevalence
- Dangling DNS and the dangers of subdomain hijacking
- Dangling DNS Record
标准
- SOC2_CONTROLS:
- CC_6_1
- CC_6_6
- CC_6_7
- CC_6_8
- CC_7_1
- CC_7_2
- CC_8_1
- CCPA:
- CCPA_1798_150
- GDPR:
- ART_25
- ART_32
- HIPAA_CONTROLS:
- SECURITY212
- SECURITY213