http慢速攻击如何解决:分层防御,优先边缘清洗
http慢速攻击如何解决,核心思路是分层拦截,优先在CDN、云WAF等边缘节点开启慢速防护,配置最小传输速率、请求头超时、单IP并发连接上限,再在后端Nginx或Apache收紧超时参数、连接限制,配合日志审计拉黑异常IP;该方案适合业务流量能接入边缘安全节点的网站,内网直暴露、无前置代理的业务仅靠后端配置防护,抵御效果会明显下降,常见攻击类型包含Slowloris、SlowPOST、RUDY。
http慢速攻击的边缘防护配置
云WAF和CDN的慢速攻击防护是生产环境首选,流量还没到达源站就做校验,不会直接消耗后端文件句柄与进程资源。你需要开启三个核心参数,请求头超时建议设置5至10秒,超过时限没有发送完整请求头的连接直接断开;请求正文最小传输速率设置为80bps至200bps,长时间传输速率低于阈值的连接判定为慢速连接;同时配置单IP最大并发连接数,普通业务单IP并发上限设置10至30。腾讯云、阿里云、Cloudflare的边缘安全产品都内置该防护模块,规则更新依托厂商威胁情报,对新型变种攻击识别能力更强。
边缘防护不是万能的。
http慢速攻击的后端服务配置加固
Nginx作为后端服务时,修改nginx.conf内的超时与限流参数,client_header_timeout控制客户端发送请求头的超时,client_body_timeout控制请求体传输超时,send_timeout控制回包超时,三个值都不要使用默认60秒,根据业务调整到5至15秒;搭配limit_conn模块限制单IP并发连接,limit_req模块限制请求频率,同时设置client_max_body_size限制单请求最大包体大小,减少大体积慢速POST攻击的资源占用。Apache的prefork模式本身对慢速攻击抗性偏弱,优先切换为event工作模式,再启用mod_reqtimeout模块做超时管控。
| 防御方案 | 部署位置 | 抵御效果 | 运维成本 |
|---|---|---|---|
| 云WAF/CDN慢速防护 | 流量入口边缘 | 较好 | 低 |
| Nginx本地参数加固 | 源站服务器 | 一般 | 中 |
| 自建ModSecurityWAF | 反向代理层 | 中等 | 高 |
| 仅防火墙端口封禁 | 网络层 | 较差,不推荐 | 中 |
自建ModSecurity搭配OWASPCRS规则集可以识别慢速特征,但规则调优工作量大,很容易误杀正常上传业务,大文件上传场景需要单独设置白名单,放宽速率与超时阈值。
http慢速攻击的识别与应急处置
攻击发生时,先查看服务器连接状态,用netstat或者ss命令统计大量长时间处于ESTABLISHED但是没有数据收发的连接,这类连接就是慢速攻击的特征。提取异常IP后,在边缘WAF拉黑,或者在服务器iptables、firewalld添加封禁规则,封禁时长建议设置10至30分钟,避免误封正常用户。同步抓取访问日志,重点查看请求头不全、间隔几秒才发送一行数据的请求,把特征提交到WAF自定义规则,拦截同类后续攻击。
大文件上传、视频分片上传业务,不能直接套用严苛的最小速率和短超时,否则正常用户会频繁断连,这类业务路径要单独配置例外策略,单独调高超时、放宽速率限制。
监控指标要持续跟进,重点监控文件描述符使用率、活跃连接数、CPU和内存负载,当连接数持续上涨、fd占用逼近上限,优先判定存在慢速类应用层DoS,而不是直接判定为四层流量DDoS。很多运维误把慢速攻击当成普通CC攻击,只做请求频率限流,不校验数据传输速率,防护规则会完全失效。
你需要定期做压测验证防护策略,使用Slowhttptest工具模拟Slowloris和SlowPOST攻击,验证超时断开、速率拦截是否生效,压测完成后核对误报情况,微调阈值,保证防护规则和业务场景匹配。压测禁止在未授权的公网目标执行,仅在自有测试环境操作,符合网络安全相关管理要求。
