中国防火长城(GFW)DNS 注入系统中存在严重的内存泄露漏洞
中国防火长城(GFW)的DNS注入系统部署在网络边界的中间设备上,该系统监控并干扰DNS查询,通过发送伪造的DNS响应来阻断对特定网站的访问。这些伪造的响应速度较快,从而使客户端优先处理它们。GFW的DNS注入既处理来自中国境内的查询,也处理进入中国的查询。例如,如果境外的主机向一个位于中国大陆的IP地址发送DNS请求,只要请求中包含了被封锁的域名,GFW就会在流量进入中国时插入伪造的响应。
Wallbleed是GFW DNS注入模块中的一个严重漏洞,类似于Heartbleed。该漏洞源于DNS报文解析代码的缺陷,尤其是在处理DNS查询的域名(QNAME)时,未能正确检查域名标签的长度是否超出了报文的实际长度。当发送畸形的DNS查询,其域名标签的长度字节被故意设置得过大时,就会触发这个漏洞。这导致GFW的注入器错误地读取了报文末尾之外的内存内容,并将这些本不应包含的数据写入到伪造的DNS响应中,最终泄露给查询者。
泄露的数据不仅限于DNS信息,还包括IPv4和TCP头信息,违反了其仅应处理特定UDP端口53上DNS查询的预期功能。这种内存泄露可能涉及私有IP到公共服务器的内部流量。
GFW在2023年9月至11月间测试并部署了补丁,增加了对DNS报文的字段完整性校验,不再接受缺失QTYPE/QCLASS的查询,并且增加了对异常长度的检测策略。以前只要域名匹配黑名单就立即伪造回复,而现在还要检查报文格式是否正常,否则宁可不回应。这种调整出于安全考虑,某种程度上削弱了DNS注入的覆盖面,某些非常规查询即使包含被封锁域名也不再触发,从而可能让查询穿透注入系统获得真实答案。
完整翻译版:https://gfw.report/publications/ndss25/zh/
中国防火长城(GFW)的DNS注入系统部署在网络边界的中间设备上,该系统监控并干扰DNS查询,通过发送伪造的DNS响应来阻断对特定网站的访问。这些伪造的响应速度较快,从而使客户端优先处理它们。GFW的DNS注入既处理来自中国境内的查询,也处理进入中国的查询。例如,如果境外的主机向一个位于中国大陆的IP地址发送DNS请求,只要请求中包含了被封锁的域名,GFW就会在流量进入中国时插入伪造的响应。
Wallbleed是GFW DNS注入模块中的一个严重漏洞,类似于Heartbleed。该漏洞源于DNS报文解析代码的缺陷,尤其是在处理DNS查询的域名(QNAME)时,未能正确检查域名标签的长度是否超出了报文的实际长度。当发送畸形的DNS查询,其域名标签的长度字节被故意设置得过大时,就会触发这个漏洞。这导致GFW的注入器错误地读取了报文末尾之外的内存内容,并将这些本不应包含的数据写入到伪造的DNS响应中,最终泄露给查询者。
泄露的数据不仅限于DNS信息,还包括IPv4和TCP头信息,违反了其仅应处理特定UDP端口53上DNS查询的预期功能。这种内存泄露可能涉及私有IP到公共服务器的内部流量。
GFW在2023年9月至11月间测试并部署了补丁,增加了对DNS报文的字段完整性校验,不再接受缺失QTYPE/QCLASS的查询,并且增加了对异常长度的检测策略。以前只要域名匹配黑名单就立即伪造回复,而现在还要检查报文格式是否正常,否则宁可不回应。这种调整出于安全考虑,某种程度上削弱了DNS注入的覆盖面,某些非常规查询即使包含被封锁域名也不再触发,从而可能让查询穿透注入系统获得真实答案。
GFW是一个非常复杂的封锁系统,通过边界网关已经植入中国大陆网络的方方面面,限制本片篇幅有限有兴趣的可以阅读原文。但是也有不同的地方,比如 新疆、河南、福建、江苏4个省份审查尤其严格, 新疆的反向墙(屏蔽中国大陆的IP)、 福建的白名单(主要针对海外IP)、 河南的阻断(端口阻断攻击) 、江苏的反诈(独有的江苏反诈系统), 这些统称为地方墙 , 以及最后的全国大墙, 即封锁整个IP和 封锁整个域名, 一般是将整个域名DNS响应到墙的黑名单的IP(黑名单IP就是 例如twitter.com、fb.com, 这些直接封锁整个AS的IP还有一些不断被封锁的IP地址)
完整翻译版:https://gfw.report/publications/ndss25/zh/