流量清洗不是把攻击流量“洗”成正常流量,而是在攻击流量到达业务服务器之前,通过路由牵引或边界设备策略,把全部流量先引入清洗中心,由清洗设备识别并剥离其中的DDoS攻击成分,只把清洗后的正常访问回注到源站。真正决定清洗效果的,不是设备有没有开启“清洗”按钮,而是清洗策略的触发速度、识别精度和回注路径设计是否合理。
多数中小企业在第一次遭遇DDoS时,最先暴露的问题往往不是带宽被打满,而是清洗触发机制严重滞后。很多安全设备默认采用阈值触发,例如“入站流量连续30秒超过500Mbps才启动清洗”。攻击流量从爆发到设备判定完成,再到路由牵引生效,中间往往有2到5分钟空窗。对业务而言,这2到5分钟已经足够造成TCP连接池耗尽、数据库会话堆积、登录接口超时。流量清洗真正要解决的第一件事,不是“怎么洗”,而是“多快开始洗”。
清洗触发机制需要从被动阈值转向主动特征识别单纯依赖带宽阈值的清洗系统,在面对慢速连接耗尽、低频CC攻击或分片攻击时,几乎无法有效触发。更合理的做法是同时监控多个维度:每秒新建连接数、半开连接比例、单一源IP请求频率、URL请求集中度、TLS握手失败率、异常DNS查询量。只要其中两个以上指标出现非正常偏离,就立即启动流量牵引和初步清洗,而不是等带宽告警。
例如一次典型的HTTP Flood,攻击流量可能只有300Mbps,但每秒新建连接数从正常的800飙到6万。此时带宽阈值完全不会告警,但业务服务器已经无法响应正常用户。清洗系统如果只盯着带宽,就会漏判。因此,流量清洗的触发条件必须和业务模型绑定,而不是和网络链路带宽绑定。
流量牵引方式决定清洗能否覆盖全部攻击路径流量清洗的前提是把访问流量引导到清洗中心。常见方式包括BGP路由宣告、DNS解析切换和策略路由。BGP牵引适合大流量攻击,通过向运营商宣告更细粒度的路由前缀,把原本直接到达源站的流量引到清洗设备。DNS切换则更适合应用层攻击,把域名解析结果临时指向清洗节点。策略路由适合自建清洗集群,在核心交换机上把可疑流量下一跳强制指向清洗设备。
这里有一个容易被忽视的问题:如果只牵引了IPv4流量,而攻击者同时打IPv6地址,清洗就是无效的。同样,如果业务使用多个运营商入口,只在一个运营商侧做BGP宣告,其他链路仍然会被打满。完整的流量清洗方案必须覆盖全部接入链路和全部协议栈,否则攻击者只需要换一个入口就能绕过清洗。
清洗设备的核心能力是特征提取而不是简单限速很多运维人员误以为清洗就是“把流量引过来,然后限速丢包”。实际上,流量清洗设备需要完成多层过滤:先做基础包合法性检查,丢弃源IP伪造、TCP标志位异常、分片重叠的报文;再做行为分析,识别HTTP请求速率、请求路径分布、User-Agent集中度;最后做协议栈挑战,例如对可疑源IP返回302跳转或JS挑战,验证是否为真实浏览器。
以SYN Flood为例,清洗设备不能简单把所有SYN包都丢掉,否则正常用户也无法建立连接。正确的做法是启用SYN Cookie机制,由清洗设备代替源站完成三次握手,只有握手成功的会话才转发到源站。这样既过滤了伪造源IP的攻击流量,又保证了真实用户的访问不受影响。
HTTPS流量清洗需要处理证书和会话卸载现在大量DDoS攻击直接打443端口,尤其是HTTPS Flood。清洗HTTPS流量比清洗HTTP复杂得多,因为清洗设备必须先完成TLS握手,解密流量后才能做应用层分析。这意味着清洗设备需要部署业务证书,或者使用证书私钥托管方案。很多企业在这里遇到阻力,因为安全团队不愿意把证书私钥交给第三方清洗服务商。
解决方式有两种:一是使用自建清洗集群,证书私钥不出企业机房;二是采用Keyless SSL方案,清洗设备只处理TLS握手,私钥签名操作回源到企业内部的密钥服务器完成。无论哪种方式,都必须保证清洗设备具备高性能TLS卸载能力。如果清洗设备TLS处理性能不足,清洗本身就会成为新的瓶颈。
回注路径设计不好,清洗等于白做清洗后的正常流量需要回注到源站。回注方式一般有MPLS VPN、GRE隧道、VXLAN隧道或直接二层透传。回注路径必须保证源站看到的源IP是真实用户IP,而不是清洗设备的IP,否则源站的访问日志、风控策略、地域限制全部失效。
实际项目中,回注路径的常见问题是路由环路。如果清洗设备和源站之间的路由没有做好策略隔离,清洗后的流量可能再次被牵引回清洗设备,形成环路。避免环路的方法包括:清洗设备回注时使用独立的VRF或VLAN,源站默认路由不指向清洗设备,清洗设备只对特定前缀做牵引。
清洗策略必须与业务场景深度绑定同样的攻击流量,对视频网站和对银行交易系统的影响完全不同。流量清洗不能只做通用规则,必须结合业务特征做精细化策略。例如,电商大促期间,正常流量本身就比平时高5到10倍,如果清洗系统按固定阈值判断,很可能把正常流量误判为攻击。又比如,API接口的正常调用频率可能远高于网页浏览,清洗设备如果按普通Web标准限制请求频率,就会误杀合法调用。
这就要求清洗系统支持动态基线学习和业务场景切换。大促前把清洗阈值和策略模板切换到“高并发模式”,大促结束后再切回日常模式。对于API业务,可以针对特定路径、特定Token、特定App版本做白名单,避免误伤。
多层清洗架构比单点清洗更可靠大流量攻击往往同时包含网络层和应用层攻击。单靠运营商清洗中心,能处理大流量网络层攻击,但对应用层攻击的识别能力有限。单靠本地清洗设备,能精细处理应用层攻击,但带宽吞吐可能不够。合理的做法是分层清洗:第一层在运营商侧做粗粒度过滤,丢弃明显的伪造源IP和异常包;第二层在企业入口做深度应用层清洗;第三层在源站前部署轻量级防护模块,做最后的会话校验和限速。
这种多层架构的好处是,每一层只处理自己擅长的部分,整体清洗吞吐和识别精度都能兼顾。同时,当某一层清洗设备故障时,其他层仍然能提供基础防护,避免单点失效导致业务完全暴露。
清洗效果评估不能只看“攻击是否停止”很多企业在攻击结束后,只关心“业务有没有恢复”,而不去分析清洗过程中误杀了多少正常用户。一次清洗如果误杀率超过5%,即使攻击被成功防御,业务损失也可能很大。评估清洗效果至少要看三个指标:攻击流量清洗率、正常流量误杀率、清洗引入的额外延迟。
清洗率可以通过对比清洗前后攻击流量占比来计算。误杀率则需要结合业务日志,分析清洗期间正常用户的访问成功率、登录成功率、下单成功率是否明显下降。额外延迟可以通过对比清洗前后的TCP建连时间和首字节响应时间来判断。如果清洗引入的延迟超过50毫秒,对实时性要求高的业务就可能产生明显影响。
真正成熟的流量清洗体系,不是一台设备或一个服务,而是一套完整的流程:从攻击检测、流量牵引、多层清洗、正常流量回注,到事后分析和策略优化。每个环节都需要根据业务实际情况做针对性设计,而不是套用通用模板。DDoS攻击手段在持续演化,流量清洗技术也必须跟着业务和攻击形态同步演进。
