今天分享的论文主题是大型公共 DNS 解析器缓存的检测和测量。 该研究团队来自加州大学圣地亚哥分校。 本文设计并优化了一种适用于大型公共 DNS 解析器的缓存检测工具,能够评估罕见或敏感域名使用的普遍程度。 笔者分析了目前主流的四种大型公共DNS解析器的缓存架构,并对一些敏感域名进行了实测。 该论文发表于2020年网络测量领域国际顶级会议ACM IMC(录用率:54 / 216 = 25%)。
全文共3300字,阅读时间约8分钟。
01
【背景介绍】
域名系统 (DNS) 负责将域名映射到 IP 地址。 它是互联网非常重要的基础设施。 几乎所有互联网应用都依赖于域名系统。 随着互联网系统的发展,对域名解析的需求日益强烈。 因此,大型公共DNS服务越来越受欢迎,例如众所周知的DNS(GPDNS)“8.8.8.8”。
与传统的开放 DNS 解析器相比,大型公共 DNS 服务具有独特的属性。 首先,作为面向全球、大规模、快速、专业的DNS服务,其用户规模非常大,承载的分辨率要求也非常巨大[1]; 其次,为了实现负载均衡,大型公共DNS服务往往具有复杂的缓存架构。 这些DNS服务的缓存并不是完整、连续的,而是由许多分散的DNS缓存组成[4,5]。 具体来说,它由许多独立的服务点(PoP,-of-)组成。 如图1所示,用户的查询首先通过IP路由到世界各地的一个PoP; PoP内部,通过负载均衡将查询分发到前端缓存池; 如果负责处理查询的前端缓存没有查询域名的结果,则会通过负载均衡再次转发到后端解析器池之一; 最后,后端解析器执行递归查询以获得结果。 在回复结果的同时,请求处理路径上的缓存也会被填满。
图1:公共DNS解析器响应流程
由于大型公共DNS服务的缓存节点数量众多且相互独立,因此某个域名的缓存数量也可以作为衡量该域名受欢迎程度的评价标准。 域名越受欢迎,查询该域名的用户就越多,大型公共DNS服务中的缓存数量就会越大。 特别是对于一些恶意或敏感域名,窥探大型公共DNS服务的缓存可以提供较低的活跃用户数量限制来评估危害程度。 同时,公共DNS的共享性质也防止了缓存窥探损害用户隐私。
然而,由于大型公共DNS解析器的缓存架构相对复杂,缓存监听极具挑战性。 每个缓存检测探针获得的结果仅包含PoP中一个缓存的状态,但测量者不知道该结果来自哪个缓存,也不知道来自哪个PoP。 论文的主要贡献是开发了一个使用 TTL 信息和结果优化方法来窥探大型公共 DNS 解析器缓存的工具,并使用该工具基于对四大公共 DNS 服务的分析来评估一些域名。 使用的普遍性。
02
【研究方法】
1、缓存检测与识别
在缓存检测方面与传统方法没有本质区别。 它们都查询特定域名,而没有设置预期递归 (RD) 标志。 该方法防止后端解析器进行递归查询,并根据结果判断缓存中是否存在查询域名的记录[2,3]。
同时,响应中还会包含记录的TTL,这是区分是否来自同一个缓存的关键。 TTL 是一个以秒为单位的值,随着时间的推移而减少。 因此,如果横轴是时间,纵轴是TTL的值,那么缓存TTL的变化应该是一条斜率为-1的线(TTL线)。 理论上,来自同一个缓存的响应将分布在同一条TTL Line上,因此TTL Line的数量对应于独立缓存的数量。
2. TTL线路识别优化
由于DNS响应中的TTL仅精确到秒,因此响应中的TTL值与探针维护的TTL线之间可能存在亚秒级测量偏差。 可能会出现三种情况,如图 2 所示: (1) 探测和 解析器生成响应的时间和响应到达探测主机的时间之间,缓存的 TTL 保持不变,这在理想情况下是正确的。 (2) 生成的响应与检测主机收到的响应存在亚秒级偏差,导致TTL值降低,导致TTL线路识别不准确。 (3)探头和旋转变压器时钟不同步,导致TTL测量不准确。
图2:TTL线错误匹配情况
为了避免上述问题,文章给出了一种启发式的方法:如果来自缓存探针的TTL在同一个TTL Line上,则认为没有错误; 如果一组TTL值在两条相邻的TTL线上(相隔一秒),那么假设其中一个有错误,将其删除; 如果 TTL 位于三个或更多相邻的 TTL 线上,每间隔一秒,则删除该组的第一行和最后一行,推理第一条 TTL 线可能是由于高估了 TTL,而最后一行可能是由于低估 TTL,但中间线上的 TTL 将包含至少一个正确的测量值。
3. PoP识别
除了使用TTL Line来区分结果是否来自不同的缓存外,还需要明确结果来自哪个PoP。 本文研究了四家公共 DNS 服务提供商 Quad9 和 GPDNS。 这些公共解析器可以通过特定的查询请求来确定响应的来源。 以GPDNS为例,用户首先可以通过查询“..goog.”的TXT记录来获取IP网段与位置的映射关系; 然后根据映射关系,通过查询“”的TXT记录,获取负责解析的具体地址。 确定来源。
4. 数据收集
论文的研究内容包括:首先,通过查询研究人员控制的域名,分析TTL的变化以及接收查询的权限状态,检测四大公共DNS服务商的缓存架构; 其次,依靠用户模拟查询情况并比较检测结果来评估缓存检测框架的准确性; 最后,用它来测量几个敏感域名在四个主流公共DNS解析器上的缓存状态,以评估其使用的流行程度。 具体来说,作者使用方舟网络部署缓存监听探针,并使用RIPE Atlas网络进行用户查询模拟操作。
03
【主要发现】
1. 4种主要的公共DNS解析器缓存架构
图3:Quad9的缓存处理模式和缓存架构
文章实测发现Quad9和Quad9采用了最直接的缓存处理方式。 每个包含 MAX TTL 值的观察到的响应都可以观察到对权威解析器的查询。 因此,Quad9 的前端没有缓存,查询由后端解析器解析。
图4:缓存处理模式和缓存架构
例如,如图 4 所示,所有响应都落在源自第一个查询的同一 TTL 线上。 即,DNS服务使用具有共享前端缓存架构的DNS解析器。 具体来说,所使用的解析器,前端缓存有一个共享的后备数据库。
图5:GPDNS缓存处理方式及缓存架构
公共DNS解析器具有独特的缓存处理模式,当查询不包含域名的前端缓存时,GPDNS似乎会创建一个新的、独立的前端缓存。 具体来说,当查询负载平衡到遭受缓存未命中的前端时,它将将该查询转发到后端解析器。 后端解析器将对查询的响应发送给用户,然后填充前端缓存中的空缓存。 但填充的是最大 TTL 值,而不是后端缓存中缓存条目的当前 TTL。 因此,前端缓存的每次未命中都会填充一个唯一可识别的新前端缓存。
如图 5 所示,后端解析器的每个缓存命中都标记为垂直虚线,这标志着在该时间点已填充最大 TTL 的前端缓存。 从图中也可以看出。 确实有四条 TTL 线与最大 TTL 处的虚线相交。
2. 准确度评估
图 6:缓存估计偏差
对于不同的公共解析器,准确性有所不同。 其中,后端解析器使用的是Quad9。 默认情况下,该软件不会回答禁用递归期望标志的查询并返回,从而导致大多数 PoP 的缓存数量被低估超过 50%。 GPDNS由于其独特的缓存模式,很难被完全检测到。
但总体而言,结果低于实际缓存数。 但考虑到设计初衷是为某个域名的热度提供一个下限参考,这种低估的结果是可以接受的。
3、敏感域名计量
文章测量了三种敏感服务的流行程度:隐私跟踪软件( )、合同作弊服务( )和错误域名植入(Typo)。
图 7:单个 TTL 期内不同隐私跟踪软件的规模
图8:合约作弊服务每日网络请求量
图9:GPDNS每日误植域名网络请求数
04
【总结】
公共DNS解析器的分布式缓存的特性使得研究人员可以利用缓存来监视域名的流行度,而不会侵犯用户的隐私。 论文提出了一种可行的公共DNS服务缓存监听方法,提出了有针对性的结果优化措施,并形成了检测框架。 虽然该方法在准确度上仍存在较大偏差,但仍能为域名通用性提供最低参考价值。 论文还利用测量策略尝试对四种主流大型公共DNS解析器的内部缓存处理模式进行分析和解读。
原文链接
〜/docs/imc20-.pdf
开源工具链接
参考
[1] CM Moura,,Wes,,和。 2020. 更新:DNS 怎么样? 在 ACM(活动,美国)(IMC '20)中。 ,美国纽约州纽约市,42-49。
[2] 保罗五世.. 1987.名字-和。 RFC 1034(1987),1-55。
[3] 保罗五.. 1987 年。名称 - 和 .RFC 1035 (1987), 1–55。
[4] CM Moura、John、M̈ uller、de O. 和 Marco。 2018.当堤坝:DNS DDoS。
[5] Lior、Afek、Anat-Barr、Neta Peleg 和 Matan Sabag。 2019 年。野外 DNS。 在过程中。 ACM 和演示。
编辑、校对|张一鸣、刘宝军
扫一扫在手机端查看
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。