《皇帝的新衣》如果反过来讲会是怎么样呢?皇帝穿上了华丽的龙袍,但是所有人都说皇帝没有穿衣服,只有一个小孩怯生生地说道“可他明明是穿了衣服呀?” 我们今天为大家推荐一篇USENIX Security 2022的论文吧~
工作概述
互联网的两个端点之间的路由并不是一成不变的,这在互联网设计之初就作为一条基本原则确定下来。为了达到负载均衡,路由器会检查IP和TCP/UDP报头,根据它们的值,选择不同路径发送数据包。以往的工作也揭示了这方面的一些结论——源IP和端口的改变会影响路由选择。然而,此前少有对这种变化进行深入的测量研究。本文以某国的域名审查系统作为考察对象,对以上问题做了大规模的测量研究。作者的贡献如下:
-
描述和探索路由器负载均衡对DNS审查结果的影响。
-
开发了测量工具
BreadCrumb
,量化分析源IP、源端口和目的IP之间的改变对路由器的影响。 -
证明之前研究中用于DNS审查的方法会受到路由改变的影响。
-
基于IP和端口的负载均衡在37%的被测IP和56%的AS表现出审查差异。
-
为未来的网络审查测量研究提供指导。
测量方法
作者设计开发了名为BreadCrumb
的工具,用来测量数据包头变化引起的DNS审查差异。
BreadCrumb
分析了数据包参数变化对以下结果的影响:
-
DNS 探测数据包采用的路由
-
被观察到的DNS审查行为
作者把针对这两种变化的识别工作分解成了几个任务:生成输入、生成数据包和结果分析。
BreadCrumb
架构如下图所示:
图中的组件1主要负责生成输入,可分解成以下几个子任务:
-
在给定区域中选择目的IP
-
识别域名来寻找审查的变化
-
选择源IP与源端口进行实验
在生成数据包这一步中,BreadCrumb
结合了先前的工具Traceroute
和审查测量方法。给定输入组合(源IP和源端口、目的IP和目的端口),BreadCrumb
向目的IP发送审查的DNS查询并生成数据包时间表,同时记录响应来识别审查的变化。
图中组件3和4为结果分析。作者将结果预设为:当收到回复为审查事件,未收到回复则为未审查事件。在工具中作者使用保守迭代的方式来判断结果,在每次实验迭代后,BreadCrumb
会记录所有查询和响应,若缺少响应则会在下一次迭代中重复实验,直到出现响应或达到最大重复次数结束。
实验数据与结果
作者进行的审查差异实验共涉及以下三个部分:
-
路由路径探索;
-
不同IP之间的审查差异;
-
不同域名之间的审查差异。
实验使用的数据集如下图所示:
作者通过以上实验的数据,回答了以下四个问题:
改变源端口和IP是否会改变数据包的路径
作者展示了源参数的变化会怎样导致审查数据包的路径差异,为此采用了节点数和路径数这两个数来度量。节点指路由器跳的IP地址,节点数是在源参数的所有变化中BreadCrumb
测量到的所有节点的集合。路径是在具有一组源参数的DNS Traceroute中观察到的所有节点的集合,路径数是所有路径的集合。分析结果如下列图所示:
以上结果基于不同源参数,确定了它们会对DNS审查分组所经过的路径产生强烈影响。使用固定的源参数执行重复的实验不会产生明显不同的路径,但更改其中至少一项会产生不同路径。
改变源IP和端口是否会造成审查差异
作者随机选取了10000个目标IP和3个已知被审查的域名,结果表明37%的目标对不同的源IP和端口表现出审查差异。
特定的源IP或端口是否会造成更多的审查差异
作者根据IP地址的低三位对IP进行分组,结果表明IP地址的低三位会导致明显的审查差异。
不同域名之间的审查差异普遍性如何
作者对在492个目的域名和75个敏感域名进行实验发现:
-
比较极端的变化是最主要的,导致156个目标IP变化。
-
如下图所示的一些域名表现出审查制度的变化
最后,对于网络审查的测量工作,作者还对以后的研究者给出如下建议:
-
在设置输入参数和目的IP时尽量多样化
-
在路径重建时,要确保Traceroute信息包与测量信息包的结构是相同的。
-
网络中会有频繁的丢包情况,因此测量技术必须重复确定最终结果的一致性。
论文地址:https://www.usenix.org/system/files/sec22fall_bhaskar.pdf
原文始发于微信公众号(安全研究GoSSIP):G.O.S.S.I.P 阅读推荐 2022-09-22
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论