shadowrocket添加节点
中国的 GFW 是一种复杂的审查工具,它使用多种技术扫描和过滤进出中国网络的所有数据。
最近,我们在与一位客户合作时,发现使用跟踪路由(Traceroute)的数据存在一些不规则现象。Catchpoint 网络洞察. 虽然流量的目的地是我们客户的网站,但却通过他们的 ASN 流向了 Twitter/Facebook IP。 我们过去也看到过这种情况。 但这次我们决定进行深入分析,以了解幕后发生了什么。
在上面的 Sankey 图表中,我们可以看到来自我们节点的流量被转发到右侧的网站 IP 地址。 但是,这些流量并没有按计划通过Akamai,而是被转发到了广东移动的Twitter和Facebook(图中的红/绿箭头)。 我们可以通过目的地IP来验证这一点,它们确实属于Facebook和Twitter。
下面是一些更多的截图,我们看到更多的是 Facebook 和 Twitter 的 IP,而不是实际的网站。 几乎每个 AS 都存在大量丢包现象,这似乎是中国地区流量进出的常见现象。
再举几个例子:
我们知道中国长城防火墙对此负有责任,DNS 体验测试的数据也证实了这一点:
在上面的图片中,对同一域名的请求返回相同的 CNAME,但 IP 不同(有时是正确的目标 IP,有时是欺骗的目标 IP)。
shadowrocket添加节点
长城防火墙(GFW)是一种强大而复杂的审查工具,与世界上以往任何一种审查工具都不同。 它结合使用 DNS 篡改和 IP 地址封堵技术,完全封闭对特定 IP 地址的访问。 它使用类似入侵检测系统(IDS)的系统来检查流量中的黑名单关键字,并通过注入重置(RST)数据包来终止连接。 虽然这些工具可能会造成重大的附带损害,但对于中国绝大多数互联网用户来说,它们在封堵几乎所有网站方面都极为有效。 以下是中国防火墙用于扫描输入/输出流量的一些方法。
DNA篡改
DNS 篡改与 IP 地址封堵结合使用,因为更改域名比更改 IP 地址难得多。 DNS 篡改的第一步是 DNS 注入。 当用户试图连接到某个域名时,计算机会查询 DNS 服务器,以获取与域名相关的 IP 地址。 GFW 在中国互联网边界监控来自中国境内客户端的每个 DNS 查询。 如果检测到查询到一个被屏蔽的域名,它就会注入一个假的 DNS 回复,其中包含一个无效 IP,或者在极少数情况下,包含一个指向另一个网站的 IP。 然后,这个虚假的 DNS 回复会向下传递到中国的内部递归 DNS 服务器,沿途缓存错误的配对,从而达到 DNS 中毒的目的。 因此,中国几乎所有的 DNS 解析器都有中毒缓存。
不幸的是,这会造成大规模的附带损害,当外部 DNS 流量穿越审查链路时,会影响审查网络以外的通信。 在这篇文章中,我们将全面分析造成附带损害的原因,并对互联网进行测量,以确定注入活动及其影响。
每希克通信公司发布的报告他们还发现,中国约有 39 个 ASN 甚至为过境 DNS 流量注入了伪造回复,而在分布于 109 个国家/地区的 43,000 个中国境外开放解析器中,有 26% 的解析器可能会受到一些附带损害。 他们发现,大多数附带损害来自解析器对经过中国的顶级域名服务器的查询,而不是对位于中国的根服务器(F、I、J、K、L)的查询。
根服务器目前位于中国北京:
k.root-servers.net
IPv4: 193.0.14.129
ASN: 25152
运营商:RIPE NCC
f.root-servers.net
IPv4: 192.5.5.241
ASN: 3557
运营商: 互联网系统联盟公司
l.root-servers.net
IPv4: 199.7.83.42
ASN: 20144
运营商: ICANN
none
IPv4: 192.58.128.30
ASN: 26415
运营商: 威瑞信公司
i.root-servers.net
IPv4: 192.36.148.17
ASN: 29216
运营商:Netnod
除此以外,还有约 9 个香港也是如此。
如果解析器请求解析域名 "www.xyz.com"(或任何 GFW 篡改/列出的域名),解析过程将如下所示:
名称尚未进入缓存 => 'com.' 区域 (NS) 也未进入缓存(48 小时 TTL) => 询问 F、I 或 J 根实例 => 转到北京的根实例
一旦查询指向北京,比赛就开始了!
查询会返回 "com. "区域服务器(NS) => GFW 可能会返回错误的 A 记录 => 如果 GFW 赢得比赛,A 记录会被添加到缓存中 => DNS 缓存现在已中毒
TCP 重置
大多数内容检查方案的工作原理是将所有流量推送到一个代理服务器,该代理服务器拒绝提供违禁材料的结果。 然而,一个能够应对大型网络或整个国家流量的代理系统将极其昂贵,而且难以扩展。 取而代之的是,GFW 通过向基于入侵检测系统的带外设备发送副本来检查流量。 原始数据包不受影响,而入侵检测系统则检查数据包的内容和请求的 URL,并将其与关键字黑名单进行匹配。
一旦 IDS 检测到黑名单关键字,GFW 路由器就会向两个端点注入多个伪造的 TCP RST 数据包,迫使连接中断。 然后,GFW 会保持被拒绝请求的源 IP 地址和目标 IP 地址、端口号和协议的流量状态,以阻止所有进一步通信,每次持续数小时。
阻止 IP 地址
IP 地址封堵是一种简单、轻便但极其有效的审查工具。 通过与所有中国互联网服务供应商的网关路由器进行对等互联,GFW 将黑名单上的目标地址列表注入 BGP(边界网关协议),并劫持所有流向被封网站的流量。 换句话说,GFW 迫使路由器放弃所有指向被封 IP 的流量。 这种技术被称为空路由,只能阻止来自中国的出境流量,允许入境流量。 这在大多数情况下就足够了,因为目前大多数互联网通信都需要三方握手才能运行。
总结
中国的 GFW 是一种复杂的审查工具,它使用多种技术扫描和过滤进出中国网络的每一点数据。 如果您的应用程序的任何流量通过了中国防火墙,那么它就会被篡改和重定向,从而影响最终用户的体验。 为避免出现这种情况
- 网站流量严格使用 HTTPS 协议。 即使早在 2014-2015 年,当 HTTPS 成为任何网站的必备条件时,中国也不鼓励中文网站使用 HTTPS。
- 避免通过 GFW 路由请求(如果可以的话),因为它会拦截通过中国国内/国家网络的任何内容,甚至可能影响来自中国境外的流量。
- DNS 在设计之初并没有考虑到安全问题。 它被设计成一个可扩展的公共数据库,不限制对其数据的访问。 这就暴露了系统中的许多漏洞,并导致了多次漏洞利用。 开始使用DNSSECDNSSEC 通过验证 DNS 响应,增加了域名系统的安全性。 正确实施 DNSSEC 可使 DNS 不易受到一种非常常见的攻击,即 DNS 欺骗。
除上述几点外,您还必须
- 改进 DNS 监控策略,以便快速发现并解决问题。
- 使用 BGP 监控来跟踪网络路由中任何恶意或不必要的更改。
- 投资合成材料DNS 监控通过该工具,您可以查看所有相关名称服务器的性能,并检测整个 DNS 解析链中的任何错误。 它还能让你看到 DNS 服务器使用的数据库记录(从 MX 到 CNAME 记录),从而诊断出错误的具体原因,如配置错误、DNS 缓存中毒或不安全的区域传输。