慢速攻击如何把连接保持时间拉到极限?,慢速攻击怎么防御?

慢速攻击把连接保持时间拉长到极限,本质是用极低的请求速率占住服务端的连接槽位,让服务端在“等数据”的超时窗口里持续消耗内存和并发名额。核心答案就一句:攻击者靠精细控制发包节奏,把单个连接的有效生命从几秒拉到超时阈值上限,再用数量堆死连接池。 下面把手法拆开讲透,顺带把防守侧的配置路径一并给出来。

连接保持时间的物理上限在哪里

一个HTTP连接从建立到关闭要走多少路

TCP三次握手完成后,服务端会为这条连接分配一个文件描述符、一块读缓冲区、一个会话结构,在收到完整请求行和头部之前,服务端进入“待读”状态,这个状态有个计时器,超时没凑齐数据就关闭连接。

增加15%完美闪避/防御时间窗口饰品“浑源经脉仪”获取
加载中
增加15%完美闪避/防御时间窗口饰品“浑源经脉仪”获取
T
TheGalath
1739--
原视频地址

业内专家指出,多数服务端把“读请求头”的超时设置在数秒到数十秒之间,攻击者要做的就是让数据发送速率恰好低于触发超时的速度阈值,又不让连接真正空闲到被keepalive机制回收。

  • 建立连接:三次握手,占用一个socket
  • 发送请求:先发一个不完整的请求行或不带结束符的头部
  • 保持存活:每隔一段时间发一个字节或一个换行,重置计时器
  • 释放条件:服务端主动超时关闭或客户端主动断开

服务端超时参数为什么是慢速攻击的命门

超时参数设得短,正常用户在高延迟链路下容易误伤;设得长,攻击者的单连接存活时间就长,行业共识认为,Web服务器对请求头的默认容忍窗口普遍偏宽松,这是慢速攻击能奏效的结构性原因。

以常见配置为例,client_header_timeout 默认值是60秒,client_body_timeout 同样是60秒,攻击者把发包间隔控制在50秒左右,一个连接就能稳稳占住近一分钟,几百个这样的连接,就能压垮一个未做连接限制的中小型服务端。

Slowloris和RUDY攻击有什么区别?连接保持的两种极端路径

Slowloris:用不完整的请求把连接吊住

Slowloris的手法很直接:向目标发一个合法的请求行,然后持续发送头部字段,但永远不发空行(\r\n\r\n)来结束头部,服务端以为请求还没发完,一直等。

GET / HTTP/1.1\r\n
Host: target\r\n
User-Agent: slow\r\n
X-a: 1\r\n
(停顿几十秒)
X-b: 2\r\n
(停顿几十秒)
...

每一行都算有效数据,都会重置头部超时计时器,攻击者脚本每隔一个小于超时阈值的间隔补一行,连接就永远吊在半空,由于请求头未结束,服务端不会分配工作线程去处理业务,只占用连接资源成本极低。

RUDY:用超长表单体一点点喂数据

RUDY(R-U-Dead-Yet)走的是请求体路线,先发一个带 Content-Length 的POST头部,声明一个很大的体积,然后以极慢速度发送body内容。

POST /login HTTP/1.1\r\n
Host: target\r\n
Content-Length: 1000000\r\n
Content-Type: application/x-www-form-urlencoded\r\n
\r\n
a=1&(每几十秒发一小段)

服务端已经进入读取body阶段,client_body_timeout 被反复重置,只要body没读完,这条连接就一直是活跃状态,RUDY对需要处理表单的应用杀伤更明显,因为连接处于“已进入业务逻辑、但数据不全”的状态。

两种手法的连接占用对比

维度 Slowloris RUDY
攻击目标 请求头阶段 请求体阶段
单连接资源占用 低,仅socket和缓冲区 略高,可能触发body缓冲区分配
发包节奏 每几十秒一行头部 每几十秒一小段body
对超时参数的依赖 client_header_timeout client_body_timeout
典型受害场景 静态站点、反向代理 表单登录、文件上传接口

慢速攻击连接超时怎么配置?从服务器参数看攻防博弈

Nginx的关键参数与实操路径

Nginx默认对慢速攻击有一定抵抗力,但参数需要收紧,操作路径是修改 nginx.conf 的 http 或 server 块:

