CacheBrowser实验:使用内容缓存绕过没有代理的中文防火墙



图片:未飞溅

如今,所有Internet内容的很大一部分都是使用CDN网络分发的。 为此,研究各种审查员如何在此类网络上传播影响。 马萨诸塞州大学的科学家以中国当局的做法为例, 分析了阻止CDN内容的可能方法,并开发了一种绕过此类锁定的工具。

我们准备了包含本实验主要结论和结果的综述材料。

引言


审查制度是对互联网上言论自由和信息自由获取的全球威胁。 在许多方面,这是有可能的,这是由于Internet借用了上世纪70年代电话网络中的“端到端通信”模型。 这使您可以简单地基于IP地址来阻止对内容或用户通信的访问,而无需花费大量精力或金钱。 有几种方法,从使用禁止的内容阻止地址本身到阻止用户甚至使用DNS操作识别地址的能力。

但是,互联网的发展也导致了新的信息传播方式的出现。 其中之一是使用缓存的内容来提高性能并加快通信速度。 如今,CDN提供商处理世界上大量的流量-只有这一领域的领导者Akamai占全球静态Web流量的比例高达30%。

CDN网络是用于以最大速度交付Internet内容的分布式系统。 典型的CDN网络由位于各个地理位置的服务器组成,这些服务器缓存内容以便将其“提供”给最接近该服务器的那些用户。 这可以大大提高在线交流的速度。

除了提高最终用户的服务质量外,CDN托管还帮助内容创建者扩展其项目,从而减轻基础架构的负担。

审查CDN内容


尽管CDN流量已经占了通过Internet传输的所有信息的很大一部分,但对于现实世界中的检查器如何对其控制进行控制,仍然几乎没有研究。

该研究的作者首先研究了可应用于CDN的审查技术。 然后,他们研究了中国当局正在使用的真正机制。

首先,让我们讨论一下可能的审查方法以及将其应用于CDN控制的可能性。

IP过滤


这是最简单,最便宜的Internet审查技术。 使用此方法,检查器可以检测托管违禁内容的资源的IP地址并将其列入黑名单。 然后,受控制的Internet服务提供商停止传递发送到此类地址的数据包。

基于IP的阻止是审查Internet的最常用方法之一。 大多数商用网络设备都配备了执行这些锁定的功能,而无需大量的计算成本。

但是,由于该技术本身的某些属性,该方法不太适合阻止CDN流量:

  • 分布式缓存 -为了确保内容的最佳可访问性并优化性能,CDN网络将用户内容缓存在位于地理位置分散的大量边缘服务器上。 要过滤此类基于IP的内容,检查器将需要找出所有边缘服务器的地址并将其列入黑名单。 这将影响该方法的主要属性,因为它的主要优点是,在通常的方案中,阻止一台服务器可使您立即“切断”大量人对禁止内容的访问。
  • 共享IP-商业CDN提供商在多个客户端之间共享其基础结构(即边缘服务器,映射系统等)。 结果,从与禁止内容相同的IP地址下载禁止的CDN内容。 结果,任何对IP过滤的尝试都将导致大量对检查员不感兴趣的站点和内容被阻止。
  • 高度动态的IP分配 -为了优化负载平衡并提高服务质量,边缘服务器和最终用户的映射非常快速和动态。 例如,Akamai每分钟更新一次返回的IP地址。 这几乎使将地址与违禁内容相关联成为不可能。

DNS干扰


除IP过滤外,另一种流行的审查方式是DNS干扰。 此方法涉及检查器的操作,以确保用户完全不会识别带有禁止内容的资源的IP地址。 也就是说,干预是在域名解析级别上进行的。 有几种方法可以做到这一点,包括破解DNS连接,使用DNS中毒技术以及阻止DNS查询到被禁站点。

这是一种非常有效的阻止方式,但是如果您使用非标准的DNS解决方法(例如,带外通道),则可以避免这种情况。 因此,检查员通常将DNS阻止与IP过滤结合在一起。 但是,如上所述,IP过滤对于审查CDN内容无效。

使用DPI进行URL /关键字过滤


用于监视网络活动的现代设备可用于分析传输的数据包中的特定URL和关键字。 这项技术称为DPI(深度数据包检查)。 这样的系统找到对禁止的单词和资源的引用,此后会干扰在线通信。 结果,仅丢弃分组。

此方法有效,但更为复杂且占用大量资源,因为它需要对某些流中发送的所有数据包进行碎片整理。

可以保护CDN内容免受此类过滤以及“常规”内容的侵害-在两种情况下,加密(即HTTPS)的使用都会有所帮助。

除了使用DPI搜索禁止资源的关键字或URL之外,这些工具还可用于更高级的分析。 这些方法包括对在线/离线流量的统计分析以及对识别协议的分析。 这些方法非常耗费资源,目前还没有证据表明审查员会大量使用它们。

