8. 安全考虑 (Security Considerations)
本文档是对 RFC 1034 和 RFC 1035 中概述机制的澄清, 因此不增加新的安全考虑. RFC 3833 [RFC3833] 完全专门讨论 DNS 的安全考虑; 其第 4.3 节将区域传输安全方面与 DNSSEC 所处理的安全威胁区分开来.
关于授权, traffic flooding, 和消息完整性的关注点分别在 "Authorization" (第 5 节), "TCP" (第 4.1 节), 和 "Zone Integrity" (第 6 节) 中提及.
主要安全关注点 (Primary Security Concerns)
-
未授权区域披露: Zone files 可能包含网络基础设施的敏感信息, 包括内部主机的名称和 IP 地址. 未授权区域传输可能帮助攻击者进行侦察. AXFR servers 必须实现授权机制 (第 5 节), 以将区域传输限制给受信任 clients.
-
中间人攻击 (Man-in-the-middle attacks): 如果没有完整性保护, 位于 AXFR client 和 server 之间的攻击者可能拦截并修改传输中的区域数据. 实现应该使用 TSIG [RFC2845] 或 SIG(0) [RFC2931] 防范此类攻击 (第 6 节).
-
拒绝服务 (Denial of Service, DoS): 区域传输可能消耗大量网络带宽和服务器资源. 攻击者可能试图通过发起许多并发区域传输请求来耗尽服务器资源. AXFR servers 应该实现速率限制和连接限制, 以缓解 DoS attacks.
-
数据完整性: 必须保护所传输区域数据免受未授权修改. AXFR clients 应该使用 TSIG, SIG(0), 或 DNSSEC validation 验证收到数据的完整性 (第 6 节).
-
重放攻击 (Replay attacks): 攻击者可能捕获一次合法区域传输并在之后重放, 从而可能导致 client 回退到过时区域数据. TSIG 和 SIG(0) 通过使用 timestamps 和 nonces 提供针对 replay attacks 的保护.
建议 (Recommendations)
-
使用认证: 区域传输应该使用 TSIG 或 SIG(0) 认证. 未认证区域传输易受 spoofing 和 man-in-the-middle attacks 影响.
-
实现访问控制: AXFR servers 必须实现访问控制策略, 限制允许哪些 clients 请求区域传输. 基于 IP 的 ACLs, TSIG, 和 SIG(0) 都是可行的授权机制.
-
保护机密区域: 对包含敏感信息的区域, operators 应该考虑除应用层认证外, 使用网络层加密 (例如 VPNs, IPsec).
-
监控传输: Operators 应该监控区域传输活动中的异常, 例如意外传输请求或认证尝试失败.
-
限制资源使用: AXFR servers 应该实现限制资源消耗的机制, 例如:
- 限制并发区域传输数量.
- 实现按 client 的速率限制.
- 对空闲连接设置超时.
-
保持软件更新: Operators 应该确保 DNS software 保持最新, 以获得安全修复和改进.
DNSSEC 考虑 (DNSSEC Considerations)
对于 DNSSEC-signed zones, AXFR protocol 会传输所有 DNSSEC-related records (DNSKEY, RRSIG, NSEC, NSEC3, DS). 接收 DNSSEC-signed zones 的 AXFR clients 应该验证所传输数据上的 DNSSEC signatures, 以确保完整性.
但是, DNSSEC 不提供机密性, 也不保护 AXFR protocol 本身. 仍然应该使用 TSIG 或 SIG(0) 认证区域传输请求, 并防范未授权传输.
威胁分析 (Threat Analysis)
关于 DNS 安全威胁的全面分析, 包括与区域传输相关的威胁, 操作员和实现者应参阅 RFC 3833 [RFC3833], "Threat Analysis of the Domain Name System (DNS)".