摘要

  • DNS响应速率限制(RRL)可减少权威服务器在伪造UDP请求反射攻击中发出的相似重复回答。
  • Paul Vixie的贡献重要但并非孤立:ISC记录了与他共同进行的防御策略讨论,BIND开发记录还列出Vernon Schryver。
  • RRL按照回答类别和客户端地址范围计量流量;这是一种流量控制策略,不是身份认证、攻击归因或意图判断。

一条回答如何成为攻击载荷

DNS反射攻击会向权威服务器发送查询,并把受害者地址伪装成源地址。服务器随后把回答发给受害者。如果回答远大于请求,攻击者就借服务器放大了自己的发送能力。

ISC在2014年的演示文稿给出一个例子:一个36字节、查询isc.org的ANY请求,可能得到3,576字节的回答。这说明反射为何有吸引力,却不是适用于所有DNS流量的放大倍数。实际尺寸取决于查询内容、区域数据、DNSSEC、传输方式和具体回答。运营问题要窄得多:当许多请求看起来相似时,权威服务器应当继续发出多少重复答案?

ISC称,在公司内部与Paul Vixie举行的防御策略讨论促成了RRL。BIND的一条开发记录把BIND 9补丁归于Vixie和Vernon Schryver。现有公开材料支持Vixie起了重要作用,但不支持“独自发明”的说法。RRL是团队把运营问题变成软件机制,再继续调整的结果。

Internet Hall of Fame的人物介绍把这项工作放在更广的DNS职业经历中:Vixie于1988年在Digital Equipment Corporation开始维护BIND 4,后来成为BIND 8的主要作者和技术架构师。他还创办了MAPS、PAIX和Internet Software Consortium,并在Keio University完成与DNS、DNSSEC相关的博士研究。这些经历体现了他的工作范围,但不会改变RRL补丁的共同署名;BIND记录同样列出了Schryver。

BIND 9.9.4把RRL作为可选编译功能引入;ISC的《BIND 9.10 Significant Changes》说明称,RRL随后成为默认编译配置的一部分。这能说明BIND何时提供该功能,不能说明每个权威服务器运营者都启用了它,也不能推断其他DNS软件采用相同默认值。

令牌桶统计的是相似性,而非身份

BIND 9.20.29管理员手册把RRL描述为围绕相似回答和DNS客户端建立的令牌或信用额度桶。每次回答消耗额度,配置的速率在时间窗口内补回额度。运营者可限制非空回答、NODATA、NXDOMAIN、委派、错误或全部UDP回答等类别。超过额度后,BIND可以丢弃或改变部分回答。

“客户端”这个词背后有政策选择。BIND目前文档记录的默认设置按IPv4 /24 和IPv6 /56 聚合:同一网段内的地址会计入同一个客户端组。一个递归解析器、企业、校园或接入商可能让许多互不相关的用户共享同一前缀。如果其中一方耗尽额度,同组的另一方也可能收到延迟、截断或被省略的回答。

这并不意味着按前缀聚合必然错误。逐地址限速可能被分散请求绕过,而洪泛发生时服务器必须分配有限的出口带宽。前缀宽度、回答类别和速率都是带有可用性代价的控制项,应被视为明确的运行策略,而非对“真实客户端身份”的中性观察。

BIND的slip设置把取舍呈现得更清楚。按当前手册,默认slip=2:没有有效服务器Cookie的受限请求,每隔一次会收到较小回答;客户端有Cookie时可收到BADCOOKIE,否则BIND设置截断位,要求解析器改用TCP重试。有些错误不能截断,只能按slip给出的频率放行。slip=1让每个受限回答都以截断形式送出,优先保证回答完整性与交付,而非最大限度压低反射;slip=0则丢弃所有超限回答。重试通路本身就是防御设计的一部分。

服务角色决定部署边界

ISC建议在权威服务器上使用RRL,并提醒在递归服务器上启用可能产生误报,也可能拖慢反复查询同一名称的客户端。与其依赖RRL,不如关闭开放递归。同一功能部署在公开权威服务和面向终端用户的递归服务中,代价并不相同。

BIND提供log-only模式,供运营者在执行限制前观测候选参数;相关计数器包括RateDropped、QryDropped、RateSlipped和RespTruncated。它们说明所配置的机制会做什么或已经做了什么,却不能揭示攻击者身份。观测到的源地址可能本身就是伪造的;进入同一个限速桶也不构成归因证据。

Heng Lu的第65号笔记在此只提供编辑视角:应以运行行为检验某个实现实际控制什么。它不是Vixie经历的历史证据,也不是RRL工作机制的技术证据。评估RRL时,应看实际运行的BIND版本、配置、桶计数器及客户端重试行为,而不是只看文档里有没有一条指令。

有证据支持的结论必须有限定。RRL可以降低权威服务器在反射流量中贡献的相似重复回答;它也可能把合法用户合并在同一组,并在交付和抑制之间作出取舍。它不能验证请求身份、判定动机、衡量普遍采用程度,也不保证受害者不再收到反射流量。Vixie的贡献,更准确地说,是参与把运营防御变成可配置、可检查其边界的软件机制。

来源