MaginotDNS是清华大学团队在USENIX Security 2023和Black Hat USA 2023披露的新型DNS缓存投毒攻击,专门针对同时充当递归解析器与转发器的条件DNS解析器(CDNS),利用域内检查算法的缺陷注入伪造记录。
CDNS的双重角色与共享缓存隐患:
CDNS系统兼具递归解析器与转发器两种身份:作为递归解析器,它直接响应客户端查询或迭代查询权威服务器;作为转发器,它将请求转交给更强的递归解析器。这种双重职能导致其内部维护单一共享缓存,使得转发路径与递归路径的缓存条目相互影响,成为MaginotDNS的攻击面。原文未给出具体部署规模数据。
域内检查机制的绕过原理:
域内检查原本用于防御Kashpureff攻击,要求应答记录的域名必须与查询名处于同一权限域内。MaginotDNS发现该算法在处理CDNS的转发与递归双重路径时存在逻辑漏洞,攻击者可构造特定查询序列,诱导CDNS将伪造记录写入共享缓存。原文未给出具体成功率或所需查询次数数据。
防御现状与工程取舍:
现有缓解手段包括源端口随机化、0x20大小写编码、DNSSEC、DNS Cookie等,但均未覆盖CDNS共享缓存的跨路径污染场景。部署DNSSEC可从根本验证数据真伪,但普及率仍受限;启用DNS Cookie需双端支持,对老旧设备兼容性存疑。工程师需在协议升级成本与残留风险间权衡。
对运维与网络工程师而言,MaginotDNS提示需重新审视CDNS部署架构:若无法立即全链路启用DNSSEC,应考虑隔离转发与递归缓存、限制转发目标可信度、监控异常缓存写入行为,以降低缓存投毒在内网解析链路的实际危害。
原文: APNIC Blog(2023-09-26)|编译自 APNIC Blog,事实以原文为准。
来源:APNIC Blog