http {
    client_header_timeout 10s;
    client_body_timeout 10s;
    keepalive_timeout 15s;
    send_timeout 10s;
    lingering_timeout 5s;
    client_max_body_size 2m;
    limit_conn_zone $binary_remote_addr zone=addr:10m;
    limit_conn addr 16;
    limit_req_zone $binary_remote_addr zone=req:10m rate=10r/s;
}
  • client_header_timeout 10s:请求头10秒内没发完直接断开,Slowloris失效
  • client_body_timeout 10s:body读取间隔超过10秒断开,RUDY被截断
  • limit_conn addr 16:单IP并发连接上限,堵住“堆数量”的路子
  • limit_req:单IP请求速率限制,配合连接限制形成双层防护

改完执行 nginx -t 校验,nginx -s reload 生效,参数不是越短越好,跨境或移动网络场景下10秒可能误伤,建议先观察访问日志里的请求耗时分布再定。

Apache的RequestReadTimeout配置

Apache 2.4可以用 mod_reqtimeout 模块精确控制读取节奏:

<IfModule mod_reqtimeout.c>
    RequestReadTimeout header=10-20,MinRate=500 body=10-20,MinRate=500
</IfModule>

header=10-20,MinRate=500 的意思是:请求头最多等20秒,且从第10秒开始要求每秒至少500字节的到达速率,这比单纯的总超时更聪明慢速补字节的策略会被最低速率要求卡住,修改后 apachectl configtest 校验,systemctl reload apache2 重载。

反向代理层的连接池管理

如果前面有负载均衡或CDN,要在代理层也设连接上限,以Nginx upstream为例:

upstream backend {
    server 10.0.0.1:8080 max_conns=100;
    keepalive 32;
}

max_conns 限制到后端的总连接数,防止代理层把慢速连接无限放大到源站,代理层的 proxy_read_timeout 也要收紧,避免它自己变成慢速连接的蓄水池。

北京企业Web服务器慢速攻击防护:地域场景下的落地配置

北京地区的中小企业站点很多跑在单台云主机上,带宽和连接数都不宽裕,慢速攻击的容错空间更小,落地时优先做三件事:

  • 在云安全组或WAF层启用连接数清洗规则,多数云厂商的Web应用防火墙带慢速攻击特征库,按连接保持时长和头部到达间隔判定
  • 源站收口到反向代理后面,源站只监听内网地址,公网只暴露代理层,代理层统一做连接限制
  • 建立基线监控,记录正常时段的平均连接保持时长,偏离基线较大比例时触发告警

成本上,云WAF的按量计费对中小站点每月支出有限,比自建清洗设备划算得多,实测路径是先开WAF观察一周攻击面,再决定是否叠加源站参数收紧。

Q&A:慢速攻击连接保持相关的常见疑问

慢速攻击和DDoS有什么区别,防护手段能共用吗

慢速攻击属于应用层资源耗尽型攻击,不靠大流量取胜,靠连接槽位占用,传统流量清洗设备对它效果有限,因为它每个包都是合法HTTP流量,防护手段要落在应用层超时参数、连接数限制和头部速率校验上,和流量型DDoS的清洗策略是两套体系,但可以在同一台反向代理上叠加使用。

把超时参数调到极短是不是就安全了

不是,超时过短会误伤高延迟用户,尤其移动网络和跨境访问场景,合理的做法是“总超时适中+最低到达速率”双约束,Apache的 MinRate 参数就是这种思路,另外单靠超时不够,攻击者可以用更多连接数来补偿单连接存活时间的缩短,所以连接数上限必须同步配置。

慢速攻击的连接保持时间最长能拉到多少

取决于目标服务端的超时配置和攻击者的发包精度,攻击者通常把发包间隔控制在超时阈值的八成左右,留出网络抖动余量,如果服务端头部超时是60秒,单连接可稳定保持约50秒;攻击者脚本精度越高,越贴近阈值上限,实际攻击中,单连接存活时间受服务端重传、内核socket回收策略等因素影响,但把连接拖到超时上限附近是稳定可实现的。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/article/786591.html

赞 (0)
上一篇 2026年11月7日 11:15
下一篇 2026年11月7日 11:16

