如果移动流量的转化率突然下降,而注册或支付表单对真实客户显示 403 错误——很可能不是黑客的错,而是你自己的 WAF。防火墙看到来自同一移动运营商的一个 IP 地址的数千个请求,并将其视为 DDoS 或暴力破解。实际上,这个 IP 后面坐着数百或数千个普通人——这就是 CGNAT 技术。我们来看看如何发现和修复这个问题,同时不为真实攻击打开漏洞。
什么是 CGNAT 以及它为什么会造成问题
CGNAT(运营商级 NAT)是一种技术,移动运营商因 IPv4 地址短缺而使用。运营商并不为每个用户分配唯一的公共 IP,而是将数千个用户隐藏在一个或多个共享地址后面。对于网站来说,这表现为:来自同一 IP 的流量同时来自数百个不同的人——不同的设备、不同的浏览器、不同的行为,但外部地址相同。
对于普通的 Web 服务器来说,这不是问题——它只是处理请求。但对于那些在单位时间内从同一 IP 计算请求的保护系统来说,这看起来就像是异常。想象一下:在一分钟内,从一个地址发出 200 个登录请求。对于 WAF 来说,这是一种经典的暴力破解或抓取模式。实际上,这可能是你所在地区的一个移动运营商的 150 个真实客户,他们在广告邮件或社交媒体发布后同时打开网站。
这个问题在移动互联网密集的国家尤为突出——运营商将大量用户聚集在少数外部 IP 后面。因此,测试网站行为时,需要使用真实的 移动代理,而不是普通的数据中心 IP,只有这样才能重现 WAF 在真实用户身上看到的情况。
为什么 WAF 将 CGNAT 视为威胁
大多数 WAF 解决方案——Cloudflare、AWS WAF、Imperva、内置的 Nginx/ModSecurity 模块——使用基于 IP 地址的速率限制作为防止机器人和 DDoS 的基本保护机制。逻辑很简单:如果从一个 IP 在 T 秒内发出超过 N 个请求——则阻止或显示验证码。这个规则对于来自单一设备的经典攻击效果很好,但在 CGNAT 流量中完全失效。
有几个典型场景会导致这个问题:
- 基于 IP 的速率限制。 “每个 IP 每分钟 100 个请求”的限制对于数据中心流量是正常的,但对于一个地址下有百万用户的移动区域来说则是灾难性的。
- 行为评分。 如果系统根据请求历史积累 IP 的“声誉”,那么一个来自 CGNAT 的“坏”用户可能会破坏该地址对后续数千个诚实客户的声誉。
- 地理启发式。 如果 WAF 看到不符合“普通”用户的活动激增,它有时会将 IP 标记为可疑——而 CGNAT 地址的行为正是如此:在用户活跃时段的峰值负载。
- 按运营商 ASN 阻止。 一些 WAF 规则会禁止整个移动运营商的 ASN 范围,如果之前有攻击来自这些范围——所有该国的运营商客户都受到影响。
结果是:WAF 的“开箱即用”设置越严格,它禁止的就越可能不是机器人,而是你的真实移动受众——特别是当业务面向移动互联网发达且 CGNAT 流量占比较高的国家时。
这对业务的威胁:失去客户和金钱
CGNAT 阻止的问题在标准分析中很少可见。Google Analytics 和 Yandex.Metrica 根本无法记录那些在 WAF 级别上收到 403 错误的人——这些访问通常甚至不会到达计数器。因此,市场营销人员看到转化率下降,但不明原因,开始优化创意和着陆页,而问题出在基础设施上。
对于不同业务领域的实际影响:
- 电子商务。 移动互联网用户无法完成订单——支付表单显示错误,购物车丢失。直接的收入损失,尤其是在 TikTok Ads 或 Facebook Ads 上启动广告后,主要流量来自移动端。
- SaaS 和注册。 用户尝试注册或登录个人账户,在每一步都遇到验证码或阻止——转向竞争对手。
- 内容和广告。 移动设备的广告流量在着陆页上大量“掉线”,广告预算被消耗,但没有转化——广告平台的算法将其解释为低质量受众,并提高点击价格。
- 客户支持。 “你们的网站无法打开”、“我无法注册”的请求数量增加——而技术支持看不到问题,因为他们通过办公室 Wi-Fi 从桌面访问,没有 CGNAT。
最令人不快的是,这种阻止很难事后诊断,因为 WAF 日志显示一个“可疑”的 IP 地址和大量请求,管理员在此看到的是阻止正确性的确认,而不是误报。
6 个来自移动 IP 的检查,以找到问题
为了了解你的 WAF 是否在禁止诚实的移动客户,需要重现 CGNAT 的真实条件——即使用来自不同运营商和地区的真实移动 IP 测试网站。以下是 6 个实用检查的清单。
检查 1:从一个移动 IP 的大规模访问
通过同一个移动 IP 设置多个并行会话(这对于 CGNAT 运营商的代理来说是自然的),并执行 50-100 个常规操作——打开页面、添加到购物车、在部分之间切换。如果在达到某个阈值后开始出现验证码或 403——这是问题的第一个信号。
检查 2:在同一 IP 下更改 User-Agent
一个 CGNAT 地址服务于不同的设备——iPhone、Android、不同的浏览器。通过同一个 IP 发送不同的 User-Agent 字符串请求,检查 WAF 规则“来自同一地址的可疑设备变异性”是否被触发。
检查 3:对关键表单的测试
完整体验客户路径——注册、登录、下单、支付——通过运营商的移动 IP。WAF 通常在输入数据的表单(登录、支付)上设置得更为激进,因为暴力破解的风险更高,这也是失去真实客户的第一个地方。
检查 4:对不同运营商和地区的检查
不同运营商和国家的 CGNAT 行为各不相同——有的地方一个 IP 隐藏 50 个用户,有的地方则是 5000 个。测试来自几个运营商的移动 IP 在对业务关键的地理区域,以了解是否存在地区性阻止的特性。
检查 5:根据代码和头部分析服务器响应
不仅要记录阻止的事实,还要记录确切的 HTTP 代码和响应头(例如,cf-mitigated: challenge 在 Cloudflare 中)。这将帮助了解触发了哪个保护机制——速率限制、机器人检测或地理规则。
检查 6:长期监控 IP 的声誉
在几天内重复从同一个移动 IP 进行测试。如果访问随着时间的推移而恶化,而你没有明显的原因——那么,积累评分系统可能由于其他用户在同一 CGNAT 下的活动而“破坏”了该地址的声誉,这是一种系统性而非偶发性的问题。
重要的是要理解:
进行这些测试需要真实的移动 IP,而不是数据中心或普通的住宅地址——只有经过运营商基础设施的流量才能准确重现 WAF 在真实用户身上看到的 CGNAT 模式。
如何配置 WAF,以免禁止诚实客户
诊断后,需要调整保护规则,以便在不降低安全级别的情况下停止禁止真实的移动用户。以下是主要方法。
| 问题 | WAF 中的解决方案 |
|---|---|
| 严格的 IP 速率限制 | 提高已知移动运营商的 ASN 限制,或改为基于会话/ Cookie 的限制,而不是纯粹的 IP |
| IP 声誉的累积评分 | 缩短 CGNAT 范围的声誉“记忆”时间,增加已知运营商的白名单 |
| 按地理/ASN 整体阻止 | 将完全阻止替换为温和的挑战(JS 检查),而不是 403 |
| 登录表单上的严格验证码 | 根据真实的暴力破解迹象(来自同一账户的多次失败尝试)适应性地启用验证码,而不是基于 CGNAT-IP 的事实 |
一个好的做法是维护一个已知移动运营商范围的列表,针对你关键的地理区域为它们提供与普通互联网流量相比更温和的规则。这需要时间来设置,但可以显著减少误阻止的数量。
移动代理测试工具
为了定期审计网站的保护,方便使用反检测浏览器和移动代理的组合。反检测浏览器(Dolphin Anty、AdsPower、Multilogin、GoLogin、Octo Browser)允许创建具有不同设备指纹的隔离配置文件,而移动代理提供来自运营商的真实 CGNAT 流量。
测试的逐步方法:
- 在反检测浏览器中创建多个具有不同设备参数的配置文件(不同的 User-Agent、屏幕分辨率、时区)。
- 将每个配置文件连接到所需地区和运营商的 移动代理——这将提供真实的 CGNAT 行为。
- 执行关键用户场景:注册、登录、添加到购物车、支付。
- 记录所有验证码、403 和其他阻止的情况,并与 WAF 的设置进行比较。
- 通过住宅代理重复测试以进行比较——这将帮助了解问题是否特定于移动流量。
对于在不同地理区域进行并行测试,住宅代理 也很有用——它们有助于评估 WAF 对普通家庭流量和移动 CGNAT 的攻击性是否相同。如果计划进行不依赖于运营商的服务器基础设施负载测试,可以连接 数据中心代理 进行控制检查——它们将提供没有扭曲的干净基线,适用于移动网络的特性。
这种综合方法——在一次测试中使用移动、住宅和数据中心 IP——提供了完整的图景:你可以准确看到保护在哪里生效以及针对哪种类型的流量,而不是根据日志中的间接迹象进行猜测。
常见问题
可以完全排除 CGNAT 范围的 WAF 规则吗?
不建议这样做——这将降低对真实攻击的保护,这些攻击也可能通过移动网络进行。更正确的做法是放宽阈值,并改为温和的挑战,而不是严格的阻止。
多久需要进行一次这样的检查?
至少每月一次,并且在任何 WAF 规则更改或启动新的移动受众广告活动后务必进行检查。
这会影响 SEO 吗?
会——如果搜索机器人或真实用户从移动设备获得 403,这会增加跳出率,并可能对排名的行为指标产生负面影响。
结论
CGNAT 不是威胁,而是移动互联网的一种特性,几乎任何拥有移动受众的业务都会遇到。问题不在于技术本身,而在于标准的 WAF 设置最初并未考虑到其特性,并惩罚诚实用户的行为,这种行为在普通移动网络中是常见的。本文中的六个检查将帮助快速诊断你是否因误阻止而失去客户,而针对性地调整 WAF 规则则可以在不降低安全级别的情况下恢复转化率。
如果你计划定期测试网站和广告漏斗的行为,就像真实的移动客户所看到的那样,建议使用 移动代理——它们提供真实的运营商 CGNAT 流量,并允许在客户发现之前找到误阻止。