检测慢速攻击,最直接的信号就是看每个连接的平均发送速率当它在长时间内持续低于正常阈值,同时连接又迟迟不关闭,基本可以判定为慢速攻击。慢速攻击不靠高流量冲击,它用极低的速率慢慢“泡”着服务器,让连接池被占满,正常用户反而进不来,与其去数总请求量,不如逐个连接算算它每秒到底发了多少字节。
慢速攻击怎么检测?先从每连接平均发送速率入手
慢速攻击的三种常见变种
- Slowloris:连接建立后,只发一部分HTTP头部,然后每隔几十秒补一点数据,让服务器永远等不到完整请求。
- Slow POST:把HTTP请求体拆成小段,以极低速率发送,服务器必须收完才能响应。
- Slow Read:客户端故意缓慢读取服务器响应,导致发送缓冲区被占满。
这三种变体有个共同点:连接存活时间很长,但每连接发送速率极低,这就让“每连接平均发送速率”成了天然的检测抓手。
为什么每连接平均发送速率能暴露慢速攻击
正常用户的连接是“短平快”的,要么快速发完请求,要么在下载时以较高速率接收,而慢速攻击连接刻意维持低速率,且持续时间长,业内专家指出,多数情况下,一个连接持续超过120秒,且平均速率低于每秒1KB,就需要重点关注,具体阈值要结合站点类型调整,但判断思路是统一的:速率低不一定是问题,低速率加上长存活才是异常。
慢速攻击检测方法有哪些?从速率统计到行为识别
计算每连接平均发送速率的具体步骤
计算方法很简单:每连接平均发送速率 = 该连接累计发送字节数 ÷ 连接存活时间。

实际落地时分三步:
- 在Nginx或Apache日志中,记录每个请求的字节数和耗时。
- 按五元组(源IP、源端口、目标IP、目标端口、协议)聚合连接,统计总流量和持续时间。
- 用脚本计算速率,低于阈值就标记为可疑连接。
如果不想改应用层,可以在网络层抓包,用tcpdump或Wireshark抓取80端口流量,再按IP对和端口对统计包大小和时间差。tcpdump -i eth0 -nn 'tcp port 80'就能看到最原始的连接状态,但要做速率统计,还需要配合脚本分析。
常用检测工具与命令实操
- ss -s:快速查看系统当前TCP连接状态,大量ESTABLISHED连接且每个IP来源分散时,要警惕。
- iftop:按连接实时显示速率,低速率、长期存在的连接会排在底部,一眼就能看到“僵尸”连接。
- Fail2ban:通过正则匹配日志,结合速率规则自动封禁IP,适合小流量站点。
- mod_evasive:Apache模块,但它主要防请求洪峰,对慢速攻击效果有限。
阈值设多少才合理?
行业共识认为,阈值的设定必须结合业务特征,比如一个网页平均大小约50KB,正常请求在几秒内完成,那么每连接速率至少有几KB/s,如果大量连接长期低于1KB/s,并且分别来自不同IP,基本就是慢速攻击,静态站点可以将阈值设得更严格,视频或大文件下载站点则需要放宽。
慢速攻击防护方案对比:速率检测之外的取舍
基于速率检测的优点与局限
优点非常明显:实现简单,资源消耗低,误报可控,对于中小站点,单靠Nginx日志加一个Python脚本就能完成检测。
局限也客观存在:慢速攻击有时会伪装成正常的长轮询或文件上传场景,单靠速率指标可能出现误判,比如在线协作工具的心跳连接,每30秒才发几十字节,这类业务会被误伤,所以速率检测往往需要结合其他维度使用。

与主流防护方案的对比
| 方案 | 检测维度 | 准确性 | 部署成本 | 典型场景 |
|---|---|---|---|---|
| 每连接速率检测 | 速率、连接时长 | 较高 | 低,自研脚本即可 | 中小站点、轻量防护 |
| 行为分析 | 速率、请求规律、IP信誉 | 高 | 中,需要训练模型 | 高防机房、企业网关 |
| 协议栈防护 | TCP层行为特征 | 中高 | 高,需专用设备 | 大型数据中心 |
| 云WAF | 全维度分析 | 高 | 按量付费 | 接入CDN或云服务的企业 |
选择哪种方案,取决于你的业务规模和抗风险能力,预算有限时,先做速率检测;业务重要时,再叠加行为分析或云WAF。
慢速攻击检测工具哪个好?从开源到商业服务
开源工具:适合有技术团队的场景
- 自定义Python脚本:用scapy或dpkt读取pcap文件,按连接计算速率,灵活但需要开发能力。
- Caddy或Nginx的limit_req模块:可以限制单连接的请求速率,但慢速攻击往往不发完整请求,需要配合timeout才能彻底拦截。
- Chrony等日志分析工具:把访问日志导入ELK,用Kibana可视化每连接速率变化,适合日志量大的团队。
商业方案:适合云上托管或缺乏运维人力的场景

国内云厂商的WAF大多内置慢速攻击防护,打开“每连接速率限制”开关,就能自动识别低速长连接并断开,如果你考虑慢速攻击检测服务价格,最好先确认业务峰值带宽和并发数,据公开信息,基础版年费从几百元到几万元不等,防护节点越多,价格越高,上海、北京等核心机房的节点通常比二线城市贵一些,但延迟更低。
对大多数企业来说,先开通云WAF免费试用,观察三天日志,再决定是否付费,是比较稳妥的做法。
再次强调核心结论
慢速攻击再会伪装,也绕不开“每连接平均发送速率”这个基本面,只要把连接存活时间和发送字节数抓准,检测就能落地,没有条件上商业方案时,用Nginx日志加一个定时脚本,也能覆盖大部分攻击场景。
每连接平均发送速率与慢速攻击检测:常见问题
每连接平均发送速率多少算慢速攻击?
没有通用数字,但可以参考:普通网页访问场景下,连接持续超过60秒且速率低于每秒1KB,异常概率很高,音频或视频流媒体站点要单独评估,因为长连接速率也可能很低。
慢速攻击检测误报怎么处理?
先查看告警连接的完整日志,确认客户端是否在持续等待或主动拉取数据,确认是误报后,将该IP或连接特征加入白名单,同时调整速率阈值,注意白名单不要过大,否则会放过真正的攻击。
慢速攻击检测服务价格贵吗?
云厂商的按量计费模式比较灵活,低配防护包每月几十元,高配企业版每月数千元不等,具体费用取决于防护节点数量、带宽规格和日志保存时长,据公开信息,目前主流云WAF的慢速攻击防护功能,通常与DDoS清洗打包出售,单买检测能力的选项较少。