区域网络出口受限以后,恶意自动化流量很少跟着消失,多数只是换一条路继续跑。云主机上的脚本能搬到别的托管商,住宅代理池可以临时扩容,其他地理节点的出口随时接得上。判断威胁有没有变少,只看某个网络或某个 AS 的请求量容易得出相反结论,要把来源、TLS 指纹和行为特征放在一起看。这篇写给做风控和站点运维的工程师。
出口受限之后,自动化流量会换哪几条路
常见的替代出口有三条。住宅代理借用真实用户的宽带出口,单 IP 请求量低、信誉好,适合撞库和抢购这类要低拦截率的场景。其他云与托管商的 ASN 迁移最快,容器和镜像让整套负载几小时内就能在别处起来。换地理节点把出口拉远,延迟上升,对爬取和批量提交影响有限。
换源之后请求本身常常没变。请求路径、头部组合和 JA4 这类 TLS 客户端指纹跟着代码走,跨 AS 复现同一个指纹,多半是同一批人在跑。
为什么总量指标看不出迁移
聚合流量掉下来只说明某个网络断了。一个区域里被验证过的搜索爬虫占比很高时,出口一断,该区域的自动化请求比例明显下降,图上看着像威胁减少,实际只是索引活动停了。
迁移的痕迹出现在别处。同一个目标上的请求总量基本没变,来源分布却变了,原本集中在一两个 AS 的流量被十几个陌生 AS 分摊,请求特征又高度相似。4xx 比例下降也可能是攻击流量改了目标。
观测迁移要盯住哪些信号
- 来源 AS 分布。原本集中的来源被多个新 AS 分摊。
- TLS 客户端指纹。JA4 一类的指纹跨 AS 复用,说明客户端程序没换。
- 请求路径与参数。罕见路径、固定顺序的探测序列、特定参数的接口遍历。
- 头部与 User-Agent。头部顺序、缺失的常见头部、自定义 UA 字符串。
- 单位 IP 速率。登录失败后的重试间隔、翻页节奏、并发连接数。
防护侧可以分几层做
令牌桶和速率限制放在最前面。按 IP、按账号、按 AS 分别设桶,令牌桶允许短突发,漏桶压平持续速率。登录、注册、下单这类端点给更小的桶,只读接口宽一些。
机器人指纹和 JS 挑战精度更高,代价也明确。挑战增加首屏延迟,对老旧浏览器、脚本化客户端和无障碍工具都不友好,只适合低频敏感路径。
按 ASN 和信誉分分层比一刀切稳。托管商 ASN 给低基线,住宅 ASN 给正常基线,信誉分低的先进挑战。已认证流量和匿名流量分开限流,登录用户的配额单独算。
误伤真实用户通常发生在哪
把整个 ASN 拉黑最容易出事,同机房的其他客户和办公网出口会一起被挡。住宅代理池和运营商 NAT 后面的正常用户共用出口 IP,纯 IP 维度的限流一定会误伤。
稳妥的顺序是先降速,再上挑战,最后才封禁。封禁设自动过期时间,保留白名单和申诉入口,依据写进日志。
常见问题
迁移以后要不要封掉新的 ASN? 不建议。新 ASN 里通常混着正常业务,先按行为特征加挑战,观察一段时间再定范围。
没有 TLS 指纹能力怎么办? 请求路径、头部组合和速率拼起来也有足够判别力。
限流阈值怎么定? 取同一端点上匿名流量一天的分位数做基线,给促销高峰留余量,上线后按误伤率回调。