相关推荐

  • 传输安全除了加密还要做什么?,完整性校验怎么做

    传输安全除了加密,还必须做完整性校验,加密解决“别人看不到”,完整性校验解决“别人改没改”,少了后者,攻击者可能篡改报文、重放请求,甚至让业务系统执行错误指令,很多团队把HTTPS证书一挂就放心,等出问题才发现,通道加密了,但数据在网关、队列、日志、下游服务里被改,传输安全不是“加密”一个动作,而是一组控制:机……

    2026年9月24日
    300
  • Bluehost网站模板怎么设置?Bluehost网站模板设置教程

    Bluehost 网站模板设置的核心在于通过官方一键安装功能快速部署基础框架,并结合自定义CSS与页面构建器进行深度个性化改造,从而在保持加载速度的同时实现品牌差异化,对于许多初次接触建站的用户来说,面对 Bluehost 后台那一堆密密麻麻的选项,第一反应往往是迷茫,Bluehost 提供的不仅仅是简单的“模……

    2026年7月6日
    17810
  • 服务器学生机如何部署?学生云服务器搭建教程

    2026年服务器学生机部署的核心在于:选择云厂商教育优惠获取低成本算力,通过系统初始化、安全加固与运行环境搭建,将本地项目稳定迁移至云端,实现从零到一的生产级实践,选型与购置:精准锚定学生专属算力核心云厂商教育优惠横向比对面对市面上繁杂的云产品,学生机哪个平台好且性价比高是首要痛点,2026年头部云厂商的教育普……

    2026年4月27日
    5400
  • CDN增值服务价格是多少?CDN加速服务费用怎么算

    CDN增值服务并非单一固定价格,其成本由基础带宽、请求次数、高级功能模块(如WAF、回源加速)及地域节点密度共同决定,通常采用“基础用量+增值模块”的混合计费模式,整体成本比纯基础CDN高出20%-50%不等,在2026年的数字生态中,单纯依靠加速静态资源已无法满足企业对安全性、实时性和智能调度的严苛要求,许多……

    云计算 2026年6月4日
    4400
  • 国内域名备案怎么弄,个人域名备案需要什么资料?

    在中国大陆地区运营网站,使用国内服务器进行托管,必须完成ICP备案程序,这是法律法规的强制性要求,国内域名备案不仅是网站合法上线的通行证,更是保障网站长期稳定运行、提升搜索引擎信任度以及用户访问体验的基础,对于企业和个人开发者而言,理解备案的核心逻辑、掌握高效的备案流程以及规避常见的审核风险,是开展互联网业务的……

    2026年2月19日
    25700
  • cdn流量包如何使用?cdn流量包怎么用

    CDN 流量包的核心使用逻辑是“先预充值后自动抵扣”,用户需在控制台购买对应地域与规格的流量包,系统将在产生流量时优先扣除包内额度,无需手动切换,且 2026 年主流云厂商已实现流量包与按量付费的无缝智能切换,分发网络)流量包并非简单的“购买即生效”,而是一套涉及资源预占、计费优先级判定及突发流量缓冲的完整体系……

    2026年5月10日
    6000
  • jq cdn在线怎么用,jquery cdn在线调用

    使用CDN在线加载jQuery可显著提升首屏渲染速度,建议优先选择国内头部云厂商(如阿里云、腾讯云)提供的稳定版本,以兼顾访问速度与数据合规性,在2026年的Web开发环境中,前端性能优化已从“可选项”变为“必选项”,jQuery作为经典DOM操作库,虽面临现代框架冲击,但在存量项目维护及轻量级交互场景中仍占据……

    2026年6月11日
    3500
  • 百度cdn价格多少?百度cdn加速服务费用详解

    百度CDN价格并非固定单一数值,而是根据带宽峰值、流量消耗、请求次数及功能模块组合动态计费,核心结论是:对于中小规模站点,按流量计费更经济;对于高并发大流量场景,预付费带宽包或阶梯式计费能显著降低边际成本,分发网络(CDN)时,企业往往被复杂的报价单劝退,百度智能云提供的CDN服务,本质上是在购买“速度”和“稳……

    2026年5月26日
    4100
  • 国外高仿cdn是什么?国外高仿cdn怎么用

    国外高仿CDN并非官方认可的合法服务,使用此类服务不仅无法保障网站稳定性,更可能涉及侵犯知识产权及数据合规风险,建议直接采用阿里云、腾讯云或Cloudflare等正规国际CDN服务商,在跨境业务拓展中,很多站长和运维人员会听到“国外高仿CDN”这个概念,听起来,它似乎提供了一种绕过限制、加速访问的捷径,但当我们……

    2026年5月27日
    4500
  • 阿里云cdn9毛,阿里云cdn价格贵吗

    2026年阿里云CDN流量包综合成本已降至约0.9元/GB(具体视套餐与带宽峰值而定),对于高并发、低延迟需求的业务而言,这是目前性价比极高的基础设施选择,阿里云CDN 9毛价格背后的成本逻辑解析在2026年的云计算市场,CDN(内容分发网络)的计费模式已从单一的流量包转向更精细化的“流量+带宽+请求数”多维组……

    2026年5月25日
    5600

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注