CDN提供商的自我审查


如果检查员是州,那么它就有一切机会禁止不遵守当地法律规定访问内容的CDN提供者在该国工作。 自我审查制度不能以任何方式遭到抵制-因此,如果CDN提供商公司有兴趣在一个国家/地区开展工作,即使它限制言论自由,也将被迫遵守当地法律。

中国审查CDN内容如何


出色的中文防火墙没有被不合理地认为是提供Internet审查的最有效,最先进的系统。

研究方法


科学家们对位于中国境内的Linux节点进行了实验。 他们还可以访问国外的几台计算机。 最初,研究人员检查了该节点是否经过审查,类似于其他中国用户所采用的那样-为此,他们试图从该计算机打开各种禁止访问的站点。 因此,确认存在相同级别的审查制度。

中国的CDN阻止站点列表来自GreatFire.org。 然后分析每种情况下的阻塞方法。

根据公开数据,Akamai是CDN市场上唯一在中国拥有自己基础设施的主要参与者。 参与研究的其他提供商:CloudFlare,Amazon CloudFront,EdgeCast,Fastly和SoftLayer。

在实验过程中,研究人员发现了该国内部Akamai边缘服务器的地址,然后试图通过它们获取缓存的允许内容。 无法访问禁止的内容(返回HTTP 403 Forbidden错误)-很明显,公司进行自我审查以保持在该国工作的可能性。 同时,对这些资源的使用在国外仍然开放。

中国没有基础设施的提供商不会对本地用户使用自我审查。

对于其他提供商,最常用的阻止方法是DNS过滤-对阻止站点的请求将解析为无效的IP地址。 同时,防火墙不会阻止边缘CDN服务器本身,因为它们存储禁止和允许的信息。

而且,如果在未加密流量的情况下,授权机构有机会使用DPI阻止站点的单个页面,则使用HTTPS只能限制整个域的访问。 除其他外,这导致阻止允许的内容。

此外,中国拥有自己的CDN提供商,包括ChinaCache,ChinaNetCenter和CDNetworks等网络。 所有这些公司都完全遵守国家/地区的法律,并阻止违禁内容。

CacheBrowser:CDN锁绕过工具


分析表明,审查员发现很难阻止CDN内容。 因此,研究人员决定更进一步,开发一种不使用代理技术的在线阻止旁路工具。

该工具的主要思想是审查者必须干扰DNS的操作以阻止CDN,但是不必使用域名解析来加载CDN内容。 因此,用户可以通过直接联系已经缓存了他的边缘服务器来获得他需要的内容。

下图显示了系统设备。



客户端软件安装在用户的计算机上;常规浏览器用于访问内容。

当请求URL或已请求内容的一部分时,浏览器将请求发送到本地DNS系统(LocalDNS)以获取托管的IP地址。 仅对于不在LocalDNS数据库中的域请求普通DNS。 Scraper模块不断浏览请求的URL,并在列表中查找可能被阻止的域名。 然后,Scraper调用Resolver模块来解析新发现的被阻止域,该模块执行任务并将条目添加到LocalDNS。 然后,清除浏览器的DNS缓存,以删除该锁定域的现有DNS记录。

如果解析器模块无法理解该域属于哪个CDN提供程序,则它将向Bootstrapper模块寻求帮助。

在实践中如何运作


该产品的客户端软件已针对Linux实现,但可以轻松移植,包括Windows。 浏览器使用通常的Mozilla
火狐浏览器 Scraper和Resolver模块是用Python编写的,Customer-to-CDN和CDN-toIP数据库存储在.txt文件中。 localDNS数据库是Linux上的常规/ etc / hosts文件。

因此,对于格式为blocked.com的被阻止的URL ,该脚本将从/ etc / hosts文件接收边缘服务器的IP地址,并发送HTTP GET请求以访问带有Host HTTP标头字段的BlockedURL.html:

blocked.com/ and User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:14.0) Gecko/20100101 Firefox/14.0.1 

Bootstrapper模块是使用免费的digwebinterface.com工具实现的。 无法阻止此DNS解析器,它代表各个网络区域中的许多地理位置分散的DNS服务器回答DNS查询。

尽管该社交网络长期以来在中国一直被封锁,但使用该工具,研究人员设法从其中文节点访问Facebook。



结论


实验表明,使用检查员尝试阻止CDN内容时遇到的问题可用于创建绕过锁的系统。 这样的工具甚至可以让您绕开锁,即使在中国,在中国,中国是功能最强大的在线审查系统之一。

有关使用常驻代理人进行业务的其他文章:


Source: https://habr.com/ru/post/zh-CN467201/


All Articles