凌晨两点半,我把自己公司的巴西用户拦在门外
2023 年 11 月,黑五前一周,拉美站的客服群开始刷屏。用户说下单页一直转圈,最后报「请求被拒绝」。我爬起来登后台,看到 Suricata 的 drop 日志里有一条规则在疯狂命中——那条规则本意是拦「同一 IP 短时间高频调用下单接口」,结果打到了巴西运营商 Vivo 的一个 CGNAT 出口段上。CGNAT 是什么概念?那一个公网 IP 背后可能挂着几百到几千个真实家庭用户。我们封了一个 /24,等于把一个城市的订单全掐了。第二天早上统计,客诉 47 单,当天转化率掉了大概 12 个百分点。这件事之后我把整套选型逻辑翻新了一遍,下面说的都是真金白银换来的。
先把名词捋顺,不然选型一定跑偏
很多出海团队买错东西,根源就是名字没分清。WAF 只管 HTTP/HTTPS 这一层,它看得懂 URL、参数、Cookie,但看不懂你自研的 TCP 私有协议;IPS 是从网络层看到应用层,靠特征匹配加协议解析找已知攻击,位置一般在 VPC 边界或者 IDC 出口;IDS 就是把 IPS 的拦截功能关掉,只告警;NDR 更偏流量元数据和行为基线,基本不看包内容。出海业务比较常见的叠法是:Cloudflare 或者 Akamai 这类 CDN/WAF 顶在最外层挡 CC 和爬虫,IPS 放在 VPC 南北向和专线接入口,主机层再挂一套基于 eBPF 的 HIDS。三层各管一段,别指望一套设备包打天下。顺便说一句,如果你搜「出海 IPS」其实是想找 IPS 硬屏或者游戏 IP 授权出海,那这篇不对口,那是另外两条赛道。
出海场景和国内有三个绕不过去的硬差别
第一是解密这件事基本做不了。TLS 1.3 现在占了绝大部分流量,Google 自己公布的数字早几年就过 90% 了,而你在欧洲做中间人解密,法务第一个跳出来——GDPR 第 32 条要求的是「适当的技术和组织措施」,不是让你把员工和用户的通信内容全解开看一遍。这意味着你的 IPS 有大半时间是在看加密流量的元数据,检测能力天然要打折,选型时得认这个前提。
第二是误杀的代价完全不一样。拉美市场 Google Ads 的 CPA 有时候能到十几美元一单,东南亚便宜点但也不是零成本,你误封一个 CGNAT 段,丢的是真钱。国内业务出点误杀,用户大不了刷新一下;海外用户被拦一次,可能就去竞品那边下单了,而且他不会给你反馈,你在日志里只看到一个「会话中断」。
第三是时区和运维节奏对不上。攻击高峰常在欧美白天,也就是我们的后半夜,靠人盯屏不现实,所以告警收敛和自动化处置的权重,比在国内做同类项目时要高得多。
我现在的选型维度,按重要性排
一、吞吐必须在开启完整规则集的前提下测。 厂商给的 40Gbps 通常是空跑或者只开几百条规则跑出来的。Suricata 用 AF_PACKET 模式,8 核机器开 2 万条规则,实测大概能到 5 到 8 Gbps;规则集上到 4 万条的量级(ET Open 现在差不多就在这个数附近),单核直接掉到 1 到 2 Gbps。想上 25G/40G 就得 DPDK 或者 PF_RING ZC,那是另一个工程量级,人力成本要单独算。
二、单流时延。 加 0.5ms 和加 5ms 对交易类业务是两个世界,一定要用你们自己的真实流量测,别信 PPS 跑分。
三、规则集谁维护、多久更新一次。 吃社区规则就得接受误报率,自己写规则就得养人。这两条路的成本要摊开算。
四、能不能只观察不拦截。 也就是 learning mode,没有这个功能的方案直接 pass。
五、日志能不能进你现有的 SIEM。 别又搞一套数据孤岛出来,最后查一次事件要在三个平台之间来回跳。
六、计费模型。 云原生的那些方案,比如 AWS Network Firewall,是 endpoint 按小时(北美区大概 0.4 美元/小时这个量级)再加每 GB 的处理费,流量大的时候账单会很难看,具体价格每年都在调,以官网价格页为准。自建看起来便宜,但你要把三个区域的运维人力也算进去。
七、供应商在你目标区域有没有清洗节点和本地支持。 出事了隔着 12 小时时差发工单,那个体验我不想再来一次。
落地顺序,我踩出来的七步
- 先上 IDS 模式跑两周,别急着开拦截,把基线流量摸清楚。
- 做白名单,优先级最高的是运营商 CGNAT 段、云厂商健康检查 IP、你们自己办公室和跳板机出口,这三类占了误杀的大头。
- 规则分级:跟交易强相关的设拦截,扫描类、信息泄露类先告警,别一上来全开。
- 灰度:5% 流量观察三天,没问题推到 20%,再全量。
- 必须留一个能在 30 秒内关掉全部拦截的开关,这个开关要写进值班手册,不是存在某个人脑子里。
- 告警收敛,值班的人每天真正需要看的告警不要超过 20 条,超过了就等于没有。
- 每季度用扫描器或者小规模红队打一遍,看规则还活着没有。
一个可能有点反直觉的结论
出海业务买 IPS,我认为它的核心价值有一半不在「拦住了多少攻击」,而在「有没有留下证据」。GDPR 或者欧盟 NIS2 真的出事的时候,你能拿出一份带时间戳、带五元组、带处置动作的日志,证明你在某个时间点检测到了异常并且做了应对,这个东西的价值比拦掉几个扫描器高得多。所以选型的时候,日志的完整性和可导出性,应该跟检测能力放在同一档权重,而不是当附赠功能看。
至于检测率那个数字,坦白说是给招标文件看的。真正每天折磨你的其实是误杀率,我现在的算法是「每百万请求里错误拦截了多少个真实用户」。这个指标厂商基本不会主动给你,得自己压测、自己算,而且要把 CGNAT 段单独拎出来算一遍。